diseño y evaluación de arquitecturas de computadoras

344

Upload: cristian-castro

Post on 17-Jan-2016

225 views

Category:

Documents


27 download

DESCRIPTION

Arquitecturas de computadoras

TRANSCRIPT

Page 3: Diseño y Evaluación de Arquitecturas de Computadoras

Diseño y evaluación de arquitecturas de computadoras

M arta Beltrán PardoProfesora T itular de Universidad

Área de A rquitectura y Tecnología de Com putadores Universidad Rey Juan Carlos de Madrid

Antonio Guzmán SacristánProfesor C ontratado D octor

Área de A rquitectura y Tecnología de Com putadores Universidad Rey Juan Carlos de Madrid

P ren tlce Hall es un se llo ed ito ria l de

P E A R S O N

H a r lo w , E n g la n d • L o n d o n • N e w Y o rk • B o s to n • S a n F ra n c is c o • T o r o n to • S y d n e y • S in g a p o re • H o n g K o n g

T o k y o • S e o u l • T a ip e i • N e w D e lh i • C a p e T o w n • M a d r id • M é x ic o C i ty • A m s te r d a m • M u n ic h • P a ris • M ilá n

Page 4: Diseño y Evaluación de Arquitecturas de Computadoras

D a to s d e c a ta lo g a c ió n b ib lio g rá f ic a

M a r t a B e l t r á n P a r d o , A n t o n io G u z m á n S a c r i s t á n

D iseño y evaluación de arquitecturas de computadoras

P E A R S O N E D U C A C I Ó N , S .A . , M a d rid , 2 0 1 0

IS B N : 9 7 8 - 8 4 - 8 3 2 2 - 6 5 0 - 6

M a lc r ía : 0 0 4 , C o m p u ta d o r e s

F o rm a to : 1 9 5 * 2 5 0 m m P á g in a s : 3 4 4

Todos los derechos reservados.

C ualquier fo rm a d e reproducción, distribución, com unicación pública o transform ación d e es ta obra sólo puede se r realizada c o n la autorización d e sus titu lares, sa lvo excepc ión prevista por la ley. L a infracción d e los derechos m encionados puede se r constitu tiva d e delito co n tra la propiedad in telectual (arts. 2 7 0 y sgts. Código penal).

D iríjase a c e d r o (C entro Español d e D erechos Reprográficos: w w w .cedro .org), s i necesita fo tocopiar o escanear algún fragm ento de e s ta obra.

D ER ECH O S RESERVADOS © 2010, PEA R SO N E D U C A C IÓ N , S.A.C / R ibera d e l Loira, 28 28042 M adrid (España) w w w .pearsoneducacion.com

PR EN TIC E H A L L e s un se llo ed itorial au to rizado d e PEA R SO N ED U C A C IÓ N

ISB N : 978-84-8322-650-6 D epósito Legal: M-

E quipo editorial:E ditor: M iguel M artín-R om o T écnico editorial: Esther M artín

E quipo de producción:D irector: Jo sé A ntonio C lares T écnico: Isabel M uñoz

D iseño de cubierta: Equipo d e D iseño d e PEA R SO N E D U C A C IÓ N , S. A.C om posición: JO SUR TRATAMIENTO DE TEXTOS, S.L.Im preso por:

N ota sobre en laces a páginas w eb ajenas: E ste libro puede incluir en laces a sitios w eb gestionados por terceros y ajenos a PEA R SO N E D U C A C IÓ N S.A . que se incluyen sólo c o n finalidad inform ativa.

PEA R SO N E D U C A C IÓ N S.A . no asum e ningún tipo d e responsabilidad por los dañ o s y perju icios d e r i­vados d e l uso d e los datos personales q u e pueda hacer un tercero encargado de l m antenim iento d e las p á ­g inas w eb ajenas a PEA R SO N ED U C A C IÓ N S.A . y d e l funcionam iento, accesib ilidad o m antenim iento d e los sitios w eb no gestionados por PEA R SO N E D U C A C IÓ N S.A . L as referencias se proporcionan en e l es tad o en que se encuentran e n e l m om ento d e pub licación sin garantías, expresas o im plícitas, sobre la inform ación que se proporcione e n ellas.

IM PR ESO E N ESPAÑA - P RIN TED IN SPAIN

E s le lib r o h a s i d o im p r e so c o n p a p e l y t in ta s e c o ló g ic o s .

Page 5: Diseño y Evaluación de Arquitecturas de Computadoras

Contenido

Introducción1. Definición d e arquitectura d e co m p u tad o ras ....................................................................................... XI2. O bjetivos d e este lib ro ................................................................................................................................. X II3. Cóm o usar este lib ro .................................................................................................................................... X IV4. A gradecim ientos........................................................................................................................................... XV

Capítulo t : Conceptos básicos de procesadores

1.1. Diseño d e un repertorio d e instrucciones.............................................................................................. 21.1.1. Decisiones acerca del tipo de alm acenam iento d e operandos........................................... 31.1.2. Decisiones acerca d e la interpretación de las direcciones de m em oria y d e los m odos

de direccionam iento soportados................................................................................................ 71.1.3. O tras decisiones............................................................................................................................ 111.1.4. Codificación del repertorio d e instrucciones.......................................................................... 121.1.5. M ejoras y optim izaciones del repertorio d e instrucciones................................................. 14

1.2. M ecanism o com pleto d e ejecución d e u n a instrucción...................................................................... 151.3. Evaluación d e prestaciones de un p rocesador...................................................................................... 181.4. Diseño d e procesadores secuenciales....................................................................................................... 19

1.4.1. Procesador m onociclo.................................................................................................................. 201.4.2. Procesador m ulticiclo................................................................................................................... 251.4.3. Tratam iento d e excepciones en procesadores secuenciales................................................. 33

1.5. Diseño d e procesadores segm entados..................................................................................................... 351.5.1. C onceptos básicos d e segm entación........................................................................................ 361.5.2. Resolución d e riesgos en procesadores segm entados.......................................................... 401.5.3. Procesadores segm entados m ultifuncionales......................................................................... 581.5.4. Tratam iento d e excepciones........................................................................................................ 63

R E SU M E N D E D E C ISIO N E S D E D ISE Ñ O D E L R E PE R T O R IO D E IN S T R U C C IO N E S 66R E SU M E N D E D E C ISIO N E S D E D ISE Ñ O D E L PR O C E SA D O R ................................................... 67

Procesadores secuenciales......................................................................................................................... 67Procesadores segm entados........................................................................................................................ 67

B IB L IO G R A FÍA Y LE C T U R A S R E C O M E N C A D A S ........................................................................... 68

PR O B L E M A S......................................................................................................................................................... 69

AUTOEVALUACIÓN........................................................................................................................................... 73

Capítulo 2: Conceptos básicos de memoria y E/S

2.1. Diseño d e u n a jerarqu ía d e m em oria básica........................................................................................ 762.2. M ecanism o com pleto d e acceso a m em o ria ........................................................................................ 79

Page 6: Diseño y Evaluación de Arquitecturas de Computadoras

CONTENIDO

2.3. Evaluación d e prestaciones de la je rarqu ía d e m em o ria ................................................................... 812.4. Niveles de la je rarqu ía d e m em o ria ......................................................................................................... 82

2.4.1. D iseño d e la m em oria caché...................................................................................................... 822.4.2. D iseño d e la m em oria p rin c ip a l.............................................................................................. 1002.4.3. D iseño d e la m em oria v irtu a l................................................................................................... 104

2.5. Diseño d e un sistem a de E/S b ás ico ........................................................................................................ 1082.6. M ecanism o com pleto d e u n a operación d e E/S................................................................................... 1102.7. Evaluación d e prestaciones del sistem a d e E /S .................................................................................... 1112.8. B u sesd eE /S ................................................................................................................................................... 112

2.8.1. D iseño d e buses d e E/S................................................................................................................. 1132.8.2. D iseño d e jerarqu ías d e buses..................................................................................................... 117

2.9. Gestión del sistema d e E /S ........................................................................................................................ 1202.9.1. E/S program ada con espera d e respuesta................................................................................ 1202.9.2. E/S con in terrupciones................................................................................................................. 1202.9.3. E/S con acceso directo a m em oria ........................................................................................... 126

R E SU M E N D E D E C ISIO N E S D E D ISE Ñ O D E L A JE R A R Q U ÍA D E M E M O R IA .................. 130M em oria cach é ............................................................................................................................................ 130M em oria p rincipal...................................................................................................................................... 130M em oria v irtual........................................................................................................................................... 131B u sesd eE /S .................................................................................................................................................. 131G estión E/S................................................................................................................................................... 132

B IB L IO G R A FÍA Y LE C T U R A S R E C O M E N D A D A S ........................................................................... 132

PR O B L E M A S......................................................................................................................................................... 133

AUTOEVALUACIÓN........................................................................................................................................... 136

Capítulo 3: Técnicas de aumento de prestaciones para procesadores

3.1. Planificación d inám ica d e instrucciones................................................................................................ 1383.1.1. Planificación d e instrucciones de acceso a m em oria .......................................................... 1393.1.2. Planificación d inám ica d e instrucciones cen tra lizada ........................................................ 1413.1.3. Planificación d inám ica d e instrucciones d istrib u id a .......................................................... 145

3.2. Predicción d inám ica d e sa lto s .................................................................................................................. 150

3.2.1. E structuras hardw are p a ra la predicción d e sa lto ................................................................. 1513.2.2. Predictores d e sa lto ....................................................................................................................... 161

3.3. Emisión m últiple d e instrucciones........................................................................................................... 167

3.3.1. V LIW ................................................................................................................................................ 1673.3.2. Superescalar e s tá tic a .................................................................................................................... 1693.3.3. Superescalar d inám ica.................................................................................................................. 172

3.4. Especulación.................................................................................................................................................. 1733.5. M ultithreading.............................................................................................................................................. 181

R E SU M E N D E D EC ISIO N ES D E D ISEÑ O D E T É C N IC A S D E A U M EN TO D E PR ESTA ­CIONES PA R A PR O C E SA D O R E S................................................................................................................. 184

Planificación d inám ica d e instrucciones................................................................................................ 184Predicción d inám ica d e sa lto s .................................................................................................................. 184

Page 7: Diseño y Evaluación de Arquitecturas de Computadoras

CONTENIDO

Emisión m últiple d e instrucciones y especulación ............................................................................. 185Paralelismo a nivel d e th re a d ................................................................................................................... 185

B IB L IO G R A FÍA Y LE C T U R A S R E C O M E N D A D A S ........................................................................... 185

PR O B L E M A S......................................................................................................................................................... 186

AUTOEVALUACIÓN........................................................................................................................................... 190

Capítulo 4: Técnicas de aumento de prestaciones para memoria y E/S4.1. Técnicas d e optim ización para la m em oria caché.............................................................................. 192

4.1.1. Reducción d e la penalización p o r fallo .................................................................................. 1924.1.2. Reducción d e la tasa d e fa llo s .................................................................................................. 1964.1.3. Reducción del tiempo d e acceso.............................................................................................. 200

4.2. Técnicas d e optim ización p a ra la m em oria principal........................................................................ 2064.2.1. Increm ento del ancho d e b a n d a .............................................................................................. 207

4.3. Técnicas de optim ización con jun ta para todos los niveles d e la jerarquía: visión global d e la jerarquía de m em oria .................................................................................................................................. 211

4.3.1. Soporte a las técnicas d e optim ización del p rocesador...................................................... 2114.3.2. Alm acenam iento local vs m em oria caché............................................................................... 212

4.4. Técnicas d e optim ización para los buses d e E /S ................................................................................. 2124.4.1. A ncho d e d a to s y frecuencia de o p erac ió n ........................................................................... 2124.4.2. Núm ero d e transferencias por c ic lo ........................................................................................ 2144.4.3. Utilización de protocolos d e com unicaciones d e alto rendim iento ................................ 215

4.5. Técnicas d e optim ización para los dispositivos d e E/S...................................................................... 2174.5.1. O ptim ización p a ra los dispositivos d e almacén am iento: R A ID .................................... 217

4.6. Técnicas d e optim ización para la gestión d e E /S ............................................................................... 2234.6.1. Procesador p a ra el sistema gráfico: G P U ............................................................................. 223

R E S U M E N D E D EC ISIO N ES D E D ISE Ñ O D E T É C N IC A S D E A U M EN TO D E PR ESTA ­CIONES PA R A M E M O R IA Y E/S.................................................................................................................. 228

A um ento d e prestaciones d e la m em oria cach é ................................................................................... 228A um ento d e prestaciones d e la m em oria p rincipal............................................................................. 228A um ento d e prestaciones d e buses d e E /S ............................................................................................ 228A um ento d e prestaciones d e dispositivos d e E/S: alm acenam iento................................................ 229A um ento d e prestaciones en la gestión d e E/S..................................................................................... 229

B IB L IO G R A FÍA Y LEC TU R A S R E C O M E N D A D A S ........................................................................... 229

PR O B L E M A S......................................................................................................................................................... 230

AUTOEVALUACIÓN........................................................................................................................................... 233

Capítulo 5: Sistemas multiprocesador y multicomputador

5.1. G asificación d e arquitecturas con varios procesadores...................................................................... 2365.1.1. A rquitecturas d e m em oria com partida.................................................................................... 2375.1.2. A rquitecturas d e m em oria com partida-d istribu ida.............................................................. 2385.1.3. A rquitecturas d e m em oria d istribu ida ...................................................................................... 239

Page 8: Diseño y Evaluación de Arquitecturas de Computadoras

CONTENIDO

5.1.4. A rquitecturas on-chip d e m em oria com partida ................................................................... 2405.1.5. A rquitecturas on-chip d e m em oria d istribu ida.................................................................... 242

5.2. Redes dentro d e arquitecturas d e com putadoras................................................................................. 2425.2.1. Topología ....................................................................................................................................... 2455.2.2. Técnicas d e co n m u tac ió n .......................................................................................................... 2495.2.3. Técnicas d e encam inam iento .................................................................................................... 2525.2.3. Técnicas d e control d e f lu jo ....................................................................................................... 253

5.3. Diseño d e arquitecturas d e m em oria com partida ................................................................................ 2545.3.1. Soluciones p ara el problem a de la coherencia........................................................................ 2575.3.2. Soluciones p ara el problem a de la consistencia .................................................................... 2695.3.3. Soluciones p ara el problem a de la sincronización................................................................. 272

5.4. Diseño d e arquitecturas d e m em oria com partida-distribuida.......................................................... 2745.4.1. Soluciones p ara el problem a de la coherencia........................................................................ 275

5.5. Diseño d e arquitecturas d e m em oria d istribu ida ................................................................................. 283

5.5.1. C lusters........................................................................................................................................... 2835.5.2. G rids................................................................................................................................................ 286

R E SU M E N D E D EC ISIO N ES D E D ISE Ñ O D E SISTEM AS M U LTIPR O C ESA D O R Y M U L -T I C O M P U T A D O R ............................................................................................................................................... 288

Diseño d e redes dentro d e arquitecturas................................................................................................ 288Diseño d e arquitecturas d e m em oria com partida ............................................................................... 288Diseño d e arquitecturas d e m em oria com partida-distribuida......................................................... 288Diseño d e arquitecturas d e m em oria d istribu ida ................................................................................ 289

B IB L IO G R A FÍA Y LE C T U R A S R E C O M E N D A D A S ........................................................................... 289

PR O B L E M A S......................................................................................................................................................... 290

AUTOEVALUACIÓN........................................................................................................................................... 296

Capítulo 6: Evaluación de prestaciones6.1. Definición d e m étricas d e rendim iento................................................................................................... 2986.2. M étricas d e rendim iento sencillas........................................................................................................... 2996.3. Evaluación y com paración d e rendim iento .......................................................................................... 300

6.3.1. Ley d e Am dhal y Ley d e G u sta fso n ........................................................................................ 3036.4. Técnicas d e m edida y b en ch m ark s.......................................................................................................... 307

6.4.1. Técnicas d e m ed id a ....................................................................................................................... 3086.4.2. T ipos d e benchm ark..................................................................................................................... 310

6.5. M étricas d e rendim iento com plejas......................................................................................................... 3126.5.1. Speedup en sistem as paralelos y eficiencia............................................................................. 3136.5.2. Escalabilidad................................................................................................................................... 315

B IB L IO G R A FÍA Y LE C T U R A S R E C O M E N D A D A S ........................................................................... 317

PR O B L E M A S......................................................................................................................................................... 318

AUTOEVALUACIÓN........................................................................................................................................... 320

índice analítico................................................................................................................................................. 321

Page 9: Diseño y Evaluación de Arquitecturas de Computadoras

Introducción

C o n t e n i d o s1. D e fin ic ió n de a rq u ite c tu ra de c o m p u ta d o ra s2. O b je tivo s de es te lib ro3. C óm o usar es te lib ro4. A g ra d e c im ie n to s

7

Page 11: Diseño y Evaluación de Arquitecturas de Computadoras

INTRODUCCIÓN

La idea d e este libro surge tra s im partir las asignaturas d e A rquitectura d e C om putadores d e 3.° de Ingeniería Inform ática y A rquitectura e Ingeniería d e C om putadores d e 4.° de Ingeniería Inform ática en la U niversidad Rey Juan C arlos d e M adrid d u ran te los seis últim os cursos.

El objetivo principal que nos planteam os fue d d e p ro p o rd o n ar a los docentes y a los estudiantes un libro de texto en castellano que cubriera los contenidos típicos de las asignaturas d e A rquitectura de C om putadores de los últim os años d e carrera con una visión com pleta y equilib rada del tem a, y u n en ­foque puram ente pedagógico.

Este objetivo h a supuesto un gran reto, principalm ente p o r tres motivos. El primero, la gran variedad de sistemas que hoy en d ía se agrupan en la denom inación “com pu tado ra” (variedad en aplicación, pres- tadones, com plejidad, coste, etc.). El segundo, d ritm o vertiginoso al q u e cam bian todos estos sistemas, tanto en lo que se refiere a la tecnología com o al diseño, y la com plejidad d e las técnicas em pleadas en la actualidad. Y el tercero, y no por ello m enos im portante, la incertidum bre g a le rad a por la adaptación de los estudios al Espacio Europeo d e E ducadón Superior (EEES).

A pesar d e todo, este libro in ten ta presentar los conceptos fundam entales relacionados con el diseño y evaluación d e arquitecturas d e com putadoras, teniendo en cuen ta las técnicas generales que pueden aplicarse a cualquier tipo de arquitectura, sentando las bases para que el estudiante pueda com prender las tecnologías y diseños q u e aparezcan en el futuro p o r com plejas q u e éstas sean, y proporcionando una herram ienta d e trabajo m uy valiosa p a ra la adqu isidón p o r parte d e los estudiantes d e los conocim ientos, capaddades y destrezas correspondientes, tan to a i sus clases lectivas, teóricas o prácticas, com o en sus horas d e estudio individual.

O Definición de arquitectura de computadorasLa defin idón d e la A rquitectura d e C om putadoras h a generado m ultitud d e discusiones desde la

aparidón d e la que puede considerarse la prim era com pu tado ra a i 1943, la EN IA C.Desde este m om ento diferentes au tores han propuesto diferentes descom posidones d e u n a co m p u ta ­

dora según el nivel de detalle y abstracdón con q u e se estudie. En todos los casos cada uno d e los niveles de descripdón está gobernado por sus propios lenguajes d e representación, p o r sus reglas d e diseño y por sus leyes d e funcionam iento. C ada nivel to m a com o d em en tos fundam entales o prim itivas los constitu i­dos a i los niveles inferiores. A dem ás d e existir esta je ra rq u ía externa, dentro d e cada nivel suele existir una jerarqu ía interna d e sis to n as y subsistonas q u e facilita el estudio de sus e lo nen tos y d e las rdaciones o itre ellos.

La idea principal d e todas las propuestas realizadas en este sentido es la m iaña : definir u n a descom ­posición de la com putadora a i nivdes d e estudio que perm ita su descripción jerárquica y q u e fad lite su com prensión y diseño.

¿Qué relación tienen estos niveles d e estudio con la A rquitectura d e C om putadoras? La prim era vez que se definió este térm ino fue en un artículo que p reso itaba la familia 360 d e IB M y se definía com o “La estructura de u n a com pu tado ra q u e debe conocer u n program ador en lenguaje m áquina p a ra escribir program as correctos p a ra esa m áquina” . U n a definición similar propusieron A m dhal, Blaaw y Brooks o í 1964 “Los atributos d e una com putadora tal y com o los ve un program ador en lenguaje ensam blador, com prende la estructu ra conceptual y el m oddo fu n d o n a l (modelo d e program ación)” .

I^ro hoy en d ía las com putadoras son sis to n as dem asiado sofisticados p a ra simplificar tan to la d e ­finición d e su arquitectura. Para com pletar un poco estas aproxim adones basadas en nivdes d e descrip­d ó n , com encanos p o r algunas definiciones que se encuentran en la literatura d d área y q u e nos perm iten acercarnos a es ta cuestión:

• M ateria que com prende el diseño, la fabricación, la configuración y la explotación eficiaite d e las com putadoras.

Page 12: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE COM PUTADO RAS

• Campo d e la inform ática que se encarga del estudio d e todos los elementos, software y hardware necesarios p a ra el diseño d e un sistem a com putacional com pleto.

• Arte d e diseñar u n a com putadora que cum pla las necesidades del usuario teniendo en cuen ta las limitaciones tecnológicas y económ icas existentes.

• M ateria que se encarga del estudio d e las relaciones entre los com ponentes que form an una com ­putadora.

• Estudio de la estructu ra y organización d e los com ponentes hardw are y software que form an una com putadora.

D e estas definiciones y d e m uchas o tras sim ilares que pueden encon trarse en la bibliografía, se pueden ex traer a lgunas conclusiones. L a prim era, se puede considerar q u e la A rqu itec tu ra d e C om pu­tad o ras se encarga del estud io d e los elem entos d e la co m p u tad o ra q u e están p o r debajo d e la visión ofrecida a los usuarios y program adores finales y a sus aplicaciones. E ste estud io debe com prender cuatro tipos d e aspectos: los relacionados con el repertorio d e instrucciones d e la com pu tado ra , los relacionados con su organización, los re lacionados con su im plem entación concreta , y p o r últim o, los relacionados con la evaluación d e su rendim iento. L a segunda, se tra ta d e u n a m ateria estrecham ente relacionada con el estud io d e la es tru c tu ra y organización d e la co m p u tad o ra y con las relaciones en tre sus com ponentes. Pero no se tra ta sólo d e un estud io teórico, sino q u e tam bién es necesario saber cóm o diseñar la com pu tado ra , según esta organización y las relaciones en tre sus elem entos, p a ra q u e cum pla unos requisitos específicos.

Por últim o, cabe destacar d o s aspectos com únm ente olvidados:

• La A rquitectura d e C om putadoras no sólo se encarga d e los elem entos hardw are sino tam bién de tos elem entos software. Esto se debe a que en m uchos casos am bos aspectos se hallan estrecham en­te relacionados y no se pueden estud iar p o r separado. El ejemplo m ás claro es el d e los sistem as operativos, estudiados muy frecuentem ente den tro del área de A rquitectura d e C om putadoras p o r su estrecha relación con el hardw are d e la com putadora. P or ejemplo, en el estudio d e la m em oria virtual, q u e no puede com prenderse de m anera exhaustiva atendiendo sólo a aspectos hardware.

• El térm ino C om putadoras debe ser com pletam ente general y no restrictivo. Es decir, no se deben estudiar sólo com putadoras d e propósito general sino tam bién sistemas específicos diseñados para aplicaciones o tareas concretas d e diferentes tam años, costes y prestaciones.

U na vez definida la A rquitectura de C om putadoras, queda clara la im portancia q u e el estudio de esta m ateria adquiere en las diferentes titulaciones d e ingeniería relacionadas con las Tecnologías d e la Inform ación y las Com unicaciones (TIC).

Desde los años 70, organism os internacionales com o A C M o IE E E h an em itido periódicam ente informes que realizan recom endaciones para el currículum d e las titulaciones relacionadas con la infor­mática. F inalm ente am bas instituciones han unificado sus esfuerzos y desde 1980 realizan una serie de recom endaciones com unes q u e se han resum ido en los Computing Curricula. Las recom endaciones d e es­tas dos organizaciones establecen las grandes líneas q u e deben o rien tar la educación d e los profesionales del m undo d e la inform ática teniendo en cuen ta las necesidades y dem andas d e la sociedad actual, y en la m ayor parte d e los perfiles profesionales propuestos, la A rquitectura d e C om putadoras tiene un gran peso en la form ación d e los egresados y en las com petencias que éstos deben adquirir.

Objetivos de este libroComo se señalaba en la introducción d e este capítulo, nuestro objetivo principal es proporcionar a

los docentes y a los estudiantes d e A rquitectura d e C om putadoras un libro d e texto en castellano que

Page 13: Diseño y Evaluación de Arquitecturas de Computadoras

INTRODUCCIÓN

recopile d e m anera sistem ática las técnicas m ás im portantes d e diseño y evaluación de arquitecturas de com putadoras.

A este objetivo se sum a nuestra intención d e escribir d libro con un enfoque puram ente didáctico, por lo que el texto incorpora un gran número d e figuras ilustrativas y ejem plos resueltos, resúm ales con los conceptos m ás im portantes, propuestas de ejercidos y autoevaluaciones, etc. Además, a lo largo de todo este libro se utiliza la arqu itectura d e un procesador d e tipo R ISC , el nanoM IPS, com o ejem plo d i­dáctico q u e perm ita com prender todas las técnicas estud iadas y concretarlas en u n a m ism a arquitectura para to d as las explicaciones y ejemplos. Este procesador sólo tiene fines pedagógicos, pero su arquitec­tura se basa en los mismos principios d e diseño que o tras de tipo R ISC com o el MIPS, el SPARC o el PowerPC.

Nuestro objetivo es q u e tras el estudio de este libro el estudiante adquiera las siguientes com peten- das:

1. C om prender el funcionam iento de las principales unidades fundonales que com ponen la com ­p u tad o ra (procesador, m em oria y sistem a d e E/S).

2. A nalizar los aspectos d e rendim iento m ás im portantes d e cada una d e las unidades fundonales y re ladonarlos con el rendim iento d e las dem ás.

3. D iseñar y configurar u n a com putadora p a ra que cum pla unos requisitos d e a ltas prestaciones.4. C onocer las técnicas de aum ento d e prestaciones que se aplican en diferentes niveles en las com ­

putadoras actuales.5. Evaluar d e m anera fiable el rendim iento d e una com putadora y/o d e las unidades funcionales

que la com ponen utilizando p a ra d io las m étricas d e rendim iento adecuadas.6. U tilizar los resultados obtenidos d e esta evaluación p a ra detectar cu d lo s de b o td la , com parar

diferentes alternativas, optim izar el rendim iento, etc.

Y q u e d profesor d isponga de una herram ienta q u e directam ente le perm ita preparar su asignatura para q u e el alum no obtenga estas com petencias sin necesidad d e estar filtrando y fusionando inform a- d ó n d e d istin tas fuentes de referencia. P ara ello este libro se organiza en tres partes:

• Prim era parte: D iseño y evaluación d e procesadores, m em orias y sistem as d e E/S básicos (com pe­tencias 1 y 2).

— Capítulo 1. Conceptos Básicos de Procesadores. En este capítulo se com ienza p o r estud iar el diseño de un repertorio d e instrucciones para pasar a com prender el mecanismo com pleto de ejecudón d e una instrucción. A continuación se proporcionan los fundam entos d e evaluación de prestaciones del procesador y se estud ia d diseño de procesadores secuendales y d e proce­sadores segm entados básicos.

— Capítulo 2. Conceptos Básicos de Memoria y E/S. En este capítulo se com ienza estudiando el diseño d e una jerarqu ía d e m em oria básica, el mecanismo com pleto d e acceso a m em oria y la evaluación d e p restadones d e la jerarqu ía d e m em oria para pasar a analizar los diferentes nive­les q u e com ponen la je rarqu ía de m em oria. A continuación se estudia el diseño de un sistema de E/S básico, el mecanismo com pleto d e una op erad ó n d e E/S y la evaluación d e prestaciones d d sistem a d e E/S. Por últim o, con todos estos conceptos básicos de E/S, se pasa a profundizar a i el diseño d e buses d e E/S y d e m ecanism os de gestión d e E/S.

• Segunda parte: Diseño y evaluación d e procesadores, m em orias y sistemas d e E/S avanzados (com ­petencias 3 ,4 , 5 y 6).

— Capítulo 3. Técnicas de aumento de prestaciones para procesadores. En este capítulo se estudian las técnicas d e aum ento de prestaciones m ás utilizadas en la actualidad a i el diseño de procesa­dores: planificación d inám ica d e instrucciones, predicción d inám ica de saltos, em isión múltiple de instrucciones, especulación y m ultithreading.

Page 14: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE COM PUTADO RAS

— Capítulo 4. Técnicas de aumento de prestaciones para memoria y E/S. E ste cap ítu lo se cen tra en el estud io d e las técnicas q u e perm iten au m en tar el rendim iento d e la je ra rq u ía d e m em o­ria (estudiando técnicas para la m em oria caché y p a ra la m em oria principal) y del sistem a de E/S (aum ento d e prestaciones d e los buses, d e los dispositivos y d e los m ecanism os de gestión).

— Capítulo 5. Sistemas multiprocesador y multicomputador. E n el últim o capítulo d e esta segunda parte se com ienza por realizar u n a clasificación de arquitecturas con varios procesadores para pasar a continuación a estud iar los conceptos básicos d e redes dentro de arquitecturas d e com ­putadoras. A continuación se estud ia el diseño d e arquitecturas de m em oria com partida, de mem oria com partida-distribuida y d e m em oria distribuida.

• Tercera parte: Profundización en la evaluación d e rendim iento, selección d e métricas, técnicas y herram ientas d e m edida, com paración de rendim iento, etc. (com petencias 5 y 6).

— Capítulo 6. Evaluación de prestaciones. En este capítulo se discute acerca d e la definición de métricas d e rendim iento adecuadas, se estudian m étricas d e rendim iento sencillas y cóm o utili­zadas para realizar evaluación y com paración d e rendim iento. A co n tinuadón se estudian las técnicas de m edida y benchm arks necesarios para ob tener los valores de estas m étricas y por último, se estudian m étricas d e rendim iento com plejas necesarias p a ra evaluar las prestaciones de arquitecturas co n m ás d e un procesador.

Cómo usar este libroP ira com enzar a estudiar este libro es necesario haber estudiado previam ente alguna asignatura de

Inform ática Básica q u e haya proporcionado al estudiante una visión panorám ica d e la inform ática y las prim eras nociones básicas acerca de la representación d e inform ación dentro de la com pu tadora y d e la arquitectura Von N eum ann. P or o tro lado, tam bién sería deseable que el estud ian te conociera los co n ­ceptos básicos d e F undam entos d e C om putadoras (con toda la base en electrónica analógica y digital) y de E structura y Tecnología d e C om putadoras, p a ra tener c lara una descripción básica de las diferentes unidades funcionales d e la com pu tadora (procesador, m em oria y periféricos) y nociones d e lenguaje ensam blador.

Los capítulos d e este libro están ordenados para que su estudio secuencial perm ita al estudiante obtener las com petencias antes m encionadas. Sin em bargo, todos d io s son autocontenidos y existen d ife­rentes itinerarios que se pueden seguir para estud iar con este libro si no se es tá siguiendo el p rogram a de ninguna asignatura concreta o si se em plea la técnica del estudio autónom o. A continuación se sugieren los m ás habituales:

I t in e ra r io 1: A rq u ite c tu ra de C o m p u ta d o ra sC a p ítu lo 1 C a p ítu lo 2

It in e ra r io 2 : A rq u ite c tu ra e In g e n ie r ía d e C o m p u ta d o ra s o A m p lia c ió n d e A rq u ite c tu ra d e C o m p u ta d o ra s

C a p ítu lo 3 C a p ítu lo 4 C a p ítu lo 5 C a p ítu lo 6

It in e ra r io 3 : A rq u ite c tu ra d e P ro c e s a d o re sC a p ítu lo 1 C a p ítu lo 3 C a p ítu lo 5

En cu a lq u ie r caso se sugiere al e s tu d ia n te q u e e s tu d ie con a te n d ó n lo s ejem plos, q u e in te n te reso lver los p rob lem as p ro p u esto s (que es tán siem pre en o rd en expositivo , según se h a n p resen tado lo s co n cep to s

Page 15: Diseño y Evaluación de Arquitecturas de Computadoras

INTRODUCCIÓN

en cad a capítulo) y que utilice las autoevaluaciones p a ra cuantificar el grado d e obtención d e las com ­petencias asociadas a cad a capítulo. Y q u e profundice a i sus tem as de interés siguiendo p a ra ello las referencias detalladas al final d e cad a capítulo.

En cuan to a los docentes, se proporcionan los siguientes datos p a ra que les sirvan d e referencia. El prim er itinerario corresponde casi p o r com pleto con la asignatura de A rquitectura d e C om putadores de3.° d e Ingeniería Inform ática (planes antiguos). E sta asignatura se h a im partido en estos planes d e estu ­dios en 60 horas d u ran te un cuatrim estre, 40 ho ras d e clases teórico/prácticas y 20 horas d e prácticas. El segundo itinerario corresponde, igualmente, con la asignatura d e A rquitectura e Ingeniería d e C om puta­dores d e 4.° d e Ingeniería Inform ática (planes antiguos). E sta asignatura se h a im partido en 120 horas a lo largo d e todo el curso, 75 horas d e clases teórico/prácticas y 45 horas d e prácticas.

Además del libro d e texto, hem os preparado una serie d e recursos web disponibles p a ra el apoyo tanto de estudiantes com o d e profesores. La finalidad es proporcionar docum entos, inform ación, h e rra ­m ientas y enlaces ú tiles p ara todos los lectores.

El sitio se actualizará según las necesidades y sugerencias d e los lectores, aunque en principio co n ­tendrá una fe de erratas del libro, las figuras, soluciones a problem as escogidos, ejem plos d e prácticas y exámenes y transparencias p a ra las clases.

AgradecimientosNo querem os finalizar es ta introducción sin m anifestar nuestro agradecim iento a los au tores d e los

textos y libros que nos han servido com o referencia en nuestra labor docente y en la redacción d e este li­bro: Patterson&Hennessy, H ennessy& Patterson, Stallings, Shen& Lipasti, O rtega& A nguita& Prieto, Par- hami, Hwang, Culler& Singh& G upta, etc.

También a Pearson Educación p o r la confianza depositada en nosotros. Y p o r supuesto, a nuestros alum nos d e tod o s estos cursos por la magnífica experiencia q u e h a supuesto com partir horas d e clase y tu torías con ellos.

Los au tores Febrero 2010

Page 16: Diseño y Evaluación de Arquitecturas de Computadoras
Page 17: Diseño y Evaluación de Arquitecturas de Computadoras

Conceptos básicos de procesadores

C o n t e n i d o s |1.1. D iseño de un re p e rto r io de in s tru cc io n e s1.2. M e ca n ism o c o m p le to de e je cu c ió n de una in s tru cc ió n1.3. E va luac ión de p res tac ione s de un p ro ce sa d o r1.4. D iseño de p rocesado res secuenc ia les1.5.

vD iseño de p ro ce sa d o re s se g m e n ta d o s

V

Page 18: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En este capítulo se com ienza por estud iar el diseño del repertorio d e instrucciones d e un procesador, ya que desde el p un to d e v ista del diseñador, este repertorio determ ina m uchos d e los aspectos d e diseño del procesador, q u e debe ser capaz d e ejecutar todas las instrucciones incluidas en este repertorio.

Este análisis d e los aspectos d e diseño d e un repertorio d e instrucciones se cen tra en los repertorios de tipo R ISC (Reduced Instruction Set C om puter), ya que, com o se explica en este capítulo, las tendencias de diseño actuales se basan casi com pletam ente en las técnicas d e optim ización que se aplican a estos procesadores.

U na vez estudiadas las diferentes alternativas para el diseño d e un repertorio d e instrucciones RISC, se describe el mecanismo com pleto d e ejecución d e u n a instrucción den tro d e u n procesador d e este tipo y se proporcionan las herram ientas básicas que perm iten determ inar d rendim iento de u n procesador y así evaluar con técnicas cuantitativas las técnicas d e diseño d e procesadores q u e se estud ian en el resto del capítulo.

A continuadón se presentan las técnicas básicas de diseño d e procesadores R ISC secuenciales, es decir, de procesadores en los que sólo se puede ejecutar una instrucdón en cada momento. Se analizan los dos tipos de temporización que se pueden utilizar a i procesadores secuenciales, m onodclo cuando cada instruc­d ó n tarda un único ciclo d e reloj en ejecutarse o multiciclo cuando puede ejecutarse en más d e un ciclo.

El resto del capítulo se centra en las técnicas d e segm entadón d e procesadores, que perm iten com en­zar a explotar el paralelism o a nivel de in stru cd ó n y aum entar así d rendim iento d e los procesadores secuenciales sin necesidad d e increm entar significativamente la com plejidad del hardware.

En concreto se estud ian los conceptos básicos re ladonados con la segm entación (m otivación, rendi­miento, lim itadones, etc), las técnicas de diseño d e procesadores segm entados d e única fu n d ó n y mul- tifuncionales, las alternativas existentes para la resolución de riesgos en este tipo de procesadores, y por último, las técnicas d e tratam iento d e excepdones.

Diseño de un repertorio de instruccionesEl fundonam iento y diseño d e un procesador está com pletam ente determ inado por el repertorio de

instrucciones m áquina o ensam blador que puede ejecutar, po r eso este capítulo com ienza con el estudio de los conceptos básicos relacionados con este repertorio. Influye directam ente en el número d e instruc- d o n es que hace falta ejecutar para realizar una determ inada ta rea (I), p o r lo que repercute directam ente a i el tiem po de C P U de la ta rea (como se estud iará un poco m ás adelante en este mismo capítu lo). Ade­más, el repertorio influye decisivamente en el diseño del com pilador (en la figura 1.1 se resum e d proceso de transform ación d e u n código d e alto nivel a lenguaje m áquina) y está estrecham ente rdacionado con d diseño d e la ru ta d e da to s y la unidad d e control del procesador.

H asta los años 80 la mayor parte d e los repertorios d e instrucciones eran d e tipo C ISC (Com plex Instruction Set C om puter), pero a partir d e ese m om ento la tendencia com enzó a cam biar, im poniéndose los repertorios d e tipo R ISC (Reduced Instruction Set Com puter). Por ello es este tipo d e repertorio el que se va a estud iar a lo largo d e este libro, ya que los procesadores actuales o son com pletam ente R ISC o, aunque aparezcan com o C ISC hacia d exterior, en realidad m antienen en su núcleo una arquitectura que incorpora las técnicas típicas d e diseño R ISC (como es el caso d e las arquitecturas x86).

Las arquitecturas de tipo CISC manejan repertorios con un gran número d e instrucdones complejas, es decir, con gran variedad de tipos d e datos, de modos de direcdonam iento y d e operaciones. Esto perm ite im- plementar instrucdones de alto nivel directamente o con un número pequeño de instrucdones ensamblador.

En el caso d e las arquitecturas RISC, el repertorio está com puesto p o r pocas instrucciones y m uy b á ­sicas. Se tra ta d e repertorios simples y ortogonales, a i los q u e los form atos d e instrucción son uniform es y se utilizan pocos tipos de da to s y d e m odos de direcdonam iento , siempre los m ás sendllos. Adem ás son fádlm ente extensibles y por tanto, perm iten d iseñar nuevos repertorios com o modificaciones y/o exten­siones d e repertorios ya existentes.

m

Page 19: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

También se debe de tener en cuen ta q u e el hardw are d e este tipo de procesadores es mucho m ás sen­cillo d e diseñar, m ás bara to y puede trabajar a m ayor frecuencia d e reloj. Y quizás lo m ás im portante: las técnicas de optim ización son mucho m ás sencillas d e implementar, tan to en el propio hardware del procesador com o en el com pilador. Todo esto com pensa la principal desventaja q u e im plican estos re­pertorios tan sencillos, que siempre necesitan un m ayor número de instrucciones q u e un repertorio C ISC para realizar la m ism a tarea.

Estas son las principales razones p o r las que se h an im puesto las arquitecturas R ISC y p o r ello, es el tipo de repertorio q u e se estud ia en este libro.

1.1.1. Decisiones acerca del tipo de almacenamiento de operandos

Los diferentes repertorios d e instrucciones se diferencian principalm ente en el tipo d e alm acenam ien­to interno que utilizan. Se distinguen distin tos tipos (figura 1.2):

• Pila. L os operandos son implícitos, siempre en la parte superior de la p ila (Top of Stack, TOS). Es decir, no es necesario indicar en las instrucciones d ó n d e se encuentran los operandos.

• Acumulador. U no d e los operandos es implícito (el que está en el acum ulador) y el o tro se debe especificar d e m anera explícita.

• Registros de propósito general (GPR o General Purpose Registers). Los operandos se especifican de m anera explícita, pueden ser d o s operandos (si uno d e los operandos fuente alm acena tam bién d resultado de la operadón) o tres operandos. Y se puede perm itir que alguno o todos los ope­randos se encuentren en m em oria. P or lo tan to se pueden d iseñar repertorios:

— Registro-Registro d e 3 operandos, en los que los tres operandos deben estar en registros del procesador antes de operar con ellos. P ara llevar los operandos desde la m em oria hasta los re­gistros se utilizan instrucdones d e carga (load) y p a ra llevar los resultados desde los registros hasta la m em oria se utilizan instrucdones de alm acenam iento (store).

— Registro-M em oria d e 2 operandos, en los que com o m ínim o uno d e los operandos debe estar en u n registro, pero d otro puede e s ta r en m em oria.

— M em oria-M em oria d e 2 o 3 operandos, en los que se perm ite q u e todos los operandos estén en la m em oria.

C a á to d as las arquitecturas actuales se basan en registros d e propósito general ya que los registros son m ás rápidos q u e o tros tipos d e alm acenam iento, sobre todo q u e la m em oria (porque están dentro del

Page 20: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQUITECTURAS DE CO M PUTADO RAS

Alm acenam iento tipo Pila

A lm acenam iento tipo M emoria - Memoria

Fig ura

Alm acenam iento tipo Acum ulador

A lm acenam iento tipo Registro-Registro

A lte rn a tiv a s p a ra e l a lm a c e n a m ie n to de lo s o p e ra n d o s .

propio procesador), y son utilizados d e m anera m ucho m ás eficiente por los com piladores. Por ejemplo, se pueden utilizar p a ra alm acenar tem poralm ente variables del program a y reducir así el tráfico co n m e­m oria. P or todo esto, es el tipo d e alm acenam iento que m ejor se com p o rta con repertorios RISC.

D e las diferentes alternativas disponibles para d iseñar u n repertorio G P R , hay q u e tener en cuen ta que en los repertorios registro-registro la codificación d e las instrucciones es sencilla puesto q u e todas tienen la m ism a longitud y adem ás to d as las instrucciones se ejecutan en u n núm ero similar d e ciclos.

Si los operandos siempre están en registros, para indicar en una instrucción la ubicación d e los ope­randos siempre habrá q u e especificar el identificador d e tres registros y p a ra acceder a d io s, siempre h a ­b rá que leer o escribir d e registros. Sin em bargo hay u n a desventaja, y es q u e los program as ocupan m ás porque se necesitan m ás instrucciones que en arquitecturas que perm itan tener operandos en m em oria: las que leen de m em oria p a ra traer los operandos a registros dentro del procesador y las q u e llevan los resultados desde los registros d d procesador hasta la m em oria. Es ded r, se necesitan instrucciones de carga (lectura o load) y d e alm acenam iento (escritura o store).

En el otro extremo, las arquitecturas m em oria-m em oria perm iten obtener códigos m ás com pactos porque no hacen fa lta instrucdones d e carga y alm acenam iento. Adem ás no se m algastan registros en alm acenar valores tem porales. Sin em bargo, la m em oria puede llegar a ser un cuello d e bo tella ya q u e se accede a ella constantem ente. Y puede haber grandes diferencias entre la longitud d e las instrucciones (se necesitan m uchos m ás bits p a ra especificar la dirección de m em oria de u n operando q u e p ara especificar d identificador d e un registro dentro d d procesador) y en tre su d u ra d ó n (los tiem pos d e acceso a m em o­ria y a registros son muy diferentes). Estos d o s factores com plican la codificación d d repertorio y hacen que pueda variar mucho el C PI (Ciclos P or Instrucdón) d d procesador en tre unas instrucciones y otras.

M E M O R IA P R IN C IP A L

Page 21: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Ejem plo 1.1

Alternativas para el almacenamiento de los operandos.

V am os a c o m p a ra r co n un e je m p lo s e n c illo las d ife re n c ia s e n tre lo s d is t in to s t ip o s de a lm a ce n a m ie n to de operandos. S u p o n g a m o s q u e va m o s a e va lu a r c u a tro a lte rna tivas :

a) Pila ( im p le m e n ta d a de m ane ra q u e n o ex is te la p o s ib ilid a d de re u tiliza c ió n de operandos).b) A cum u lador.c) R e g is tro -R eg is tro de 3 o p e ra n d o s co n 8 re g is tro s de p ro p ó s ito genera l.d) M em o ria -M e m o ria de 3 ope randos.

Para rea liza r la c o m p a ra c ió n s u p o n g a m o s q u e se desea rea liza r una senc illa secuenc ia de o p e rac iones a ritm é tico -ló g ica s :

R = X A N D YZ = X OR YY = R A N D X

A d e m á s nece s itam o s saber q u e el c ó d ig o de ope ra c ió n (op co d e ) de las in s tru c c io n e s en este re p e rto r io s ie m pre o cupa 1 B, las d irecc ion e s de m e m o ria y lo s o p e ra n d o s o cu p an 4 B y q u e las in s tru cc io n e s s ie m pre tienen una lo n g itu d q u e es un n ú m e ro e n te ro de by te s para fa c ilita r su a lm a ce n a m ie n to y d e co d ifica c ió n . Los o p e ra n d o s están in ic ia lm e n te a lm ace n a d o s en la m e m o ria . Las c u a tro secuencias de c ó d ig o para la ope ra c ió n lóg ica q u e d eseam os rea liza r serían:

a) Pila.

T rá fic o c o n la m e m o ria de in s tru c c io n e s

T rá fic o c o n la m e m o ria de d a to s

A p ila r X O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A p ila r Y O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A N D O p code = 1B —

D esap ila r R O p c o d e + d ire c c ió n =5B 1 o p e ra n d o = 4 B

A p ila r X O p c o d e + d ire c c ió n =5B 1 o p e ra n d o = 4 B

A p ila r Y O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

OR 0 p c o d e = 1B —

D esap ila r Z O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A p ila r X O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A p ila r R O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A N D O p code = 1B —

D esap ila r Y O p c o d e + d ire c c ió n =5B 1 o p e ra n d o = 4 B

Las in s tru cc io n e s A N D y OR n o ind ica n cuá les son sus o p e ra n d o s ya q u e están im p líc ito s : a lm ace n a d o s en la p a rte s u p e rio r de la p ila .

b) A cum u lador.

T rá fic o c o n la m e m o ria de in s tru c c io n e s

T rá fic o c o n la m e m o ria de d a to s

Load X O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A N D Y O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

S to re R O p c o d e + d ire c c ió n =5B 1 o p e ra n d o = 4 B

Page 22: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

T rá fic o co n la m e m o ria de in s tru c c io n e s

T rá fic o c o n la m e m o ria de d a to s

Load X 0 p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

OR Y O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

S to re Z O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

Load R O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

A N D X O p c o d e + d ire c c ió n =5B 1 o p e ra n d o = 4 B

S to re Y O p c o d e + d ire c c ió n = 5 B 1 o p e ra n d o = 4 B

En este caso las in s tru c c io n e s de A N D y OR tie n e n q u e in d ic a r e x p líc ita m e n te u n o de sus o p e ra n d o s , el o tro está s ie m p re en el acum u lador.

c) R e g is tro -R eg is tro de 3 o p e ra n d o s co n 8 re g is tro s de p ro p ó s ito genera l.

Si h a y 8 re g is tro s , se neces itan 3 b its para in c lu ir la e tiq u e ta de un re g is tro en una in s tru cc ió n .

T rá fic o c o n la m e m o ria de in s tru cc io n e s

T rá fic o c o n la m e m o ria de d a tos

Load R1,X O p c o d e + d ire c c ió n + re g is tro = 6 B 1 o p e ra n d o = 4 B

Load R2,Y O p c o d e + d ire c c ió n + re g is tro = 6 B 1 o p e ra n d o = 4 B

A N D R3,R1,R2 O p c o d e + 3 re g is tro s (9 b its que se red o n d e a n a 2 B) = 3B

OR R4,R1,R2 O p c o d e + 3 re g is tro s (9 b its que se red o n d e a n a 2 B) = 3B

A N D R2,R3,R1 O p c o d e + 3 re g is tro s (9 b its que se red o n d e a n a 2 B) = 3B

S to re R3,R O p c o d e + d ire c c ió n + re g is tro = 6B 1 o p e ra n d o = 4 B

S to re R4,Z O p c o d e + d ire c c ió n + re g is tro = 6B 1 o p e ra n d o = 4 B

S tore R2,Y O p c o d e + d ire c c ió n + re g is tro = 6B 1 o p e ra n d o = 4 B

d) M e m o ria -M e m o ria de 3 operandos.

T ró fic o c o n la m e m o ria de in s tru cc io n e s

T ró fic o co n la m e m o ria de d a tos

A N D R,X,Y O p c o d e + 3 d irecc ion e s = 13B 3 o p e ra n d o s = 12B

OR Z ,X ,Y O p c o d e + 3 d irecc ion e s = 13B 3 o p e ra n d o s = 1 2 B

A N D Y,R,X O p c o d e + 3 d irecc ion e s = 13B 3 o p e ra n d o s = 1 2 B

Si co m p a ra m o s el t rá f ic o to ta l co n la m e m o ria de in s tru c c io n e s y con la m e m o ria de d a tos en cada caso:

T ró fico to ta l con la m e m o r ia de in s tru cc io n e s

T rá fic o to ta l c o n la m e m o ria de d a tos

Pila 48B 36B

A c u m u la d o r 45B 36B

R eg is tro -R eg is tro 39B 20B

M e m o ria -M e m o ria 39B 36B

Page 23: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Podem os o b se rva r q u e el a lm a ce n a m ie n to R eg is tro -R eg is tro im p lica el m e n o r t rá f ic o con la m e m o ria de d a tos ya q u e p e rm ite la re u tiliza c ió n de lo s o p e ra n d o s q u e se ca rgan en lo s re g is tro s de l p rocesador. Sin e m b a rg o , co n este t ip o de a lm a ce n a m ie n to el t rá f ic o co n la m e m o ria de in s tru c c io n e s n o se pu e de re d u c ir e xces iva m e n te ya q u e el c ó d ig o t ie n e m ás in s tru cc io n e s d e b id o a las in s tru cc io n e s de ca rga y a lm ace n a m ie n to necesarias para tra e r lo s o p e ra n d o s a lo s reg is tros .

En el o tro e x tre m o se en cu en tra el a lm ace n a m ie n to M e m o ria -M e m o ria , q u e p e rm ite co n s e g u ir un có d ig o m u y c o m p a c to de só lo 3 in s tru cc io n e s (au n q u e de g ra n ta m a ñ o p o rq u e in c lu ye n hasta 3 d irecc ion e s de m e ­m oria ), p e ro n o p e rm ite n in g ú n t ip o de re u tiliza c ió n de o pe randos , a cce d ie n d o a m e m o ria para lo s d o s o pe ran - dos fu e n te y para el de s tin o en to d a s las in s tru cc io n e s . Con un có d ig o ta n se n c illo el e fe c to de estos c o n tin u o s accesos a la m e m o ria de d a tos n o es c r ític o , p e ro en un c ó d ig o rea l (con m u ch a s m ás in s tru cc io n e s ), es to haría que la m e m o ria se co n v irtie ra , casi co n to d a p ro b a b ilid a d , en el c u e llo de b o te lla de l s is tem a.

1.1.2. Decisiones acerca de la interpretación de las direcciones de memoria y de los modos de direccionamiento soportados

El d iseñador d e un repertorio de instrucciones debe determ inar cóm o se especifican e in terpretan las direcciones d e m em oria.

La mayor parte de los repertorios perm iten acceder a 1 ,2 , 4 u 8 bytes d e inform ación. H ay d o s p o ­sibilidades d e ordenación, según d ó n d e se coloque el byte m ás significativo d e inform ación en la palabra de m em oria (figura 1.3):

• Big Endian. El byte m enos significativo d e inform ación se coloca en la posición m enos significati­va d e la palabra d e m em oria (big end).

• Little Endian. El byte m enos significativo se coloca en la posición m ás significativa d e la palabra de m em oria (little end).

En algunos casos se denom ina Middle-Endian a una arquitectura q u e es capaz d e trabajar con am bas ordenaciones (p o r ejemplo, el procesador M IPS o el PowerPC, am bos arquitecturas R ISC ).

7 6 5 4 3 2 1 0M em oria Principal

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0W'W'W'W'

H l w w v r r r ^ nT H

0 1 2 3

LSB BIGENDIAN

MSB

M em oria Principal 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

mmmmwmfv' ■mrrn 7 6 5 4 3 2 1 0I1I I I I I Iwmwmwffffim rrr 11 ■■ i n i i

3 2 1 0MSB UTTLE LSB

ENDIAN

Fig u r a 1 .3

| D ife re n c ia e n tre L itt le E n d ia n y B ig E n d ia n . |

Además hay q u e especificar cóm o deben ser los accesos a inform ación d e tam año m ayor q u e 1 byte. N orm alm ente estos accesos deben estar alineados (figura 1.4). U n acceso a u n a inform ación d e s bytes en la dirección del byte B está alineado si B módulo s = 0.

Page 24: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Memoria Principal

M edia Palabra 1 1 Acceso A lineado(2 Bytes) ............... w m | Acceso No A lineado

0 1_______2 3 4 5 6 7

Palabra (4 Bytes)

Memoria Principal

A cceso A lin e a d o

IIIHIHIIIIIH mi | A cce so N o A lin e a d o0 1 2 3 4 5 6 7

Doble Palabra (8 Bytes)

Fig u r a 1 .4

A lin e a c ió n d e a cce so s a m e m o r ia .

Estas restricciones d e alineam iento se deben a q u e las m em orias, físicamente, están diseñadas para hacer accesos alineados. Si un repertorio d e instrucciones perm ite hacer accesos no alineados, se debe recordar que estos suelen ser m uy lentos porque en realidad suponen varios accesos alineados a la m e­m oria.

P or ú ltim o, tam bién re lac ionada con el alineam iento , hay u n a ú ltim a decisión q u e se debe tom ar al d iseñ ar un reperto rio d e instrucciones. ¿Si los registros del p rocesador tienen u n d e te rm in ad o ta ­m año y se lee d e m em oria u n a in fo rm ació n con u n tam añ o m enor, cóm o se alinean los d a to s leídos d en tro del registro? Se debe especificar si en los b its m enos significativos o en los m ás significativos (figura 1.5).

A lm acenam iento en los b its más

s ignificativos del registro

A lm acenam iento en Registro de 64 b its de una palabra de 32 b its

Banco de Registros de 64 bits

[RO|R1

|R2|R3

|R4

R5

|R6

|R7

|R8|R9

A lm acenam iento en los bits m enos sign ifica tivos

del registro

Fig u r a 1 .5

Memoria Principal

No A lineado

A lin e a c ió n d e n tro d e lo s re g is tro s d e l p ro c e s a d o r.

Page 25: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

En c u a n to a lo s m o d o s d e d irecc ionam ien to so p o r ta d o s p o r el rep e rto rio , hay q u e dec id ir có m o se puede especificar la localización d e u n o p e ra n d o d en tro d e la s instrucciones.

L os m o d o s d e d irecc ionam ien to básicos son lo s siguientes:

• Inmediato. El operando se codifica dentro d e la instrucción (figura 1.6).• Registro. Se incluye en la instrucción d identificador del registro del procesador en el que está

alm acenado el operando (figura 1.7).• Directo o absoluto. Se incluye en la in strucdón la dirección d e m em oria en la que está alm acenado

d operando (figura 1.8).• Indirecto. Se incluye en la instrucción el identificador del registro del procesador en el q u e está

alm acenada la dirección d e m em oria en la q u e se encuentra el operando.• Indirecto con desplazamiento. Igual q u e d anterior, pero se incluye tam bién en la instrucción un

operando inm ediato denom inado desplazam iento q u e debe sum arse al contenido del registro para ob tener la dirección de m em oria en la que se encuentra el operando. En m uchos casos se considera que el m odo de direccionam iento indirecto es un caso particular d e éste, en d que el desplazam iento vale 0 (figura 1.9).

Fig u r a 1 .6

M o d o d e d ire c c io n a m ie n to in m e d ia to .

El conjunto de m odos soportado por el repertorio d e instrucciones, si es lo suficientemente rico, pue­de lograr que se realicen operadones com plejas con pocas instrucciones. Pero los m odos m uy com plejos pueden aum entar la com plejidad del hardw are e increm entar el CPI d e algunas instrucdones.

Prácticamente todos los repertorios R ISC induyen como mínimo los siguientes modos (y no suden incluir muchos más), que son los más naturales para la mayoría d e las instrucciones típicas en estos repertorios:

• D irecdonam iento inmediato. Principalm ente hay q u e tom ar d o s decisiones p ara d iseñar el reper­torio. L a prim era, si todas las instrucdones deben so porta r este m odo o basta con q u e lo haga un subconjunto de ellas. L a segunda, el rango d e valores que puede tom ar el operando inm ediato, ya que esto influye directam ente en la longitud d e las instrucciones.

• D irecdonam iento indirecto con desplazam iento. E ste m odo incluye al direccionam iento indi­recto, basta co n q u e el desplazam iento tom e el valor 0. La dedsión m ás im portan te consiste, de nuevo, en fijar el rango d e valores q u e puede tom ar el desplazam iento.

Page 26: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Fig u r a 1 .7

Banco Registros

JUÜUUJL RO_= |R1

n r\ Operando J R2- \ jTTG Tf R3

T F O T T |R4

>

M o d o d e d ire c d o n a m ie n to d e re g is tro .

M em oria Instrucciones

Instrucción

Fig u r a 1 .8

M o d o d e d ire c d o n a m ie n to d ire c to o a b s o lu to .

Page 27: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

MemoriaInstrucciones

splazam iento ID. Registro

M em oriaDatos

BancoRegistros

1 * IL U L L L iJ J .1 U .J J

Y

DirecciónOperando

: X D IT d“ O T T T J T k l'

Fig u r a 1 .9

M o d o d e d ire c c io n a m ie n to in d ire c to c o n d e s p la z a m ie n to .

1.1.3. Otras decisiones

Además d e definir todo lo relacionado co n d ónde se encuentran los operandos y cóm o especificar dónde se encuentran , existen o tras decisiones q u e tam bién afectan al diseño del repertorio d e instruccio­nes y del procesador:

• Tipo y tamaño de los operandos. Se debe decidir qué tipos de da to s se soportan (carácter, enteros, com a flotante, etc) y con qué tam años. N orm alm ente, al codificar las instrucciones, el código de operación indicará siempre cuáles son los tipos d e los operandos im plicados en la ejecución de esta instrucción. La o tra opción, que sería q u e cad a operando llevara una etiqueta en la ins­trucción q u e indicara cuál es su tipo, consum iría dem asiados b its y ha ría q u e las instrucciones ocuparan dem asiado espacio innecesariamente.

• Conjunto de operaciones soportadas. También hay que decidir qué tipo de operaciones van a realizar las instrucciones del repertorio. Com o se está estudiando el diseño d e un repertorio RISC, debe ser un conjunto reducido d e operaciones sencillas, norm alm ente aritmético-lógicas, d e acceso a m emo­ria, d e control d e flujo (saltos) y llam adas al sistema operativo. Además, dependiendo d e los tipos de datos soportados, se incluirán instrucciones capaces de operar con caracteres, com a flotante, etc.

• Tratamiento de las instrucciones de control de flujo. L as instrucciones d e salto suelen im plicar decisiones adicionales ya q u e se tra ta d e instrucciones algo m ás complejas, q u e pueden m odificar d flujo secuencial d e ejecución d e un código. Estas decisiones se pueden resum ir en las siguientes preguntas si se tienen en cuen ta las instrucdones de contro l de flujo m ás com unes:

— Saltos condicionales: ¿Cóm o se espedfica la cond idón? ¿Cóm o se especifica la dirección des­tino d e salto?

— Saltos incondicionales: ¿Cómo se especifica la dirección destino d e salto?

Page 28: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Existen d o s alternativas para la especificación del destino del salto:

— Direccionamiento relativo a l PC. C uando se conoce d destino del salto en tiempo d e com pila- d ó n , se puede expresar com o un desplazam iento respecto del con tado r d e program a. Com o norm alm ente los destinos de los saltos están cercanos al salto, se utilizan m uchos menos bits que a se tuviera q u e incluir den tro d e la instrucción la dirección com pleta de la instrucción destino. Y adem ás se perm ite independencia respecto d e la posición d e m em oria a i la que se cargue el program a (esto ah o rra tiem po en d lineado d e los program as). Lo q u e hay que decidir es cuán tos b its se dedican al cam po q u e espedfica el desplazam iento den tro d e las instrucciones.

— Direccionamiento indirecto con registro. Se utiliza en los casos en los q u e no se conoce d des­tino del salto en tiem po d e com pilación o si se conoce, d cam po d e desplazam iento se queda corto para inclu ir su valor dentro d e la instruedón . Simplemente se incluye en la instrucción d identificador d e u n registro q u e con tio ie la d irecd ó n destino d e salto.

En cuan to a la con d id ó n d e los saltos condicionales, siempre se basa a i u n a com paración y exis­ten tres opciones p ara es ta com paración:

— E valuar los códigos d e con d id ó n d e la ALU.— E valuar uno o varios registros.— Especificar la com paración en la prop ia instrucción.

Como la prim era alternativa es m uy inflexible y no siempre se pueden expresar las cond idones re­curriendo a los códigos de condición d e la ALU, y la ú ltim a alternativa, a pesar de su flexibilidad suele llevar a instrucciones dem asiado com plejas p a ra un repertorio RISC, la condición d e los saltos suele ir siempre referida a com paraciones q u e se realizan con uno o varios registros, d e m anera q u e en la instrue­d ó n sólo se to ig an que incluir uno o varios identificadores d e registro.

1.1.4. Codificación del repertorio de instrucciones

La codificadón b inaria d e las instrucciones afecta al tam año del código d e los program as y, sobre todo, a la im plem entadón del procesador, que debe decodificar las instrucciones m áquina d e la m anera m ás eficiaite q u e sea posible.

R ira escoger u n a codificadón adecuada se deben conocer las características del repertorio de instruc- dones, e influirán todos los factores estudiados hasta el m om ento: tipo d e alm acenam iento d e operandos, número d e registros, m odos d e direccionam iento soportados, tipos y tam años d e los operandos, etc.

Existen tres o p d o n es p ara hacer la codificadón del repertorio:

• Longitud variable. Se soporta cualquier número de operandos y cualquier com binación instruc- dón /m odo d e direcdonam iento . L os operandos llevan asociados unos especificadores o etiquetas de direccionam iento p a ra indicar d m odo d e cad a uno. P or lo tan to se añaden tan tos cam pos a las instrucciones com o sea necesario, añad io ido a estos cam pos los especificadores y etiquetas que perm itan in terpretarlos du ran te la decodificación a i el procesador.

• Longitud fija. El m odo d e d irecdonam io ito d e los operandos se especifica en el código d e ope­ración porque sólo se perm iten unas com binaciones determ inadas de operadones y modos. Los cam pos d e la instrucción son siempre los mismos, lo único que puede variar es su interpretación d ep o id io id o del tipo d e instrucción.

• Híbrida. Se perm iten sólo unos determ inados form atos de instrucción, que incluyen distin to nú­mero d e especificadores de m odo y d e operandos.

La codificadón d e longitud variable se suele utilizar cuando se soportan muchos tipos d e m odos de d irecdonam io ito y operadones, y d istin to núm ero d e operandos. Consigue los códigos d e m enor tam año

Page 29: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

ya q u e sólo se incluyen los cam pos d e instrucción q u e se necesitan, pero la decodificación hace q u e em ­peore su rendim iento. P or lo tan to es típica en arquitecturas d e tipo CISC.

La codificación de longitud fija se utiliza cuando se soportan pocos m odos d e direccionam iento y operaciones. Com o no se particulariza el tam año de las instrucciones a sus necesidades, a veces se q u e­dan cam pos en blanco o infrautilizados, y el código tiene u n tam año mayor del que podría tener. Pero se consigue un gran rendim iento en la decodificación, que es mucho m ás sencilla, po r lo que es la típica en arquitecturas RISC. Sin em bargo la h íbrida suele ser la m ás utilizada en este tipo de arquitecturas, ya que consigue com binar las ventajas d e los dos tipos d e codificación.

En cualquiera de los tres casos interesa q u e la longitud d e las instrucciones sea siempre u n número « itero d e bytes, porque así es m ucho m ás sencilla la decodificación en d procesador y el alm acenam iento a i la m em oria.

Instrucción t ip o I

OPCODE RS RT---------------------------------------------------7 1

INMEDIATO

L----- 6 b it------ 1— 5 b it— L - 5 b it—J ---------------------- 16 b it----------------------- J

Instrucción tip o R

OPCODE RS RT RD SHAMT FUNCT

*------6 b it------ ►— 5 b it— * *— 5 b it— *— 5 b it— *— 5 b it— ------6 b it ------J

Instrucción tip o J

OPCODE OFFSET SUMADO A L PC

.------6 b it------ .--------------------------------------- 26 b it---------------------------------------- J

F ig ura 1 .10

E je m p lo d e c o d if ic a c ió n h íb r id a : t ip o s d e in s tru c c ió n p a ra e l M IP S 64.

Repertorio de in stru cc io n e s del p ro cesad o r M IP S 6 4

El M IPS64 es una a rq u ite c tu ra basada en re g is tro s de p ro p ó s ito genera l t ip o ca rg a /a lm a cen a m ie n to (re g is ­tro -re g is tro ), con d ire c c io n e s de m e m o ria de 64 b its.

Este p ro ce sa d o r t ie n e un b a n co de re g is tro s de 32 re g is tro s de p ro p ó s ito genera l de 64 b its (R0,....R31). El re g is tro R0 s ie m p re a lm acena un 0 y n o se pu e de v a ria r su c o n te n id o así q u e en rea lidad es c o m o si só lo hub ie ra 31 re g is tro s . Tam bién t ie n e un b a n co de 32 re g is tro s para com a f lo ta n te (F0,....F31) q u e pueden a lm a ­cenar n ú m e ro s en p re c is ió n s im p le o dob le .

S o po rta t ip o s e n te ro s de 8 , 16, 32 y 64 b its y t ip o s en com a f lo ta n te de 32 y 64 b its . Tam bién p e rm ite t ra ­b a ja r co n n ú m e ro s en com a f lo ta n te de p re c is ió n s im p le e m p a q u e ta do s de do s en dos.

Los m o d o s de d ire c c io n a m ie n to q u e se so p o rta n son:

• In m e d ia to : Con un c a m p o para el o p e ra n d o de 16 b its d e n tro de la in s tru cc ió n .

C a s o p r á c t i c o 1 . 1 .

Page 30: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

• In d ire c to co n desp lazam ien to : Con un ca m p o para el d e sp lazam ien to de 16 b its . S i se p o n e un ce ro en este ca m p o te n e m o s el m o d o in d ire c to p u ro . Y si se escoge el re g is tro RO c o m o re g is tro base , este m o d o no s p e rm ite adem ás un d ire c c io n a m ie n to abso lu to .

A sí q u e en la p rá c tica es c o m o si tu v ié ra m o s c u a tro m o d o s de d ire c c io n a m ie n to d ife ren tes.C o m o só lo ha y do s t ip o s de d ire c c io n a m ie n to (en c u a n to al t ip o de in s tru c c ió n ), el m o d o se co d ifica ju n to

co n el op co de . Todas las in s tru c c io n e s son de 32 b its ( lo n g itu d f ija ) co n un o p c o d e de 6 b its.Se escoge una c o d ifica c ió n h íb rida en la q u e se in c lu ye n tre s fo rm a to s d ife re n te s de in s tru cc ió n ( f ig u ­

ra 1.10):

• T ip o I (Inm ed ia to ).• T ip o R (R egistro ).• T ip o J (Jum p).

Las in s tru c c io n e s de T ip o I c o d ifica n las s ig u ie n tes o p e ra c io n e s :

• Load /s to re

— RS (re g is tro fu e n te ): R e g is tro base para el acceso a m em o ria .— RT (re g is tro d e s tin o ): R e g is tro para lo s da tos.— Inm ed ia to : D esp lazam ien to para el c á lcu lo de la d ire cc ió n de m e m o ria a la q u e ha y q u e acceder.

• O p e ra c io n e s a ritm é tic o -ló g ic a s co n d ire c c io n a m ie n to in m e d ia to

— RS (re g is tro fu e n te ): R e g is tro q u e c o n tie n e el o p e ra n d o 1.— RT (re g is tro d e s tin o ): R e g is tro d e s tin o de la o p e rac ión .— Inm ed ia to : O p e ra n d o 2 (d ire c ta m e n te su va lo r).

• S a lto s c o n d ic io n a le s /in co n d ic io n a le s

— RS (re g is tro fu e n te ): R eg is tro de c o n d ic ió n (para la co m p a ra c ió n )/R e g is tro q u e c o n tie n e la d irecc ión d e s tin o de l salto.

— RT (re g is tro d e s tin o ): R e g is tro de c o n d ic ió n (para la c o m p a ra c ió n )/N o se utiliza .— Inm ed ia to : D esp lazam ien to re s p e c to de l PC/O.

En c u a n to a las in s tru cc io n e s de T ip o R, se u tilizan para c o d if ic a r las o p e ra c io n e s a r itm é tic o -ló g ic a s re g is ­tro -re g is tro :

— RS: R e g is tro q u e c o n tie n e el o p e ra n d o 1.— RT: R e g is tro q u e c o n tie n e el o p e ra n d o 2.— RD: R e g is tro destino .— S ham t (sh ift a m o u n t): Ind ica el d e sp lazam ien to en las in s tru cc io n e s sh ift.— Funct: J u n to co n el o p c o d e in d ica el t ip o de o p e ra c ió n q u e se debe realizar.

Por ú lt im o , las in s tru cc io n e s de T ip o J c o d ifica n las in s tru cc io n e s de sa lto in c o n d ic io n a l y de re to rn o de p ro c e d im ie n to q u e u tilizan d ire c c io n a m ie n to co n desp lazam ien to re la tiv o al PC (O ffse t de 26 b its ).

1.1.5. Mejoras y optimizaciones del repertorio de instrucciones

Casi todas las m ejoras de los repertorios d e instrucdones R ISC se aprovechan d e la extensibilidad que presentan estos repertorios y q u e ya se h a m encionado en este capítulo.

Por ello, a lo largo d d tiem po se han ido añadiendo instrucciones a estos repertorios q u e pueden m ejorar el rendim iento d e los procesadores d e propósito general en la ejecución d e aplicadones y códigos concretos: instrucciones que incorporan predicados y ahorran así b ifurcadones (esto se en tenderá m ejor al estud iar d capítulo 3), instrucciones que com binan d o s o m ás operaciones q u e suelen aparecer siempre agrupadas, etc.

El ejem plo típ ico d e e s ta s ex tensiones q u e m e jo ran la ejecución d e c ie rto tip o d e ap licaciones so n las « te n s io n e s m ultim ed ia . E n este tipo d e ap licación e s h ab itu a l rea liza r o p e ra d o n e s repe titivas so b re d ife ­

Page 31: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

rentes operandos q u e no llegan a los 32 bits de un típico tipo entero (un píxel son 8 bits, u n a m uestra de audio son 16 bits). Esto hace que se desaprovechen recursos du ran te su ejecución, p o r lo q u e se incorpo­ran al repertorio instrucciones capaces d e operar con vectores (instrucciones Single Instruction M últiple D ata o SIM D ) que agrupen en los registros típicos d e 64 bits, 8 operandos d e 8 bits, 4 operandos d e 16 bits o 2 operandos d e 32 bits.

R ira cad a tipo d e vector se suden incluir en esta extensiones instrucdones aritm ético-lógicas (sum a, resta, m ultiplicación, co m paradón , desplazam iento, and , o r y xor, típicam ente), d e acceso a m em oria (load y store) y d e em paquetam iento, reordenam iento y copia d e datos.

Estos repertorios surgieron para trabajar con vectores d e núm eros a lte ro s pero luego se h an realizado nuevas extensiones p a ra poder ag rupar tam bién operandos en com a flo tante en los registros d e 128 bits.

Algunos ejem plos d e extensiones m ultim edia en repertorios R ISC son las M IPS D igital M edia eX - tension (M D M X ) o las M ultim edia A ccderation eX tensions (M AX). Pero quizás las m ás conocidas sean las extensiones d e las arquitecturas x86, prim ero fueron las M M X , y después las diferentes versiones de las 3Dnow! y las SSE.

Mecanismo completo de ejecución de una instrucciónEste libro se cen tra en d estudio d e diferentes arquitecturas M IPS am plificadas con fines pedagó­

gicos (denom inadas nanoM IPS) para com prender el funcionam iento de los procesadores actuales y las técnicas de aum ento d e p restadones que pueden ayudar a m ejorar su rendim iento. Es ded r, se tom ará como punto d e p a rtid a un procesador R ISC cuyo diseño sirve d e referencia para la m ayor p a rte d e las arquitecturas actuales. L a com prensión del funrionam iento y de las técnicas de optim ización d e este pro ­cesador perm itirá com prender los mismos aspectos p ara otros procesadores. A lgunos ejem plos de proce­sadores trem endam ente parecidos al M IPS son el PowerPC de IBM , el SPARC d e Sun M icrosystems o el Digital A lpha. H ay que recordar que en el diseño de procesadores R ISC prácticam ente se h a llegado a un estándar, po r lo q u e las diferencias en tre unas arquitecturas y o tras suelen ser m uy pequeñas.

Ya se ha estudiado en el caso práctico 1.1 q u e el procesador M IPS64, al igual que la m ayor p a rte de los procesadores actuales, es u n a arquitectura registro-registro d e 3 operandos. E sto significa que el repertorio d e instrucciones está d iseñado para que los tres operandos q u e utiliza com o m áxim o cualquier instrucción (los dos fuente y uno destino), estén en registros dentro del procesador, ninguno puede estar ubicado en la memoria.

Sabiendo esto, se puede resum ir la ejecución de u n a instrucción com pleta a i un procesador d e este tipo en cinco etapas, cad a instrucción pasará por aquéllas q u e necesite p a ra com pletar su ejecución:

• Fetch (F). E n esta prim era e tap a se busca en la m em oria la instrucción que está alm acenada en la dirección q u e indica el co n tad o r d e program a (Program C ounter o PC ). N orm alm ente, ya se deja preparado el co n tad o r d e program a (sum ando o restando u n a can tidad fija que depende de la arqu itectura y del repertorio de instrucciones) p a ra buscar la siguioite instrucción.

• Decode (D). A continuación, se decodifica la instrucción separando sus diferentes cam pos. El código d e operación d e la instrucción indica qué tipo d e instrucción es, y por tan to , q u é tipo de operación se debe realizar a i la ru ta d e datos. Si es necesario, se leen 1 o 2 operandos d e los re­gistros del procesador.

• Execution (X). En esta e tap a se ejecuta la operación que indicaba el opcode, norm alm oite , utili­zando para ello algún tipo d e ALU o d e un idad funcional aritmético-lógica.

• Memory Access (M ). Si es necesario acceder a m o n o n a p a ra leer o escribir, el acceso se realiza a i es ta fase.

• Writeback (W). Por últim o, si es necesario volcar algún resultado a un registro, se realiza esta escritura.

(D

Page 32: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

M ecanism o co m p leto de e jecu c ió n de la s in stru cc io -nes del repertorio de l M IP S 6 4

V eam os a c o n tin u a c ió n las ta re a s q u e lo s d ife re n te s t ip o s de in s tru c c ió n de l M IPS64 rea lizan en cada una de las e tapas descritas para la e jecuc ión de in s tru c c ió n . Esta d iv is ió n de t ra b a jo c o rre s p o n d e co n su im p le - m en tac ión m o n o c ic lo .

Instrucciones de Tipo 1:• Load /s to re

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.Preparación de l PC para la s ig u ie n te in s tru cc ió n .

MI[[PCJ]

PC < - P C + 4 (p o rq u e las in s tru cc io n e s son de 32 b its , 4 bytes)

D D e co d ifica c ió n de la in s tru c c ió n . Lectura de l re g is tro RS y de l re g is tro RD si la in s tru cc ió n es un S to re . E xtensión de s ig n o para In m e d ia to (qu e es un e n te ro de 16 b its).

[RS]ex t(ln m e d ia to )Y si es un S to re : [RD]

X La A LU realiza la sum a de l c o n te n id o de l re g is tro base para el acceso a m e m o ria y el desp lazam ien to .

[RS] + e x t( ln m e d ia to )

M A cce so a la d ire cc ió n de m e m o ria q u e se ha o b te n id o en la e tapa an te rio r. S i es una in s tru c c ió n Load, para leer el c o n te n id o de esta p o s ic ió n . Si es una in s tru cc ió n de S to re , para e s c rib ir el c o n te n id o de l re g is tro RD en esta pos ic ió n .

Si es un Load:M D [[R S ] + e x t( ln m e d ia to )]

Si es un S to re :M D [[R S ] + e x t( ln m e d ia to ) ] < -[R D ]

W En el caso de las in s tru c c io n e s de Load, se e sc ribe lo q u e se ha le íd o de m e m o ria en el re g is tro RD.

Si es un Load:[RD]< - M D [[R S ]+ e x t( ln m e d ia to )]

• O p e ra c io n e s a ritm é tic o -ló g ic a s co n d ire c c io n a m ie n to in m e d ia to

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.P reparación de l PC para la s ig u ie n te in s tru cc ió n .

M I[[P C ]]

PC < - P C +4

D D e co d ifica c ió n de la in s tru c c ió n . Lectura de l re g is tro RS. E x tens ión de s ig n o para In m e d ia to (qu e es un e n te ro de 16 bits).

[RS]ex t(ln m e d ia to )

X La A LU realiza la ope ra c ió n q u e in d iq u e el o p c o d e de la in s tru cc ió n .

[RS] OP e x t(ln m e d ia to )

M —

W Se escribe el re s u lta d o de la o p e ra c ió n en el re g is tro RD.

[R D ]< - [RS] OP e x t(lnm ed ia to )]

• S a lto s c o n d ic io n a le s (c o n d ic ió n eva luada so b re el c o n te n id o de do s reg is tros)

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.P reparación de l PC para la s ig u ie n te in s tru cc ió n .

M I[[P C ]]

PC < - P C +4

D D ecod ificac ión de la in s tru c c ió n . Lectura de lo s reg is tro s RS y RD. E x tens ión de s ig n o para In m e d ia to (qu e es un e n te ro de 16 bits).

[RS][RD]ext( Inm e d ia to )

Page 33: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

X Se sum a al PC el In m e d ia to para o b te n e r la d ire cc ió n d e s tin o de l salto.A d e m á s se eva lúa la c o n d ic ió n de l sa lto so b re el co n te n id o de RS y RD.S i la eva luac ión de la c o n d ic ió n ha te n id o un re su lta d o p o s it iv o , se ca rga el PC co n el v a lo r o b te n id o para la d irecc ión d e s tin o de l salto.

[PC] + e x t( ln m e d ia to )

cond ([RS],[RD])

Si co n d = TRUE P C <-[PC ] + e x t( ln m e d ia to )

M —

W —

• S a lto s in co n d ic io n a le s (d ire c c io n a m ie n to in d ire c to co n reg is tro )

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.P reparación de l PC para la s ig u ie n te in s tru cc ió n .

M I[[P C ]]

PC < - P C +4

D D ecodificac ión de la instrucción. Lectura de l reg is tro RS. [RS]

X Se carga el PC con el va lo r que se ha le ído de l reg is tro RS.

P C <-[R S ]

M —

W —

Instrucciones de Tipo R:

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.P reparación de l PC para la s ig u ie n te in s tru cc ió n .

M I[[P C ]]

PC < - P C +4

D D ecod ificac ión de la in s tru c c ió n . Lectura de lo s reg is tro s RS y RT.

[RS][RT]

X La A LU realiza la o p e ra c ió n in d ica d a p o r la co m b in a c ió n de l o p c o d e de la in s tru cc ió n y de l c a m p o Funct.

[RS] OP [RT]

M —

W Se escribe el resu ltado de la operación en el reg is tro RD. [RD]< - [RS] OP [RT]

Instrucciones de Tipo J (saltos incondicionales con direccionamiento relativo al PC):

F Búsqueda de la in s tru c c ió n en la d ire cc ió n de la m e m o ria de in s tru cc io n e s q u e in d ica el PC.P reparación de l PC para la s ig u ie n te in s tru cc ió n .

M I[[P C ]]

PC < - P C +4

D D e co d ifica c ió n de la in s tru c c ió n . Lectura de l re g is tro RS. E x tens ión de s ig n o para O ffse t (qu e es un e n te ro de 16 b its ).

[RS]ext( O ffse t)

X Se sum a al PC el O ffse t para o b te n e r la d ire c c ió n de s tin o de l salto.Se ca rga el PC co n el va lo r o b te n id o para la d ire cc ió n d e s tin o de l salto.

[P C ]+ ex t(O ffse t)

P C < -[P C ]+ e x t(O ffse t)

Page 34: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Evaluación de prestaciones de un procesadorLa ecuación m ás general q u e perm ite cuantificar el rendim iento d e un procesador su d e denom inarse

ecuación de prestaciones y utiliza com o m étrica de rendim iento del procesador el tiem po q u e un código tarda en ejecutarse en él (tiem po de C PU ).

Si T es el periodo de rd o j d d procesador, C PI son los ciclos que en m edia ta rd a una instrucción en ejecutarse e I es el número de instrucdones ensam blador q u e com ponen el código, el tiem po que este código ta rd a en ejecutarse en el procesador es:

tcpu = 1' CPI' TO bservando esta ecuación d e prestadones, q u ed a claro q u e p a ra m ejorar d diseño d e u n procesador

siempre hay q u e in ten tar reducir uno de los tres factores d e los que depende el tiem po que ta rd a en eje­cutarse u n código.

El número d e instrucciones q u e com ponen el código depende casi exclusivamente del repertorio de instrucciones d d procesador y del com pilador, ya que en prácticam ente todos los casos el desarrollador p rogram ará en un lenguaje d e alto nivd y será el com pilador el que traduzca las instrucciones program a­das en C, Visual Basic o Java, por poner algunos ejemplos, al repertorio a bajo nivel del procesador.

Los antiguos repertorios C ISC conseguían u n m enor número d e instrucciones que los repertorios R ISC actuales, pero por o tro lado, al ser las instrucciones mucho m ás complejas, necesitaban m ás ciclos para ejecutarse y el CPI e ra bastan te mayor.

Si se fija d número de instrucciones, p o r ser u n factor q u e depende del repertorio d e instrucciones y d d com pilador, tan to d CPI com o d periodo d e reloj dependen d d diseño d e la arqu itectura del procesa­dor. Y d periodo de reloj (inversamente rdacionado con la frecuencia d e fundonam iento) tam bién guar­d a una relación m uy estrecha con la tecnología d e fabricadón del procesador. A lo largo d e este capítulo y d d capítulo 3, se estudiarán técnicas q u e perm iten red u d r tan to el CPI com o el periodo del procesador para m ejorar los tiem pos d e C PU d e los códigos. Pero p o r norm a general, cuando se consigue reducir uno de los d o s factores, suele ser a co sta d e increm entar el otro.

Antes d e continuar, sólo una ú ltim a ac la radón . El tiem po q u e un código ta rd a en ejecutarse en un procesador no suele coincidir hoy en d ía con lo q u e solemos denom inar tiempo d e ejecución o tiem po de respuesta. E ste tiem po es el q u e el usuario p e rd b e que transcurre desde q u e la aplicación se lanza hasta que devuelve resultados. Teniendo en cuenta q u e d sistem a operativo consum e tiem po en realizar sus tareas y q u e la m ayor parte d e los sistemas operativos actuales son m ultitarea, casi siempre se cum ple^re s p u e s ta ^ C P U ’

Como este capítulo se cen tra en la evaluación d e prestaciones d e u n procesador, desde el punto de vista d e su arquitectura, y sin tener en cuen ta al resto del sistem a o al sistem a operativo, el tiem po de procesador es el m ás adecuado p a ra cuantificar el rendim iento en nuestro caso.

Ejem plo 1 .2

Utilización de la ecuación de prestaciones del procesador.

U n p ro ce sa d o r q u e fu n c io n a a una frecu e n c ia de 2.1 GHz e jecuta un có d ig o co m p u e s to p o r 1200 in s tru c ­c io n e s ensam blador.

Se ha es tu d iad o el re p e rto r io de in s tru cc io n e s de este p ro ce sa d o r y se sabe q u e en m ed ia el 20% de las in s tru cc io n e s e jecu tadas son sa ltos , el 50% son in s tru cc io n e s a ritm é tic o -ló g ic a s y el 30% restan te son in s ­tru c c io n e s de acce so a m e m o ria . Los sa ltos ta rd a n 3 c ic lo s en e je cu ta rse , las in s tru cc io n e s a ritm é tic o -ló g ic a s ta rd a n 4 c ic lo s y las in s tru cc io n e s de acceso a m e m o ria ta rd a n 5 c ic los .

Con to d a esta in fo rm a c ió n p o d e m o s saber cu á n to t ie m p o ta rda en e jecu ta rse este có d ig o en el p ro ce sa ­d o r:

u n

Page 35: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

T = - = ----- = 0.48 nsf 2.1-109

C P / = \ f • CPI = 0 .2 -3 + 0 .5 -4 + 0 .3 -5 = 4.14- ^ in stru c c ió n in stru cc ión

t CP u = h C P I T = 1200 -4.1 -0.48 = 2361.6 ns

O tra ecuación m uy relacionada con la evaluación d e prestaciones del procesador es la que perm ite cal­cular el speedup (ganancia) conseguido al realizar una determ inada mejora en el diseño del procesador

^ _ t a n m e jo ra

te o n m e jo ra

O bviam ente si la m ejora lo es d e verdad, el speedup tendrá siempre un valor m ayor que 1 (se h a co n ­seguido gracias a la m ejora reducir el tiem po de C P U d e un determ inado código).

Los tiem pos con o sin m ejora pueden medirse directam ente, pero tam bién pueden calcularse con la ecuación d e prestaciones, por lo que:

s = ( I C P I T U meiora

[ I ’ C P I ’ ' T ) Co n m e jo ra

Diseño de procesadores secuencialesActualm ente el diseño d e procesadores sigue u n a m etodología prácticam ente universal g rad as al

estándar d e facto en el que se h an convertido las arquitecturas R ISC .En este diseño aem pre se pueden distinguir dos grandes m ódulos dentro del p rocesador la ru ta de

datos y la unidad d e control. N o se debe olvidar q u e el procesador no es m ás q u e un d rcu ito digital, po r lo que la ru ta d e d a to s es la parte com binadonal del procesador, encargada d e operar con d a to s y producir resultados. P or o tro lado, la unidad d e control es la responsable d d estado del procesador y de gestionar las operaciones q u e se realizan en la ru ta d e datos. Com o se verá en las próxim as secdones, puede ser un d rcu ito com binación al o secuencial.

Un procesador secuencial es aquel que hasta que no term ina d e ejecutar una instrucdón no com ienza a ejecutar la siguiente. Es decir, en d procesador sólo se encontrará una instrucdón ejecutándose cada vez.

Existen dos tipos d e procesadores secuenciales dependiendo del m étodo d e tem porización escogido d uran te su diseño:

• Procesador monociclo. C ada in strucdón debe com pletarse en u n único d c lo d e reloj.• Procesador multiciclo. C ada instrucción puede tardar m ás d e un d c lo en ejecutarse, tan tos com o

sea necesario.

Obviamente, en un procesador m onodclo el CPI es aem pre igual a 1. Pero d problema está en que la duración del ciclo d e reloj d d procesador vendrá fijada por la instrucdón que m ás tarde en ejecutarse, ya que le tiene que d a r tiempo a finalizar en un único ciclo d e reloj. P or el contrario, un procesador m ultidclo tendrá aem pre CPI mayor 1, pero el periodo d e reloj será m enor que en el caso d d procesador monociclo.

Norm alm ente, la ejecudón de u n a instrucción está dividida en e tapas (ya se h a estudiado una d ivi­sión habitual d d trabajo en la sección 1.2) y se fija d periodo de reloj para que cada una de estas etapas se com plete en un dc lo . P or lo tan to en el caso del procesador multiciclo es la duración de la e tap a m ás larga la q u e fija el periodo d e reloj.

e n

Page 36: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Supongam os q u e se diseña un procesador sim ilar al M IPS64, denom inado nanoM IPS, con u n re­pertorio de instrucciones m uy sencillo en el que sólo están presentes las siguientes instrucciones para números enteros:

• Acceso a m em oria: LW y SW (tipo I).• O peraciones aritmético-lógicas: A D D , SUB, A N D , O R y SLT (tipo R).• C ontrol de flujo: BEQ (tipo I).

Este repertorio tan sencillo sólo perm ite la ejecución de tareas tam bién muy sencillas (tabla 1.1), pero es suficiente p ara com prender en profundidad el funcionam iento y diseño d e las ru tas d e datos y unidades de control p a ra la alternativa m onociclo y p ara la multiciclo.

Tabla 1.1V a lo res d e l o p c o d e y d e l c a m p o F u n c t p a ra las in s tru c c io n e s d e l re p e r to r io d e l n a n oM IP S .

Instrucción Pseudocódigo Opcode Funct

LW LW RT¡nm ed¡ato(R S ) 100011 —

SW SW R T,inm edia to(R S ) 101011 —

ADD A D D RD,RSfRT 000000 100000

SU B SUB RD,RS,RT 000000 100010

AND A N D RD,RS,RT 000000 100100

OR OR RD,RS,RT 000000 100101

SLT SLT RD(RS,RT 000000 101010

BEQ BEQ RS,R T,destino 000100 —

D i am bos casos se siguen los mismos pasos para realizar d diseño del procesador:

1. A nalizar el repertorio d e instrucciones q u e se va a ejecutar en el procesador.2. Establecer la m etodología d e tem porizadón (m onoriclo o multiciclo).3. Seleccionar el conjunto d e m ódulos q u e com ponen la ru ta d e datos teniendo en cuenta am bos

factores: el repertorio de instrucciones y la m etodología d e tem porizadón.4. Ensam blar la ru ta d e d a to s conectando los m ódulos escogidos e identificando los pun tos de

control.5. D eterm inar los valores de los pun tos d e control p a ra cada in strucdón del repertorio.6. D iseñar la unidad d e control.7. O ptim izar el diseño obtenido ajustándose a las especificadones d e área y coste, a la funcionali­

dad del procesador, a las lim itaciones d e calo r y potencia, etc.

Este capítulo se cen tra d e m om ento en los seis prim eros pasos d e esta m etodología, y en la optim i- zad ó n básica que se utiliza siempre en la actualidad, la segmentación del procesador, dejando el resto de técnicas de optim ización p a ra el capítu lo 3 d e este libro.

1.4.1. Procesad or mo nocido

Teniendo en cuen ta el repertorio de instrucciones que debe ejecutarse y la tem porizadón escogida para el procesador en este caso, la ru ta d e datos del nanoM IPS monociclo debe in d u ir los siguientes módulos:

• C on tador d e program a. Es d registro que alm acena la dirección de m em oria en la q u e se debe buscar la siguiente instrucción q u e se va a ejecutar en el procesador.

Page 37: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

• M em orias de instrucciones y d e datos. Estas d o s m em orias tienen que estar separadas porque una instrucción no puede acceder al m ismo recurso m ás d e u n a vez a la im plem entación es monociclo. D e m om ento se supone que son m em orias ideales en las que siempre se encuentra la inform ación que se busca y q u e su tiem po d e acceso es m enor q u e el tiempo de ciclo del procesador. Además, son direccionables p o r bytes pero capaces d e devolver 4 bytes en cad a acceso.

• Banco d e registros de datos visibles para d programador. Los 32 registros necesarios para alm acenar números enteros se agrupan en un banco d e registros porque en las instrucdones de tipo R es nece­sario acceder a dos registros simultáneamente. Este banco tiene por tan to dos salidas de datos d e 32 bits, una entrada de datos de 32 bits y tres entradas de 5 bits para la identificación de los registros.

• D os sum adores. El prim ero se utiliza para sum ar 4 (las instrucciones son d e 32 bits, es decir, en tre una instrucción y la siguiente siempre hay 4 bytes) al PC y dejarlo preparado p a ra la búsqueda de la siguiente instrucdón . El segundo se utiliza p a ra sum ar el desplazam iento relativo al P C en las instrucciones d e salto y dejar la A LU p a ra la evaluación d e la condición.

• U na A LU d e enteros capaz de realizar las operaciones incluidas en el repertorio de instrucciones. Para la com paración q u e se realiza en d salto condicional BEQ, basta con hacer una resta y ver a el resultado obtenido es igual a 0.

• U n extensor d e signo para extender el signo d e los operandos inmediatos, q u e son d e 16 bits.• U n desplazador a la izquierda de 2 posiciones. P ara recuperar los dos ceros al final del desplaza­

miento relativo d e los saltos. Com o las instrucciones siem pre son d e 32 bits, el desplazam iento siempre es un m últiplo d e 4. E sto significa q u e siempre term ina p o r 00 y que no es necesario m algastar d o s b its del cam po d e instrucdón que perm ite alm acenar d desplazam iento d e salto en alm acenar estos dos ceros. P or eso el desplazam iento se alm acena sin ellos a i la instrucción (por lo que pueden llegar a alm acenarse desplazam ientos d e hasta 2 ,8- l a pesar de tener sólo 16 bits) y luego se recuperan an tes d e sum arlo co n el PC con este desplazador a la izquierda.

Se puede observar en la figura 1.11 q u e no es necesario incluir u n hardware específico para la decodi­ficación d e instrucdones ya que al tra tarse d e un repertorio tan sencillo con u n a codificación d e longitud fija (aunque sea híbrida), basta con separar los diferentes cam pos de la in strucdón y utilizar su contenido directam ente.

F ig u r a 1.11

R u ta de d a to s d e l n a n o M IP S m o n o c ic lo .

Page 38: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 1 .3

Cálculo de la frecuencia máxima de funcionamiento de un procesador nanoMIPS m onociclo.

Con la ru ta de d a tos de l nanoM IP S m o n o c ic lo d iseñada y las s igu ien tes la tenc ias para lo s m ó d u lo s h a rd ­w a re q u e la c o m p o n e n , p o d e m o s ca lcu la r la frecu e n c ia m áx im a de fu n c io n a m ie n to de l p ro ce sa d o r te n ie n d o en cuen ta q u e el p e r io d o de re lo j estará lim ita d o p o r la in s tru c c ió n q u e m ás ta rd e en e jecu ta rse :

• Lec tu ra de la m e m o ria de in s tru cc io n e s : 0.3 ns• Lec tu ra de la m e m o ria de d a tos : 0 .35 ns• Escritu ra en la m e m o ria de d a tos : 0 .5 ns• Lec tu ra y e scritu ra en el b a n co de re g is tro s (do s p u e rto s de le c tu ra y u n o de escritu ra ): 0 .05 ns• O pe rac ión a ritm é tic o -ló g ic a co n la A LU : 0 .25 ns• S um a para p re p a ra r el PC s ig u ie n te : 0.1 ns• S um a de l PC y el d e sp lazam ien to de l sa lto : 0.1 ns

Con es to s d a tos p o d e m o s ca lcu la r la d u ra c ió n de cada una de las in s tru cc io n e s , va m o s a su p o n e r q u e no se u tilizan m ó d u lo s de la ru ta de d a tos en pa ra le lo :

• Load: la tencia = le c tu ra de la m e m o ria de in s tru cc io n e s + sum a para p re p a ra r el PC s ig u ie n te + lec tu ra de l b a n co de re g is tro s + ope ra c ió n a ritm é tic o -ló g ic a co n la A LU + le c tu ra de la m e m o ria d e d a tos + e scritu ra en el b a n co de re g is tro s = 0 .3 +0 .1 + 0 .0 5 + 0 .2 5 + 0 .3 5 + 0 .0 5 = 1 .1 ns

• S to re : la tenc ia = lec tu ra de la m e m o ria de in s tru cc io n e s + sum a para p re p a ra r el PC s ig u ie n te + lec tu ra de l b anco de re g is tro s + ope ra c ió n a ritm é tico -ló g ica co n la A L U + escritu ra en la m e m o ria de d a tos = 0 .3 +0 .1 + 0 .0 5 + 0 .2 5 + 0 .5 = 1 .2 ns

• A r itm é tic o - ló g ic a s : la tenc ia = lec tu ra de la m e m o ria de in s tru cc io n e s + sum a para p re p a ra r el PC s i­g u ie n te + lec tu ra de l b a n co de re g is tro s + ope ra c ió n a ritm é tic o -ló g ic a co n la A LU + e scritu ra en el b anco de re g is tro s = 0 .3 +0 .1 + 0 .0 5 + 0 .2 5 + 0 .0 5 = 0 .7 5 ns

• BEQ : la tenc ia = lec tu ra de la m e m o ria de in s tru cc io n e s + sum a para p re p a ra r el PC s ig u ie n te + lec tu ra de l b a n co de re g is tro s + ope ra c ió n a ritm é tic o -ló g ic a co n la ALU + sum a de l PC y el d e sp la zam ie n to del s a lto = 0 .3+0 .1 + 0 .0 5 + 0 .2 5 + 0 .1 = 0 .8 ns

Por lo ta n to , la ins tru cc ió n q u e lim ita el c ic lo de re lo j es el S tore , y c o m o su la tencia es de 1.2 ns, te n em o s :

7 \ = 1 .2 /> s -> f = ---------- = 0.8 GHz1.2. 10-9

En la figura 1.11 se h an señalado los puntos d e control identificados p a ra los m ódulos hardw are que se han incluido en la ru ta d e datos. Com o el control d e la ALU es algo m ás com plejo (dependerá del opcode d e la instrucción, pero tam bién del cam po F unct en las instrucciones d e tipo R ) , se introduce un hardware específico para realizar este control, un poco m ás adelante se analizará en detalle.

U na vez diseñada la ru ta de da to s e identificados los puntos d e control, es necesario determ inar los valores q u e deben tom ar estos pun tos p a ra cada instrucdón del repertorio (tablas 1.2 y 1.3).

Ta b l a 1.2

V a lo res p a ra lo s p u n to s d e c o n tro l d e l b a n c o de re g is tro s y la A L U en la ru ta d e d a to sd e l n a n o M IP S m o n o c ic lo .

Instrucción RegD st RegW rite A L U S re A LU O p

Load 0 1 1 00

Store — 0 1 00

Aritm ético-lógicas 1 1 0 10

BEQ — 0 0 01

Page 39: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Tabla 1.3V a lo re s p a ra lo s p u n to s d e c o n tro l d e m e m o r ia y d e l PC en la ru ta de d a to s d e l n a n o M IP S m o n o c ic lo .

Instrucción M em Read M emW rite P C Src M em toReg

Load 1 0 0 0

Store 0 1 0 —

A ritm ético-lógicas 0 0 0 1

BEQ 0 0 0/1(s e g ú n e v a lu a c ió n

de la c o n d ic ió n d e l sa lto )

R ira un diseño d e este tipo lo m ejor es utilizar d o s unidades d e control diferentes (figura 1.12). La prim era es la unidad d e control global, encargada de decodificar el cam po d e código d e operación y de configurar globalm ente la ru ta d e datos. Adem ás se añade un segundo control local para la ALU, que decodifica d cam po F unct a i las instrucciones d e tipo R y selecciona la operación concreta q u e debe realizar la ALU m ediante la señal ALU C ontrol. Así la unidad d e control global no tiene q u e diferenciar entre los d istin tos tipos de instrucciones (I y R en este caso) y se gana a i senállez y eficiencia.

E ste tipo d e e s tru c tu ra se d en o m in a en ocasiones d e decodificación m ultinivel ya q u e en el p ri­m er nivel la un idad d e con tro l global decodifica la instrucción leyendo su opcode y sólo si se tra ta

F ig ura 1 .12

[ R uta d e d a to s y u n id a d d e c o n tro l d e l n a n o M IP S m o n o c ic lo .

Page 40: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

F ig ura 1.13

D ise ñ o de la u n id a d de c o n tro l pa ra e l n a n o M IP S m o n o c ic lo m e d ia n te d e c o d ific a d o re s y p u e rta s lóg icas .

d e u n a instrucción d e tipo R , el con tro l local d e la A LU realiza u n a segunda decodificación leyendo p a ra ello el cam p o F u n c t d e la instrucción y averiguando la operac ión aritm ético-lóg ica q u e debe realizarse.

La un idad d e control global recibe com o en trad a el opcode d e la instrucción decodificada (los bits en ­tre el 31 y el 26 d e la instrucción q u e se h a leído d e la m em oria d e instrucciones). A p a rtir de este opcode genera los valores adecuados p a ra las diferentes señales d e control.

La única peculiaridad es q u e el valor de PCSrc no se genera directam ente, a n o que se genera u n a se­ñal B ranch q u e vale 1 cuando la instrucción es un salto. Por eso se incluye una puerta A N D en la ru ta de datos que genera la señal PCSrc en función d e esta señal y del resultado d e la evaluación de la condición (com paración d e igualdad) en la A LU m ediante u n a resta.

Se puede observar que en el caso d e la im plem entación m onociclo del procesador, la unidad d e co n ­trol es u n circuito com binación al m uy sencillo ya q u e se decodifica la instrucción, a p artir del opcode (y del cam po F unct en d caso d e las instrucciones d e tipo R) se generan las señales d e control q u e p e rm a­necen activas hasta q u e finaliza el ciclo y cuando llega u n a nueva subida del flanco d e reloj, al com enzar una nueva instrucción, se vuelve a com enzar el proceso.

E sta unidad d e control suele d iseñarse m ediante decodificadores y puertas O R , ya q u e si se tra ta de otro tipo de im plem entadón, añad ir u n a instrucción al repertorio puede obligar a m odificar todo el diseño d e la un idad d e control. Sin em bargo con los decodificadores, las modificaciones en el repertorio son casi inmediatas.

P or o tro lado la un idad d e contro l local d e la ALU recibe com o en trad as la señal A L U O p y el cam po F u n c t d e las instrucciones d e tipo R . Y genera la señal A L U C ontrol según la tabla 1.4. La im plem entación se puede ob tener con cualqu iera d e las m etodologías d e d iseño típ icas d e circuitos com binacionales.

Page 41: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Ta b l a 1 .4

V a lo re s p a ra e l p u n to d e c o n tro l d e la A L U en las in s tru c c io n e s d e t ip o R.

F u n c t O p e ra c ió n A L U C o n tro l

100000 A D D 0010

100010 SUB 0110

100100 A N D 0000

100101 OR 0001

101010 SLT 0111

1.4.2. Procesad or m u Iticiclo

Los diseños m onociclo no se em plean en la actualidad ya q u e no son lo suficientemente eficientes, al tener que adap tar la duración del ciclo d e reloj para que dé tiem po a que se ejecute la instrucción m ás lar­ga del repertorio. E sto es impensable si, p o r ejem plo, se quieren introducir instrucciones d e com a flotante en el repertorio, d e duración m ucho mayor q u e las de enteros.

Adem ás es casi im posible optim izar la ru ta d e datos, porque es siempre la instrucción m ás larga la que lim ita el rendim iento del procesador. Y la m ayor parte d e los recursos del procesador están desapro­vechados la m ayor parte del tiem po (figura 1.14).

R ira d iseñar la ru ta de d a to s multiciclo se utiliza u n a división d e trabajo com o la presentada en la sección 1.2 p a ra ejecutar u n a instrucción com pleta (típica de los procesadores con repertorios R ISC ), de m anera q u e cada u n a de ellas es tá relacionada con d hardw are d e la ru ta d e datos q u e se utiliza. C ada una d e estas e tapas debe com pletarse a i u n ciclo de reloj, po r lo que se reduce significativamente el pe­riodo del procesador, aunque a cam bio, el CPI m edio será m ayor q u e 1. C ada instrucción ta rdará tan tos d c lo s en ejecutarse com o sea necesario.

Reloj

Tiempo de utilización de recursos HW ■ i

T ie m p o 13

R elo j J i r i r i - H r i r i r i r i _ l l i - J T - r i j - m r i -Tiempo de i

utilización de recursos HW *! ■ 1 1 m l i l i !

T ie m p o

F ig ura 1 .14

C o m p a ra c ió n d e la u t iliz a c ió n de re c u rs o s en e l n a n o M IP S m o n o c ic lo y e l m u lt ic ic lo .

Page 42: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Como u n a instrucción ta rd a m ás d e un ciclo en ejecutarse, la ru ta d e d a to s es m uy sim ilar a la del procesador monociclo, pero es necesario incluir registros interm edios que alm acenen los resultados tem ­porales q u e se van generando según la instrucción avanza en su ejecución (figura 1.15).

R uta d e d a to s d e l n a n o M IP S m u lt ic ic lo .

Con esta ru ta d e datos, cuando en el prim er ciclo de ejecución se busca la instrucción que se va a ejecutar en la m em oria (etapa F), se deja alm acenada en el registro d e instrucción IR . Así, cuando co ­mienza el segundo ciclo de ejecución, la instrucción se lee d e este registro para proceder a su codificación en la e tap a D. En esta misma e tap a se leen los operandos d e la instrucción, y se dejan alm acenados en los registros A y B p a ra q u e a i el siguiente ciclo d e ejecución, la A L U tenga disponibles en estos registros sus operandos fuente p a ra la e tap a X . Y así sucesivamente, sin estos registros interm edios no sería posible realizar la ejecución de u n a in s tru cd ó n en m ás d e u n ciclo d e reloj.

Observando los m ódulos hardw are q u e son necesarios en este caso p a ra d correcto funcionam iento de la ru ta d e datos, son prácticam ente los m ism os q u e en el caso d e la ru ta d e da to s monociclo. L as únicas diferencias es tán en la aparición d e estos registros interm edios (registro d e instrucción o IR , registro de datos d e m em oria o M D R , registros p a ra los operandos de la ALU A y B, y registro A L U O ut para los resultados de las operaciones) y en q u e aho ra ya no es necesario ningún sum ador o com parador extra, se puede utilizar siempre la ALU, ni tener dos m em orias separadas, basta con una. L a explicadón es muy sencilla, ya que, al ta rd a r la instrucción m ás d e u n ciclo en ejecutarse, un mismo recurso (la ALU o la memoria) puede utilizarse en diferentes e tapas d e la ejecudón d e la instrucción sin problemas.

Por ejemplo, en d caso d e u n a in stru cd ó n d e salto BEQ, la ALU se utiliza en tres ocasiones. La p ri­m era vez, com o en el resto d e instrucciones, para sum ar 4 al con tado r d e program a y tener preparado su valor p o r si se tiene que buscar la in strucdón siguiente. L a segunda vez, para calcular la d irecdón destino de salto, sum ando al con tado r d e program a el desplazam iento incluido com o inm ediato en la instrucción. Y la tercera vez, p a ra evaluar la condición d d salto com parando los dos registros indicados en la instruc­d ó n , d e m anera q u e se cargará en el P C un valor u otro (el que corresponde a la instrucdón siguiente o d q u e corresponde a la instrucción destino d e salto) dependiendo del resultado d e la evaluación d e la condición.

Page 43: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

D e igual m anera, u n a instrucción LW accede a la m em oria única en dos ocasiones, en la prim era como el resto d e instrucciones, para leer la instrucción y volcarla al registro IR . En la segunda p ara leer d da to de la m em oria y volcado al registro interm edio M D R antes d e escribirlo en el registro destino correspondiente.

Ejem plo 1 .4

Comparación de una versión monociclo del nanoMIPS con una versión m ulticiclo.

R eco rdem os q u e te n e m o s un e je m p lo de im p le m e n ta c ió n m o n o c ic lo de l nanoM IP S q u e fu n c io n a a una frecuenc ia m á x im a de 0 .8 GHz (en este caso la lim ita c ió n a la frecu e n c ia de re lo j la im p on ía n las in s tru cc io n e s de S to re , q u e neces itaban 1.2 ns para com p le ta rse ).

S i c o n v e rtim o s esta im p le m e n ta c ió n en m u ltic ic lo , te n e m o s las s igu ien tes la tenc ias para lo s co m p o n e n te s h a rd w a re de la ru ta de d a tos :

• Lec tu ra de la m e m o ria : 0 .3 ns.• Escritu ra en la m e m o ria : 0.45 ns• Lec tu ra y e scritu ra en el b a n co de re g is tro s : 0 .05 ns• O pe rac ión a ritm é tic o -ló g ic a co n la A LU : 0 .25 ns• S um a para p re p a ra r el PC s ig u ie n te : 0.1 ns

Esto s ig n ifica q u e el p e rio d o de re lo j, lim ita d o p o r la e tapa m ás len ta , ve n d ría d e te rm in a d o p o r la e tapa M . N eces itam os T = 0 .4 5 ns para q u e esta etapa tenga t ie m p o de co m p le ta rs e en un c ic lo de re lo j. Por lo q u e en este ca so f =1/0.45-10-®= 2.2 GHz.n w x

Pero para c o m p a ra r las d o s ve rs iones de l p rocesador, m o n o c ic lo y m u ltic ic lo , n o p o d e m o s te n e r en cuenta só lo la frecu e n c ia m áx im a de fu n c io n a m ie n to (o el p e rio d o m ín im o ), ya q u e sabem os q u e lo s CPI son d is tin to s en a m b o s t ip o s de p rocesador.

Para la im p le m e n ta c ió n m o n o c ic lo te n e m o s CPI = 1, m ie n tra s q u e para la m u ltic ic lo , co n estas fre cu e n c ia s de a p a ric ió n de in s tru cc io n e s p o d e m o s ca lcu la r el CPI:

• Load : 20%• S to re : 10%• A r itm é tic o - ló g ic a s : 35%• BEQ : 35%

Cada u n o de estos t ip o s de in s tru cc io n e s a trav iesa las s ig u ie n tes etapas, cada una de e llas con d u ra c ió n de 1 c ic lo de re lo j:

• Load : F + D + X + M + W = 5 c ic lo s• S to re : F + D + X + M = 4 c ic lo s• A r itm é tic o - ló g ic a s : F + D + X + W = 4 c ic lo s• BEQ : F + D + X = 3 c ic lo s

Por lo ta n to el CPI en el caso de l p ro ce sa d o r m u lt ic ic lo es:

CPI = 0.20 • 5 + 0.10 • 4 + 0.35 • 4 + 0 .35 • 3 = 3.85

Por lo ta n to , c o m p a ra n d o las im p le m e n ta c io n e s de l nanoM IP S m o n o c ic lo y m u ltic ic lo co n el m is m o re p e r­to r io de in s tru cc io n e s :

s L . ( / • CPI ■ T 1-1.2 Q60U CPI T)m 3.85 0.45

O bse rvam os q u e el re n d im ie n to de l p ro ce sa d o r m o n o c ic lo es m e jo r q u e el de l p ro ce sa d o r m u ltic ic lo , p o r­q u e co n un p ro ce sa d o r ta n se n c illo pesa m ás el CPI = 1 q u e el h e ch o de fu n c io n a r co n un p e rio d o de re lo j tan le n to . Lo idea l sería q u e c o n s ig u ié ra m o s a p lica r a lguna té cn ica de op tim iza c ió n al p ro ce sa d o r m u lt ic ic lo que p e rm itie ra m a n te n e r el p e r io d o en 0.45 ns p e ro re b a ja n d o el CPI y a ce rcá n d o lo m ás a 1.

R eflexionando acerca d e lo q u e im plica q u e u n a in strucción p u e d a p a sa r m ás d e u n ciclo e jec u tán ­dose en el procesador, la p rincipal d iferenc ia c o n el p ro cesad o r m onociclo e s q u e a h o ra lo s valores d e los

Page 44: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

puntos de contro l ya no se pueden d a r com o u n a tabla de verdad, ya que no se m antienen constantes a lo largo d e toda la ejecución d e la instrucción.

Como se tra ta d e u n a im plem entación multiciclo, los valores de estas señales se van m odificando en los diferentes ciclos de reloj y dependerán d e la e tap a en la q u e se encuentre la instrucción.

El conjunto de señales que hay que generar está compuesto por IorD, MemRead, MemWrite, MemToReg, RegDst, RegWrite, ALUSrcA, ALUSrcB, ALUOp, PCSrc, PCW rite, PCW riteCond e IRWrite.

Las señales d e control para esta ru ta d e da to s son m uy similares a las d e la ru ta de d a to s d e la ver­sión monociclo. L as principales diferencias con la versión m onociclo son q u e en este caso hace fa lta una señal A LU SrcA y q u e ALUSrcB es u n a señal d e control d e 2 b its porque hay q u e escoger en tre cuatro alternativas en el m ultiplexor que selecciona la segunda en trad a d e la ALU. Adem ás es necesaria la señal IRW rite p a ra con tro lar la escritura del resultado de las lecturas d e m em oria en los registros IR o M D R (la señal equivalente M D RW rite no es m ás q u e IRW rite negada). El resto d e señales d e carga d e los registros interm edios no se han incluido en el diseño d e la unidad d e control porque son mucho m ás sencillas de gestionar, ya q u e no vuelve a ocurrir q u e a la salida d e u n m ódulo hardw are d e la ru ta d e datos se pueda volcar el resultado en dos registros diferentes.

D e nuevo la ru ta de datos del nanoM IPS incorpora dos unidades d e control diferentes, la unidad de control global (ahora algo m ás com pleja que la del procesador monociclo) y el control local d e la A LU (figura 1.16).

F ig ura 1 .16

R uta d e d a to s y u n id a d d e c o n tro l d e l n a n o M IP S m u lt ic ic lo .

La unidad d e control global se tra ta en este caso d e un circuito secuencial, ya q u e hay q u e tener en cuenta la sincronización d e todas las e tapas d e cada instrucción. Sigue recibiendo com o en trada el opeo- de d e la instrucción y se puede d iseñar com o u n a m áquina d e estados o m ediante m icroprogram ación.

Page 45: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

La unidad de control local d e la ALU no se modifica respecto del procesador monociclo, ya que sólo se encarga d e con tro lar el funcionam iento d e la ALU en el ciclo en d q u e ésta debe d e realizar la operación asociada a la instrucción.

R ira el diseño d e la unidad d e control global del nano M IPS com o m áquina de estados, se tienen en cuen ta ocho estados que se ejecutan en un m áxim o d e cinco ciclos o etapas. Los d o s prim eros ciclos, F y D, se corresponden co n las dos prim eras etapas d e la ejecución d e instrucciones y son estados d e la unidad de control q u e se ejecutan para todas las instrucciones por igual. A partir d e este punto, y con un repertorio ta n sendllo com o d del nanoM IPS, cada tipo d e instrucción evoluciona por unos estados d i­ferentes. Es decir, referencias a m em oria (load y store), aritm ético-lógicas (tipo R ) y saltos (BEQ), siguen cam inos diferentes (figura 1.17).

CICLO 5CICLO 1 CICLO 4CICLO 2 CICLO 3

F ig ura 1 .17

D ise ñ o d e la u n id a d d e c o n tro l p a ra e l n a n o M IP S m u lt ic ic lo c o m o m á q u in a d e e s ta d o s .

La u n idad d e contro l com o m áqu ina d e estados (tam bién llam ada en algunos casos cableada) presenta serios problem as cuando los repertorios d e in strucdones son m ás com plejos q u e el de l na- noM IPS. A dem ás, cuando se m odifica u n a única instrucción es necesario rediseñar to d a la u n idad de control.

fó ra solucionarlo se propone utilizar el con tro l m icroprogram ado, que no es m ás que u n a m em oria, norm alm ente una PLA o una ROM , que alm acena vectores con el valor de las señales d e control q u e se deben generar a i cada m om ento (figura 1.18). P ara ejecutar una instrucción del repertorio adecuada­mente basta con leer las sucesivas palabras d e esta m em oria en un orden determ inado. A cada palabra de la m em oria d e control se le llam a m icroinstrucción, y el conjunto ordenado d e m icroinstrucciones que perm iten ejecutar u n a instrucción del repertorio se llam a m icroprogram a.

Page 46: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

►*

0-*HPC

Tabla 1 Tabla 2

HlR

M em oria de m icroprogram a

4 OPCODE

Tablas de transferencia

F ig ura 1 .18

D ise ñ o d e la u n id a d d e c o n tro l m ic ro p ro g ra m a d a p a ra e l n a n o M IP S m u lt ic ic lo .

Este tipo d e unidad d e control es m ás flexible que la basada en m áquina de estados y ocupa m ucha menos área, pero presenta el inconveniente de su velocidad, ya que p o r norm a general se tra ta d e un i­dades d e control bastante m ás lentas q u e las cableadas. H ay que tener en cuen ta que para ejecutar una instrucción del repertorio del nanoM IPS es necesario recuperar 3 o 4 m icroinstrucciones d e la m em oria de m icroprogram a, alm acenarlas en el registro d e m icroinstrucción (jiIR ), dejar tiem po para q u e se esta ­bilicen las señales d e control generadas, etc.

En el ca so m á s sencillo, la u n id a d d e co n tro l m ic ro p ro g ram ad a d e l n a n o M IP S u tiliza codificación h o rizon ta l p a ra la s m icro instrucciones, e s decir, c a d a m ic ro in strucc ión in c o rp o ra d irec tam en te lo s valo ­res q u e d eb en to m a r la s s á la le s d e c o n tro l.

En el ca so d e a rq u ite c tu ra s M IP S m á s com plejas, se u tilizan m ic ro in stru cc io n es a l ta m e n te c o d i­ficadas p a ra e v ita r q u e é s ta s sean d e m a s ia d o largas. E s to o b lig a a rea liz a r u n p aso d e decod ificac ión p rev io a la ac tiv ac ió n d e la s señales d e c o n tro l , pero e v ita q u e la u n id a d d e c o n tro l o cu p e d e m a s ia d a área .

Si se utiliza es ta técnica d e diseño en el nanoM IPS se llega a u n a codificación vertical con 6 cam pos, cada uno d e ellos codifica un grupo d e señales d e control relacionadas en tre sí: control d e la ALU (ALU- Control), selección de los operandos 1 (SRC1) y 2 (SRC2), control del banco d e registros (RegisterControl), control de la m em oria (M emory) y control del con tado r d e program a (PCW riteControl). A estos cam pos se les añade la etiqueta d e la m icroinstrucción y la inform ación d e secuencia. El significado de estos cam ­pos y los posibles valores d e cad a uno d e ellos según los valores d e las señales d e control, se m uestran en la tabla 1.5.

Como se puede observar en la figura 1.19, co n cualquiera d e los d o s tipos d e codificación dentro de las m icroinstrucciones no sólo se encuentra inform ación acerca d e las señales d e control que deben activarse, sino tam bién acerca del secuenciamiento de las m icroinstrucciones (último cam po de 2 bits). En el caso d e la unidad d e control del nanoM IPS es un secuenciam iento explícito, por lo que en cada microinstrucción se alm acena inform ación acerca de la siguiente m icroinstrucción que se debe ejecutar.

Page 47: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

R ira com enzar a ejecutar u n a nueva instrucción en la ru ta d e datos, siempre se com ienza por la dirección 0 del m icroprogram a.

Ta b l a 1.5

C a m p o s d e la s m ic ro in s tru c c io n e s d e l n a n o M IP S (c o d if ic a c ió n d e m ic ro in s tru c c ió n v e rt ic a l) .

Campo Señalescodificadas

Valores de l cam po

Valores de las señales Explicación

A LU Control (2 bits)

A L U O p A d d

S u b

F un c t

A L U O p = 0 0

A L U O p = 0 1

A L U O p = 1 0

La A L U re a liz a u n a s u m a

La A L U rea liza u n a re s ta

La A L U re a liz a la o p e ra c ió n e s p e c if ic a d a p o r e l c a m p o

F un c t

SRC1 d bit)

A L U S rc A PCA

A L U S rc A = 0

A L U S rc A = 1

Se e s c o g e e n tre lo s do s v a lo re s p o s ib le s p a ra el o p e ra n d o A d e la A L U

SR C 2 (2 bits)

A L U S rc B B4

E x te n dE x te n d S h if t

A L U S rc B = 0 0 A L U S rc B = 0 1 A L U S rc B = 10 A L U S rc B = 1 1

Se e s c o g e e n tre lo s do s v a lo re s p o s ib le s p a ra el

o p e ra n d o B d e la A L U

Register Control (2 bits)

R egD stR e g W rite

M em T oR eg

R ead

W rite A L U

W rite M D R

R e g W rite = 0 , R e g W rite = 1 y

R e g D s t= 1

M e m to R e g = 0 y R e g W rite = 1

R e g D s t= 0 y M e m to R e g = 1

Se le e n lo s d o s re g is tro s y b s re s u lta d o s se g u a rd a n

en lo s re g is tro s A y B

Se e s c r ib e en un re g is tro el re s u lta d o o b te n id o p o r

la A L U

Se e s c r ib e en un re g is tro el v a lo r q u e sa le d e la

m e m o r ia a c c e d id a pa ra d a tos

M em ory (2 bits)

lo rDM e m R e a dM e m W rite

IR W rite

ReadPC

R eadA LU

W rite A L U

M e m R e a d = 1, lo r D = 0 y IR W rite = 1

M e m R e a d = 1 y lo r D = 1

M e m W rite = 1 y lo r D = 1

L e c tu ra d e in s tru c c ió n en m e m o r ia

L e c tu ra d e d a to s en m e m o r ia

E s c r itu ra d e d a to s en m e m o r ia

PCW rite Control (1 bit)

P C W riteP C W rite C o n d

PC S rc

A L U

A L U O u tC o n d

P C S rc = 0 y P C W rite = 1

P C S rc = 1 y P C W rite C o n d = 1

C a rga en e l PC d e P C + 4

C arga en e l PC d e la d ire c c ió n d e in s tru c c ió n

d e s a lto s i la c o n d ic ió n de sa lto se c u m p le

Page 48: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

O)<DCE.O Q.

O3

t í t í3 3

| .$ OOi O)© ©CE CE

i — H Inform ación ILabel de

1 Secuencia 1

L l b i t * L b J «-1 b i t - * *-1 b i t - * *-1 b i t - * b i t - J «-1 b i t - J * - 1 b i t - * ._ 1 b i t - 1 - 1 b i t - . «_1 b i t - ~ - 1 b i t - 1 - 1 b i t - * L 2 b it ►

Label I ALU SRC1 I SRC2 I Re9ister I M em ory PCWrite C ontrol I I | c o n tro l | | Control

In form aciónde

Secuencia

2 b it *l< 2 bit 2 b it 2 bit

F ig u r a 1 .19

2 bit 2 bit *U 2 bit

M ic ro in s tru c c ió n p a ra la u n id a d d e c o n tro l m ic ro p ro g ra m a d a d e l n a n o M IP S : d ife re n c ia s e n tre c o d if ic a c ió n d e m ic ro in s tru c c ió n h o r iz o n ta l y v e rt ic a l.

Existen cu a tro opciones p a ra ca rg a r el P C del m icroprogram a (jíPC ), es decir, p a ra escoger cuál es la siguiente m icro instrucción q u e debe e jecu tarse (p o r eso es necesario el m ultip lexor d e la figu­ra 1.18):

• La opción 0 es ejecutar la siguiente instrucción del m icroprogram a (sum ando 1 al jiPC). En este caso la inform ación d e secuencia d e la m icroinstrucción vale 00.

• La opción 1 traduce d opcode d e la instrucción m áquina para la que se están generando las se­ñales de contro l a una d irecd ó n d e m icroprogram a que perm ita escoger la b ifurcadón correcta según el tipo d e in strucdón d d q u e se trate: instrucción d e tipo A LU (tipo R), BEQ o acceso a memoria. E sta traducción se realiza en u n a tabla d e transferencia que alm acena estas bifurcacio­nes (la tabla 1 de la figura 1.18). L a inform ación d e secuencia vale 01.

• La o p d ó n 2, d e m anera similar, traduce d opcode d e la instrucción m áquina para la q u e se es­tán generando las señales d e control a una dirección de m icroprogram a que perm ita escoger la b ifurcadón correcta en el caso d e las instrucciones d e acceso a memoria: load o store (de nuevo se realiza la traducción en u n a tabla d e transferencia, en este caso la tabla 2 d e la figura 1.18). En este caso la inform ación d e secuencia d e la m icroinstrucción vale 10.

• Y la opción 3 es la que perm ite ir a la microinstrucción 0. En este últim o caso la in fo rm adón de secuencia vale 11.

Con toda esta inform ación, se puede program ar d m icrocódigo com pleto d d nanoM IPS (tabla 1.6) y d contenido d e las tablas d e transferenda, q u e norm alm ente tam bién se im plem entarán sobre m em orias PLA (tablas 1.7 y 1.8). Se puede observar que cad a m icroinstrucción d e la tabla 1.6 tiene u n a rdación directa con los estados de la m áquina de estados d e la figura 1.17, u tilizada p a ra im plem entar la un idad de control cableada.

Page 49: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

T a b l a 1.6

M ic ro c ó d ig o c o m p le to p a ra e l n a n o M IP S m u lt ic ic lo (c o n te n id o d e la m e m o r ia d e m ic ro p ro g ra m a c u a n d o se u tiliz a c o d if ic a c ió n v e r t ic a l d e m ic ro in s tru c c io n e s ) .

■ Label A LUControl SRC1 SR C 2 Register

Control M em ory PCW riteControl

Inform ación de Secuencia

0 Fetch A d d PC 4 ReadPC A L U 00

1 A d d PC E x te n dS h if t

Read 01

2 M e m A d d A E x te n d 10

3 LW R eadA LU 00

4 W riteM D R

11

5 S W W rite A L U 11

6 InstR F un c t A B 00

7 W rite A L U 11

8 BEQ S ub A B A L U O u tC o n d

11

Ta b l a 1.7

Tab la d e tra n s fe re n c ia 1 p a ra e l n a n o M IP S m u lt ic ic lo .

O PCO D E de la instrucción Tipo de instrucción Valor sim bólico (etiqueta de la siguiente m icroinstrucción)

000000 In s tru c c ió n A L U InstR

000100 In s tru c c ió n BEQ BEQ

100011 In s tru c c ió n LW M e m

101011 In s tru c c ió n S W M e m

Ta b l a 1.8

Tab la d e tra n s fe re n c ia 2 p a ra e l n a n o M IP S m u lt ic ic lo .

O PCO D E de la instrucción Tipo de instrucción Valor sim bólico (etiqueta de la siguiente m icroinstrucción)

100011 In s tru c c ió n LW LW

101011 In s tru c c ió n S W SW

1.4.3. Tratamiento de excepciones en procesadores secuenciales

H asta aho ra se han descrito los d isd io s del nanoM IPS monociclo y multiciclo suponiendo u n fun­cionam iento correcto del procesador en todo m om ento. Pero existen excepciones a este funcionam iento «norm al» q u e deben tra tarse adecuadam ente.

Page 50: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El tratam ien to d e excepciones implica, en casi todos los casos, transferir el control a otro program a que salve el estado del procesador cuando se produzca la excepción, co rrija la causa d e la excepción, restaure el estado del procesador y rep ita la ejecución d e la instrucción causante para con tinuar con la ejecución p o r el punto en el que estaba. Este program a suele denom inarse R utina d e Tratam iento de Excepción o RTE.

Existen varios tipos d e excepciones:

• Interrupciones d e E/S (se estud iará la gestión d e estas interrupciones en el capítulo 2).• L lam adas al Sistema Operativo.• Puntos d e rup tura .• Códigos d e operación inválidos.• Overflow o desbordam iento en la ALU.• Fallos d e página.• Accesos a m em oria no alineados.• Violación d e zonas d e m em oria protegidas.• Fallos del hardware.• Fallos d e alim entación.

D e m om ento se supondrá que en el nanoM IPS sólo pueden producirse d o s tipos d e excepción: có ­digos d e operación inválidos y overflow o desbordam iento d e la ALU. Para gestionar estas excepciones sólo es necesario añad ir algunos com ponentes hardw are en la ru ta d e datos, las nuevas señales de control necesarias p ara gobernar su funcionam iento y m odificar ligeram ente el diseño de las unidades de control para generar los valores adecuados p a ra estas señales.

En la ru ta d e datos es necesario incluir un registro Exception que alm acene el código del tipo d e ex­cepción q u e se h a producido p a ra q u e la R TE pueda leerlo y saber cuál h a sido la causa. D i el caso del nanoM IPS, la decodificación de un opcode inválido tiene el código 0 y d desbordam iento d e la ALU el código 1.

Además es necesario alm acenar el valor del con tado r d e p rogram a cuando se produce la excepción menos 4 (porque siempre se deja preparado para ejecutar la instrucción siguiente sum ándole 4) p a ra que al volver de la RTE se pueda volver a ejecutar la instrucción q u e h a provocado la excepción. Este valor se alm acena en el con tado r d e program a d e excepción o EPC. Y es necesario u n restador para poder realizar la resta d e 4 al co n tad o r d e program a.

Por últim o, se debe cargar en d con tado r d e program a el valor d e la d irecdón d e m em oria d onde com ienza la RTE.

Por lo tanto, las señales d e control re ladonadas con el tratam iento d e las d o s posibles excepdonesson:

• ALU_overflow e Ilegal_opcode, que se activan cuando se produce cualquiera de las d o s excepcio­nes posibles en el nanoM IPS.

• Exception, p a ra escribir el código d e las excepdones que se produzcan en el registro Exception.• ExceptionW rite y EPCW rite p a ra contro lar la escritu ra en los d o s nuevos registros.

Y si es necesario, PCW rite p a ra contro lar la carga del co n tad o r d e program a (esta señal sólo se utiliza en la im plem entación multiciclo del nanoM IPS).

La im plem entación d e la nueva unidad de control en el caso del nanoM IPS monociclo es casi inm e­diata, ya q u e sólo hay q u e añad ir estas nuevas señales al circuito com binadonal d iseñado co n decodifica- dores y puertas O R que suele utilizarse.

f t r o en d caso d e la unidad d e control para el nanoM IPS m ultidclo, es necesario m odificar la m á­quina d e estados co n la que se diseña la unidad d e control, o añ ad ir nuevos m icroprogram as a la un idad de control m icroprogram ada.

Page 51: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

CICLO 1 CICLO 2 CICLO 3 CICLO 4 CICLO 5

3 4

C.ccption T I

( m i T - . i - f c !tPCWnne 1PCWHtc 11 ;w .«rw *

l* g * _ o o < o íc 1 1

F ig ura 1 .20

D ise ñ o d e la u n id a d d e c o n tro l p a ra e l n a n o M IP S m u lt ic ic lo c o m o m á q u in a d e e s ta d o s c o n lo s d o s n u e v o s e s ta d o s p a ra e l tra ta m ie n to d e e x c e p c io n e s .

R ira com prender el caso de la unidad d e control multiciclo, en la figura 1.20 se m uestra la m áquina de estados con los d o s nuevos estados necesarios p a ra realizar el tratam iento d e excepciones. Al estado 9 se llega cuando al decodificar la instrucción se activa la señal Ilegal_opcode porque se detecta un código de operación q u e no es válido. Al estado 10 se llega cuando, tra s realizar u n a operación en la ALU, se com ­prueba que se h a producido u n desbordam iento (norm alm ente, com probando los registros d e control de la ALU) y se activa la señal ALU_overflow.

R ira incluir los nuevos m icroprogram as en la unidad de contro l m icroprogram ada bastaría con in ­cluir las nuevas bifurcaciones hacia estos estados en las tablas d e transferencia y las m icroinstrucdones que activen las nuevas señales d e control en la m em oria de m icroprogram a.

m Diseño de procesadores segmentadosComo se h a observado en el ejemplo 1.4, sería deseable encon trar la m anera d e tener un procesador

con un CPI=1 pero q u e perm itiera que el periodo d e reloj no estuviera lim itado p o r la instrucción m ás

Page 52: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

len ta d d rep e rto rio , a n o p o r la e ta p a m ás le n ta d e la e je c u d ó n d e in s tru c d o n es . Es d e d r , ten er u n a técn i­ca d e d iseño q u e p e rm ita c o m b in a r las m ejo res ca rac te rís ticas d e los d is d io s m onociclo y m uticiclo .

Esta técnica es la segm entación y se incorpora en prácticam ente tod o s los procesadores actuales, po r eso se ha incluido en este capítulo y no en d capítulo 3, porque aunque surgió com o una técnica d e au ­mento d e prestaciones p a ra el procesador, hoy en d ía es indispensable en todas las arquitecturas.

1.5.1. Conceptos básicos de segmentación

La segm entación es u n a técnica de im plem entación de procesadores que perm ite so lapar en el tiempo la ejecución d e varias instrucdones. Es la prim era técnica que se estud ia en este libro que perm ite aprove­char el paralelism o a nivel d e instrucción (ILP) dentro del procesador.

La idea en la que se basa esta técnica es la de u n a cadena de m ontaje, ya q u e a el trabajo que supone ejecutar una instrucción com pleta es tá dividido en diferentes etapas y a cad a u n a d e estas etapas le corres­ponden unos recursos hardw are diferentes dentro d e la ru ta d e datos d d procesador, con este concepto se consigue aprovechar m ucho m ejor todo el hardw are disponible en d procesador (figura 1.21). E jecutando una única instrucción cad a vez, com o ocurre en todos los procesadores secuenciales sean m onociclo o multiciclo, el hardware d e la ru ta d e da to s está desaprovechado la mayor p a rte del tiem po.

Instrucción 1■ »

BR ALU MD BR

Instrucción 2 MI BR MD

Instrucción 3 MI BR I ALU

Instrucción 4 MI BR

Instrucción 5 MI

F ig ura 1.21

C o n c e p to d e s e g m e n ta c ió n .

Siguiendo con la idea de una cadena d e m ontaje, el reto del d iseñador es equilibrar las e tapas en las que se divide u n a instrucción. D e esta m anera todas las etapas están listas p a ra em pezar al m ismo tiempo y no tienen q u e esperar unas p o r otras.

Si se parte del nanoM IPS multiciclo, para segm entarlo basta con com enzar la e jecudón d e u n a nueva instrucción cada ciclo. Hay q u e asegurarse d e que en cada e tap a las diferentes instrucciones están utili­zando diferentes recursos p a ra q u e no haya ningún conflicto:

• Se realizan accesos a m em oria en las e tapas F (búsqueda de instrucción) y M (lectura o escritura de da to s en las instrucciones d e carga y alm acenam iento).

Page 53: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

• Se realizan accesos al banco de registros en las e tapas D (lectura d e operandos) y W (escritura de resultados).

• El P C cam bia en F, cuando se deja preparado para buscar la siguiente instrucción, pero las ins­trucciones d e salto lo m odifican en M , después d e evaluar la condición y com probar que es ver­dadera.

P ira solucionar estos problem as se separan de nuevo las memorias de instrucciones y datos (como se hizo con la ru ta d e datos monociclo). Además, se realizan las escrituras en los registros en la prim era m itad del ciclo y las lecturas en la segunda m itad. Esta posibilidad d e hacer tu m o s existe con los registros porque d acceso a d io s es m uy rápido, con la memoria sin embargo no sería posible realizar dos accesos en un mis­mo ciclo y por eso es necesario separar la de instrucciones d e la d e datos. P or último se utiliza un multiplexor a i la e tapa F que se encarga d e controlar todas las m odificadones d d PC y se añade u n testador (bloque Zero?) en la e tapa d e X para poder realizar al mismo tiempo la sum a del desplazam iento al PC en la ALU y la com paración de los registros en el caso d e las instrucciones BEQ (evaluación de la condición del salto).

Adem ás d e ev itar conflictos en la utilización d e recursos, hay q u e asegurar q u e unas e tapas no inter­fieren con otras. P ara ello se utilizan los registros d e segm entarión, en los que se alm acenan los resultados de cada e tap a al final d d rielo d e rd o j y se utilizan com o en trada d e la e tap a siguiente al com enzar el siguiente ciclo de reloj (figura 1.22).

F ig ura 1 .22

R uta d e d a to s d e l n a n o M IP S s e g m e n ta d o .

Estos registros constituyen, fundam entalm ente, todo el hardw are necesario para evitar conflictos de recursos en tre las diferentes etapas y sustituyen a los registros interm edios que aparecían a i la ru ta de datos del procesador multiciclo. C ada uno tendrá u n a longitud diferoite , dependiendo d e la inform ación que tenga q u e alm acenar para que las instrucciones puedan avanzar por la ru ta de d a to s (la p rop ia ins­trucción, operandos y resultados, señales d e control, etc.).

Page 54: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En cuan to a la unidad d e control d d procesador segm entado, al decodificar la in strucdón en la e ta ­pa D , d opcode d e la instrucción (y d cam po F unct para las instrucdones R ) perm ite generar todas las señales d e control necesarias p ara la ejecución d e la instrucción. A lgunas d e estas señales se utilizan en la propia e tap a D , pero o tras serán necesarias p a ra la correcta ejecución d e la in stru cd ó n en las e tapas X, M y W. N orm alm ente la unidad de control se basa en u n a tabla d e reservas que tiene tan tas filas com o etapas tiene d procesador, y u n a colum na para cad a c id o de ejecución, d e m anera que al com enzar una nueva instrucción se pueda m arcar en e s ta tabla q u é etapas van a estar ocupadas en cad a ciclo.

Las señales d e control generadas se propagan ju n to con el resto d e valores p o r los registros d e seg- m en tadón hasta que lleguen a la e tapa adecuada (figura 1.23). Así q u e d e nuevo la unidad d e control es un circuito com binacional que genera las señales d e control necesarias p a ra cada tipo d e in stru cd ó n a partir del opcode. L a diferencia con el procesador monociclo es que en este caso hay q u e dim ensionar adecuadam ente los registros d e segm entadón, d e m anera q u e tengan espacio p a ra alm acenar las señales de control en cada e tapa. Para la e tapa X son necesarias las señales ALUSrcA, ALUSrcB (de dos bits), ALUOp (de nuevo de 2 bits) y RegD st. Para la e tap a M , son necesarias las señales Branch, M em Read y MemWrite. Y por últim o, p a ra la e tap a W se necesitan los valores d e las señales M emToReg y RegWrite. En to tal son necesarias nueve señales para con tro lar esta ru ta d e datos segm entada, sólo u n a m ás q u e en d caso d e la ru ta d e da to s monociclo.

F ig ura 1 .23

R uta d e d a to s y u n id a d d e c o n tro l d e l n a n o M IP S s e g m e n ta d o .

¿Cómo se modifica el rendim iento d d procesador m ulticido cuando se convierte en segm entado? En prim er lugar, su productividad (número de instrucciones q u e se term inan por segundo) aum enta, ya que idealm ente se term ina u n a nueva instrucdón p o r d c lo . Sin em bargo el tiem po q u e una única instrucción tarda en ejecutarse (denom inado latencia d e instrucción) aum enta ligeram ente debido al hardw are extra que se introduce en la ru ta d e datos p a ra segm entarla.

Page 55: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Teniendo en cuen ta los aspectos que influyen directam ente en d tiem po d e C PU según la ecuación de prestaciones:

• El CPI ideal d e un procesador segmentado debe ser 1, d e m anera q u e se finaliza u n a nueva ins­tru cd ó n cad a ciclo y en m edia, es com o si cada instrucción sólo necesitara 1 ciclo para ejecutarse. Es decir, se consigue el CPI d e un procesador secuencial monociclo.

• El periodo d e rd o j viene lim itado p o r la e tapa m ás lenta, a la que tiene q u e d a r tiempo a term inar en un rielo. Es derir, se consigue el periodo d e un procesador secuencial multiciclo. E n realidad ligeram ente peor, debido al nuevo hardware q u e aparece en la ru ta d e da to s para que ésta funcio­ne d e m anera segm entada.

En el caso del nanoM IPS, al calcular el speedup obtenido gracias a la segmentación d d procesador multiciclo, obtenemos:

C ¿mullírtelo * C P I ' T)mullírtelo 5 , ,S = - = = - = 5 = numero de etapas

ls e g m e n ta d o I 1 ) f t g m e n ia d o *

El número d e instrucciones es el mismo en am bos casos ya que el repertorio d e instrucciones no se modifica. Por lo demás, se tra ta d e u n a aproxim ación, ya que se está suponiendo q u e d CPI en d m ultici­clo es prácticam ente 5 (puede ser algo m enor dependiendo d e la proporción d e cada tipo d e instrucción, pero 5 es la co ta segura) y que el periodo d e reloj em peora im perceptiblem ente al in troducir los registros de segm entación en la ru ta d e datos. Tam bién se está despreciando el tiem po que la ru ta de d a to s ta rd a en estar trabajando al 100%, es decir, en tener ocupadas todas sus e tapas (lo q u e en m uchas ocasiones se denom ina tiem po o ciclos de llenado). Pero generalizando, el speedup máximo que puede conseguirse al segm entar un procesador multiciclo es igual al núm ero d e etapas en el q u e se segm enta la ru ta d e datos.

En principio, se podría p lan tear entonces aum entar en todo lo posible el número de etapas p a ra conseguir así la m áxim a ganancia respecto del procesador multiciclo. D e hecho existe un estilo de diseño denom inado supersegm entación o hipersegm entación que consiste en aum entar el número d e e tapas por encima d e 20, de m anera que se pueda reducir lo m ás posible la duración del periodo d e reloj, realizando muy poco trabajo en cada una de rilas (algunas pueden ser incluso etapas de transferencia d e inform ación entre la e tap a an terio r y la siguiente q u e no realizan ningún otro tipo d e trabajo útil).

Pero existe un límite en el número de e tapas d e segm entación que viene im puesto por la sobrecarga que introducen los registros d e segmentación y p o r la dificultad d e encon trar e tapas equilibradas en cu an ­to a la can tidad d e trabajo que realizan.

Ejem plo 1 .5

Comparación de una versión m ulticiclo del nanoMIPS con una versión segmentada.

R eco rdem os q u e para la im p le m e n ta c ió n m u ltic ic lo , te n ía m o s las s igu ien tes la tenc ias para lo s c o m p o n e n ­te s h a rd w a re de la ru ta d e d a tos (e je m p lo 1.4):

• Lec tu ra de la m e m o ria : 0 .3 ns• Escritu ra en la m e m o ria : 0.45 ns• Lec tu ra y e scritu ra en el b a n co de re g is tro s : 0 .05 ns• O pe rac ión a ritm é tic o -ló g ic a co n la A LU : 0 .25 ns• S um a para p re p a ra r el PC s ig u ie n te : 0.1 ns

Lo q u e im p lic a b a T = 0 .4 5 ns y co n estas fre cu e n c ia s de in s tru c c ió n un CPI de 4.55.

S u p o n g a m o s ahora q u e para se g m e n ta r este p ro ce sa d o r u tiliza m o s re g is tro s de segm en tac ión co n un re ­ta rd o de 0.01 ns cada uno . E sto im p lica T = 0 .45 ns + 2-0.01 ns = 0.47 ns, ya q u e en un c ic lo de re lo j debe da r

Page 56: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

tie m p o a le e r lo s c o n te n id o s de l re g is tro de se g m en tac ión de en trada , a rea liza r la etapa m ás lenta de la ru ta de d a to s , y a e s c rib ir lo s resu lta d o s de la e tapa en el re g is tro de se g m e n ta c ió n de salida.

Por lo ta n to , el speedup q u e se o b tie n e al se gm en ta r el nanoM IP S m u ltitc ic lo es:

S = I - * » , l / C PI-T)„ a = 4.55 -0 .45 = 4 3 6

t„ímtnad0 ( / • CPI ■ T)Mgntnad> 1 • 0.47

Es decir, un v a lo r m u y p ró x im o al speedup te ó r ic o m á x im o de 5 q u e se debería o b te n e r al se g m e n ta r el p ro ce sa d o r de 5 etapas. N o se llega a este v a lo r m á x im o p o rq u e se ha c o n ta d o co n d a tos su fic ie n te s para ca lcu la r el CPI m e d io de l nanoM IP S m u lt ic ic lo y es a lg o in fe r io r a 5, y p o rq u e se ha c a lc u la d o el p e r io d o de la ve rs ión segm entada de m anera rea lis ta , te n ie n d o en cuenta el re ta rd o in tro d u c id o p o r las le c tu ras y escritu ra s en lo s re g is tro s de segm en tac ión .

H asta a h o ra se h a supuesto q u e segm entar el p rocesador se rá suficiente p a ra consegu ir q u e fi­nalice u n a nueva in strucc ión en cad a ciclo d e reloj y, g rac ias a ello, o b ten er un C PI=1 en tod o s los casos en lo s q u e el p rocesador es tá segm entado. Pero en realidad éste sería sólo el m ejor d e los casos, po rque existen c ie rtas situaciones den o m in ad as riesgos, q u e im piden p o r d iferen tes c ircunstancias qu e se finalice u n a nueva instrucción cad a ciclo, y p o r lo ta n to increm entan el C P I p o r encim a de este valor ideal d e 1.

1.5.2. Resolución de riesgos en procesadores segmentados

R ira poder solucionar los riesgos en un procesador segmentado prim ero hay q u e com prender los diferentes tipos d e riesgos q u e pueden aparecer. Se identifican tres tipos diferentes:

• R iesgos estructurales. Se p roducen cu an d o d o s o m ás instrucciones necesitan u tiliza r el m ism o recurso hardw are a l m ism o tiem po. E n la figu ra 1.24 se observa un caso típ ico del riesgo e s tru c tu ra l q u e se p ro d u c iría en el nan o M IP S si no se separaran las m em orias de in strucciones y d a to s , ya q u e d iferen tes instrucciones e s ta rían in ten tan d o acceder a l m ismo recurso hardw are al m ism o tiem po (to d as las in strucciones necesitan leer la instrucción de m em oria en la fase F y las d e load y s to re necesitan leer o escrib ir un d a to en m em oria en la fase M ).

Acceso s im ultáneo a m em oria si es unificada

LWR1, 100 (R2)

ADD R3, R4, R5

SUB R6, R7, R8

AND R9, R10, R1

F ig ura 1 .24

E je m p lo d e r ie s g o s e s tru c tu ra le s en e l n a n oM IP S .

Page 57: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

• Riesgos de datos. Se producen cuando dos o m ás instrucciones presentan dependencias d e datos entre sí que, si no se resuelven correctam ente, podrían llevar a la obtención d e resultados erróneos en la ejecución del código p o r realizar operaciones d e lectura y escritu ra en u n orden diferente al indicado por la secuencia de instrucciones. Existen tres tipos d e riesgos d e datos, según el tipo de dependencia q u e los provoque:

— R A W o R ead A fte r W rite (L ec tu ra d esp u és d e E scritu ra ).— W AR o W rite A fter Read (Escritura después d e Lectura).— WAW o W rite A fte r W rite (E scritu ra d esp u és d e E scritu ra ).

Las dependencias RAW son las reales, ya que las WAW y las WAR, aunque pueden provocar riesgos, se deben a la reutilización d e los registros visibles p a ra el program ador, pero no existe un flujo real d e inform ación en tre las instrucciones q u e provocan la dependencia.En el caso del nanoM IPS sólo pueden producirse riesgos RAW, ya que al pasar todas las instruc­ciones por d mismo número de etapas y term in aren orden, las dependencias WAR y WAW nunca provocan riesgos. En la figura 1.25 se observa u n ejemplo d e las distin tas dependendas y d e los riesgos q u e provocan. L a dependencia RAW en tre e l LW y d A D D sí que es un riesgo, y si no se resuelve (como ocurre en la figura), el resultado d e la ejecución sería erróneo, ya que uno d e los operandos d e la sum a no tiene el valor correcto. Pero las dependendas por R 3 (WAW) y por R5 (WAR), no suponen ningún riesgo ya que las lecturas y escrituras siempre quedarán en el orden adecuado.

Se lee de R1 an tes

LW R1,100(R2)

AD D R3,R1,R5

SUB R3,R5,R6

A N D R5,R8,R9

Las e sc ritu ra s en R3 s iem pre q u e d a n o rd e n a d a s (W en o rd e n )

F ig ura 1 .25

E je m p lo d e d e p e n d e n c ia s y r ie s g o s d e d a to s en e l n a n oM IP S .

• R iesgos de control. Se p ro d u cen cu an d o u n a instrucción q u e m odifica el valor de l P C to d a ­v ía n o lo h a hecho cu an d o se tiene q u e com enzar la ejecución d e la sigu ien te instrucción . En el caso del nanoM IP S , la in strucc ión q u e p rovoca este tipo d e riesgo es el B E Q , ya q u e hasta la fase M no c a rg a el valor adecuado p a ra el PC , y en los tre s ciclos q u e ta rd a en llegar a esta fase el p ro cesad o r no puede com enzar la e jecución d e n ing u n a instrucción (figu ra 1.26).

de q u e te n ga el v a lo r c o rre c to

Las le c tu ra s y las e sc ritu ra en R5 s ie m p re q u e da n

o rden a d a s (D a n tes q u e W )

Page 58: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

d DJ d ] O i -F D X M W

BEQ, R1, R2, e tiq ue ta

S ig u ien te o e tiq ue ta

F ig u ra 1 2 6

E je m p lo d e r ie s g o d e c o n tro l en e l n a n oM IP S .

Existe u n a técnica universal para resolver estos tres tipos d e riesgos, la introducción d e paradas en la ru ta d e datos (se m uestran ejem plos para los tres tipos d e riesgo a i las figuras 1.27, 1.28 y 1.29). Con esta técnica se asegura la obtención d e resultados correctos y se evitan los conflictos por recursos y por incertidum bres en cuanto al valor del PC. Es la unidad de control la encargada d e realizar la detección de riesgos en la e tap a D (con una lógica específica para esta tarea q u e evalúa estos riesgos cuando se decodifica la instrucción) y d e inhibir el avance d e las instrucciones p o r la ru ta d e datos hasta que estos queden resueltos.

T a b l a 1.9

P ena liza c io n e s d e b id a s a r ie s g o s d e d a to s en e l n a n o M IP S c u a n d o la in s tru c c ió n o r ig e n d e l d a to es u n a a r itm é t ic o - ló g ic a o un lo a d .

Aritm ético-lógica Load

T ip o d e in s tru c c ió n d e s t in o A r itm é t ic o - ló g ic a , lo a d , s to re , sa lto c o n d ic io n a l

A r itm é t ic o - ló g ic a , lo a d , s to re , sa lto c o n d ic io n a l

R e g is tro q u e p ro v o c a e l r ie s g o R e g is tro e n te ro R R e g is tro e n te ro R

E ta p a d e e s c r itu ra d e l re g is tro W W

E ta p a d e le c tu ra d e l re g is tro D D

N ú m e ro d e p a ra d a s 2 2

El problem a d e esta técnica es q u e los riesgos d e da to s y d e control son m uy comunes, y si se resuelven siempre m ediante la introducción d e paradas, el CPI del procesador se aleja m ucho del valor ideal d e 1 que se busca co n la segm entación (tabla 1.9).

Por d io se utilizan o tras técnicas, tan to hardw are com o software, q u e aunque aum entan ligeram ente la com plejidad del diseño del procesador y del com pilador, perm iten resolver los riesgos m anteniendo el CPI lo m ás cercano a 1 q u e sea posible.

1 c ic lo d e p a ra d a LW Ri.ioo(R2)

F ig ura 1 .27

E je m p lo d e re s o lu c ió n d e r ie s g o s e s tru c tu ra le s en e l n a n o M IP S c o n u n a ú n ic a m e m o r ia m e d ia n tep a ra d a s en la ru ta d e d a to s .

a memoria si es unificada

Page 59: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

F ^ * | M W 2 c ic los de parada

l I © Q /U 1I I _ w

F / J > < I F I D | X | m | w

Se escribe en R1 en la prim era F D X M W m itad del ciclo y se lee en la segunda

F ig ura 1 .28

L W @ 100 (R2)

ADD R3,(RJ¿ R4

SUB R3, R5, R6

AND R5, R8 , R9

E je m p lo de re s o lu c ió n d e r ie s g o s d e d a to s en e l n a n o M IP S m e d ia n te p a ra d a s en la ru ta d e d a to s .

F D X M W 3 c ic los de parada

fJ f J F ( d ( x | _ M jw

F ig ura 1 .29

BEQ R1, R2f etiqueta

Siguiente o etiqueta

E je m p lo d e re s o lu c ió n d e r ie s g o s d e c o n tro l en e l n a n o M IP S m e d ia n te p a ra d a s en la ru ta d e d a to s .

1 .5 .2 .1 . R e s o l u c i ó n d e r i e s g o s e s t r u c t u r a l e s

La resolución d e estos riesgos su d e ser la m ás send lla ya que basta con duplicar los recursos h a rd ­ware q u e provocan los conflictos, segm entarlos o realizar tu m o s p a ra acceder a d ios.

Son las soluciones que se han utilizado en el diseño del nano M IPS p a ra evitar los riesgos estruc tu ra ­les p o r la m em oria y p o r el banco d e registros, separando entre las m em orias d e instrucdones y d a to s y realizando tu m o s para leer y escribir en el banco de registros (las escrituras siempre se hacen en la prim e­ra m itad d e los d c lo s de reloj y las lecturas, en la segunda).

1 .5 .2 .2 . R e s o l u c i ó n d e r i e s g o s d e d a t o s

P ira resolver los riesgos d e da to s RAW q u e aparecen en el nanoM IPS existe u n a técnica hardw are y o tra software.

La técnica hardw are se denom ina adelantam iento o cortocircuito y consiste en p asar directam ente el resultado obtenido con u n a instrucción a las instrucdones que lo necesitan com o operando. Es decir, es­tas instrucciones no tienen que esperar a que la q u e produce d resultado lo escriba en el registro destino, an o q u e reciben su valor en cuanto está disponible.

Esta técnica puede m ejorar mucho el rendim iento d e un procesador segm entado y es fácil d e imple- mentar, ya que lo único que hay que hacer es identificar todos los posibles adelantam ientos necesarios para el repertorio q u e ejecuta d procesador y com unicar los registros d e segm entadón involucrados (la ru ta d e da to s m odificada para im plem entar el adelantam iento se m uestra en la figura 1.30). Pero no siem­pre se puede aplicar esta técnica evitando con ello que se produzcan paradas (tabla 1.10).

Si se estud ia en profundidad el caso del nanoM IPS tenem os las siguientes posibilidades para riesgos RAW (figura 1.31):

• LW seguido d e SW: El operando está disponible a la salida d e la e tap a M d e la instrucción LW y se necesita a la en trad a d e la e tap a M d e la instrucción SW.

Page 60: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

F ig ura 1 .30

R uta d e d a to s d e l n a n o M IP S c o n a d e la n ta m ie n to .

Ta b l a 1 .10

P e n a liza c io n e s d e b id a s a r ie s g o s d e d a to s en e l n a n o M IP S c u a n d o la in s tru c c ió n o r ig e n d e l d a to es u n a a r itm é t ic o - ló g ic a o un lo a d y se u tiliz a a d e la n ta m ie n to p a ra re s o lv e r lo s r ie s g o s d e d a to s .

A ritm ético-lógica Load Load

T ip o d e in s tru c c ió n d e s t in o

A r itm é t ic o - ló g ic a , lo a d , s to re , s a lto c o n d ic io n a l

A r itm é t ic o - ló g ic a , lo a d , s a lto c o n d ic io n a l

S to re

R e g is tro q u e p ro v o c a el r ie s g o

R e g is tro e n te ro R R e g is tro e n te ro R R e g is tro e n te ro R

E ta p a d e e s c r itu ra d e l re g is tro

W W W

E ta p a d e le c tu ra d e l re g is tro

D D D

A d e la n ta m ie n to d e s d e la s a lid a d e las e ta p a s

X o M M M

A d e la n ta m ie n to h a c ia la e n tra d a d e las e tapas

X o M X M

N ú m e ro d e p a ra d a s 0 1 0

Page 61: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

LW R l, 100(R2)

SW R l, 0(R10)

LW R l, 100(R2)

ADD R3, R l, R8

LW R1,100(R2)

BEQ R l, R3,etiqueta

ADD R l, R2, R3

SW R l, 0(R10)

ADD R l, R2, R3

SUB R8, R l, R6

ADD R l, R2, R3

BEQ R l, R7, e tiqueta

LW R1,0(R7)

LW RIO, 100(R1)

ADD R l, R2, R3

LW RIO, 100(R1)

F ig ura 1.31

T o d o s lo s r ie s g o s R A W p o s ib le s en e l n a n o M IP S y su re s o lu c ió n c o n a d e la n ta m ie n to .

• LW seguido d e aritm ético-lógica o d e BEQ: El operando está disponible a la salida de la e tap a M de la instrucción LW y se necesita a la en trad a de la e tap a X d e la instrucción aritm ético-lógica o BEQ.

• Aritm ético-lógica seguida d e S W: El operando está disponible a la salida d e la e tapa X de la ins­trucción aritm ético-lógica y se necesita a la en trad a d e la e tap a M d e la instrucción SW.

• Aritm ético-lógica seguida d e aritm ético-lógica o BEQ: El operando está disponible a la salida de la e tap a X d e la instrucción aritm ético-lógica y se necesita a la en trada d e la e tap a X d e la instrucción BEQ.

• LW seguido de acceso a m em oria: El operando está disponible a la salida de la e tap a M d e la instrucción LW y se necesita a la en trada de la e tap a X d e la instrucción de acceso a m em oria para calcular la dirección.

• Aritm ético-lógica seguida d e acceso a memoria: El operando está a la salida d e la e tap a X d e la instrucción aritm ético lógica y se necesita a la en trada d e la e tap a X de la instrucción d e acceso a m em oria para calcular la dirección.

Page 62: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 1 .6

Comparación de una versión del nanoMIPS segmentado sin adelantamiento y con adelantamiento.

S u p o n g a m o s q u e se desea e je cu ta r el s ig u ie n te c ó d ig o en el nanoM IP S :

1 LW R1,0(R0)2 LW R2,100(R0)3 ADD R3,R1,R24 SUB R4,R1,R25 AND R5,R3,R46 ADD R6,R1,R47 SW R6,200(R0)8 BEQ R6,R0,salto

Este es el d ia g ra m a de e jecuc ión sin a d e la n ta m ie n to (cada co lu m n a es un c ic lo de e jecuc ión ) y s in te n e r en cuenta de m o m e n to el r ie s g o de c o n tro l p ro v o c a d o p o r la in s tru c c ió n de sa lto :

Í2zoooDCE

53z

1 F D X M W

2 F D X M W

3 F D D D X M W

4 F F F D X M W

5 F D D D X M W

6 F F F D X M W

7 F D D X M W

8 F F F D X M W

O bse rvam os q u e en un c ó d ig o ta n se n c illo y co n tan pocas in s tru c c io n e s ya se o b tie n e una gran ganancia gracias al ade la n ta m ie n to , re d u c ie n d o las pa radas p o r rie sgo s de d a tos (som breadas p a rc ia lm e n te en g ris ) de 6 c ic lo s a 1.

Es d e c ir:

= c ic lo s 18t ío a d t la n n m l tn to . _/ O

ciclos 13K' rlanid»ttnnml»nn ~ . Q 1.0^3/ O

Por lo ta n to g racias al ade lan tam ien to se ha co n se g u id o un speedup de 1.38 en la e jecuc ión de este có d ig o .

Además siempre existe un tipo especial d e dependencia que puede provocar riesgos RAW. Se puede com prender con la siguiente secuencia de instrucciones:

SW R5.0ÍR10

Page 63: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Si se perm itiera que la instrucción de carga se ejecutara antes que la d e almacenamiento, por ejemplo, porque el valor d e R5 no estuviera todavía disponible para ejecutar la instrucción d e almacenamiento, p o ­dría ocurrir que al calcular la dirección d e acceso a m em oria de este almacenamiento coincidiera con la de la carga (0+{R10]=400+[R7]), y hubiera un riesgo RAW a través de la memoria no resuelto correctam ente.

Pero en d caso d d nanoM IPS segmentado que se ha diseñado hasta d momento, este riesgo no se produ­ce, ya que todas las instrucdones se comienzan y se term inan en orden, pasando todas d ía s por d m ismo nú­mero d e etapas, así que es seguro que la etapa M de la instrucdón de store se realiza antes que la e tapa M de la instrucdón de load, por lo que la dependenda de datos a través de la memoria no supone ningún riesgo.

A clarado esto, en d nanoM IPS, el origen d e un addan tam ien to siempre estará en d registro X /M o en el registro MAV y el destino de u n addan tam ien to siempre estará en el registro D /X o en el X/M . Siempre se procurará que el operando se adelante ju s to a la en trada d e la e tap a q u e lo necesita.

Las m odificadones que hay que realizar en la ru ta d e datos no son complicadas, la lógica d e a d d a n ­tamiento suele estar com puesta por nuevos multiplexores para contro lar las entradas d e las etapas que pueden necesitar un addantam iento, y unidades hardware sencillas q u e perm itan com unicar las salidas de las etapas que producen los resultados con las en tradas d e estos multiplexores. También es necesario un nuevo hardware de control q u e al decodificar la instrucdón en la e tap a D, detecte los addantam ientos y las paradas que van a ser necesarias para la ejecución d e la instrucción. Ya que se observa que en algunos casos d adelantam iento no es suficiente para evitar las paradas en la ru ta d e datos, es típico d ejemplo d e la com ­binación load y aritmético-lógica, que siempre obliga a realizar u n ciclo d e parada para resolver d riesgo.

En la figura 1.30 se m uestra una ru ta d e datos del nanoM IPS am plificada con las modificaciones nece­sarias para poder ad d an ta r operandos a la e tap a X: los dos nuevos multiplexores a la entrada de la e tapa y la unidad de adelantam iento en la propia e tapa X que controla estos multiplexores, adem ás d e la unidad de detección de addantam ientos y paradas que se incluye en la unidad d e control en la e tap a D y que no se apreda en la figura. El resto de la ru ta d e datos no se modifica, al igual que las señales d e control.

Las m ism as modificaciones se deberían realizar p ara adelan tar operandos a la e tap a M (a las instruc- d o n es d e store) o a cualquier o tra que según d repertorio d e instrucciones y el diseño d e la ru ta d e datos pudiera necesitar un adelantam iento (en la figura 1.31 se m uestran tod o s los adelantam ientos posibles).

La alternativa software p a ra la resolución d e riesgos d e datos es responsabilidad del com pilador, y en realidad no es u n a técnica q u e resuelva los riesgos sino que m ás bien los evita. Se tra ta d e reordenar d código, d e m anera que la reordenación no afecte a los resultados (para ello a veces es necesario el re­nom brado d e registros), y ev itar así las com binadones d e instrucciones q u e provocan paradas en la ru ta de da to s (ejemplo en la figura 1.32). La norm a general es separar lo m ás posible las instrucciones con dependencia RAW que generan el riesgo.

Page 64: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

I . 5 .2 .3 . R e s o l u c i ó n d e r i e s g o s d e c o n t r o l

D e nuevo existen d o s tipos d e técnicas p ara resolver estos riesgos, una hardw are y o tra software. A de­más, se puede m odificar ligeram ente la ru ta d e da to s del procesador, p a ra que, en el caso q u e no haya o tra solución adem ás d e la p arad a d e la ru ta d e datos, p o r lo m enos ésta sea lo m ás co rta posible.

Se h a m ostrado q u e al resolver un riesgo de control en d nanoM IPS m ediante paradas, son nece­sarios tres ciclos de espera hasta que la instrucción de salto BEQ carga el valor adecuado en el P C y se puede con tinuar con la ejecución.

Existe una sencilla modificación de la ru ta de da to s del nanoM IPS q u e puede reducir esta p a rad a a un único ciclo. La idea es sendlla: a d d a n ta r tan to com o sea posible la reso ludón d e los saltos. Com o es en la e tap a D en la que se decodifica la instrucción y se sabe q u e es un salto, en esta misma e tap a se añade d hardw are necesario p a ra evaluar la con d id ó n del salto (un restador, el m ódulo Zero?) y para calcular la d irecdón destino del salto (un sum ador). L a señal d e control Branch pasa a generarse directam ente p a ra ser utilizada a i la e tap a D, y la señal d e control ALUSrcA para la e tap a X ya no es necesaria. Adem ás, si se realiza esta modificación en la ru ta d e datos, aparece u n nuevo adelantam iento a la e tapa D (cuando hay un riesgo d e da to s RAW con uno d e los registros necesarios p a ra la evaluación d e la con d id ó n del salto), lo q u e exige añad ir el hardw are necesario p a ra realizar los adelantam ientos tam bién en esta e tapa 9 se utiliza esta técnica p a ra resolver los riesgos d e datos.

Con la ru ta d e da to s m odificada del nanoM IPS (figura 1.33), sólo es necesario un ciclo d e p arad a para resolver d riesgo de control.

F ig ura 1 .33

R uta d e d a to s d e l n a n o M IP S m o d if ic a d a p a ra q u e las p a ra d a s p o r r ie s g o d e c o n tro l sean d e un c ic lo en lu g a r d e tre s .

Page 65: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Aún con esta modificación, cada vez q u e se ejecuta una instrucción d e salto, d procesador tiene que parar un ciclo (figura 1.34), y las instrucdones d e salto son m uy frecuentes, po r lo q u e estas p a rad as em ­peoran significativamente el rendim iento d e la segm entación.

3 ciclos de parada Beqri.R2,etiqueta

M w Siguiente o etiqueta

i j d1 ciclo de parada

BEQ R l,R2,etiqueta

Siguiente o etiqueta

F ig ura 1 .34

C o m p a ra c ió n e n tre e l n a n o M IP S y e l n a n o M IP S m o d if ic a d o p a ra q u e las p a ra d a s p o r r ie s g o d e c o n tro l sean d e un c ic lo en lu g a r d e tre s .

La técnica hardw are q u e in ten ta evitar esta p arad a se basa en realizar u n a predicción para el salto. Las predicciones siempre consiguen una reducción d e la penalización por salto cuando aciertan. Las predicciones m ás sencillas son las estáticas, en las que el procesador está d isd iad o para predecir a i todos los casos q u e el salto se va a tom ar o q u e el salto no se va a tom ar. Es ded r, la predicción es siempre la misma p a ra cualquier salto.

Con la predicción d e salto no tom ado en el nanoM IP S se consigue q u e la penalización sea d e un rielo p a ra saltos tom ados y d e n ingún ciclo p a ra saltos q u e no se tom an (figura 1.35). M ientras se de- codifica y se hace efectivo el salto, se va buscando la siguiente instrucción. Si finalm ente el salto no se tom a y la predicción se h a acertado, se con tinúa norm alm ente y no se h a perdido ningún ciclo. Si por d con trario el salto se to m a y la predicción falla, se busca la instrucción destino y se h a perdido un ciclo haciendo un trabajo q u e no e ra necesario, pero q u e se hub iera perdido igualm ente si no se hubiera realizado la predicción.

Es decir, gracias a la predicción d e salto no tom ado sólo se tiene penalización p o r salto cuando los saltos se tom an (la predicción falla).

u ¿ I

BEQ R1, R2, etiqueta

Siguiente (PC+4)

ACIERTO 0 cic los de

penalización

" i * ■ “ ■

1 (

BEQ R1, R2, etiqueta

Siguiente (PC+4)

Salto

F ig ura 1 .35

FALLO Ic ic lo de

penalización

P re d ic c ió n d e s a lto n o to m a d o en e l n a n oM IP S .

Page 66: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

La im plem entación d e e sta técnica es sencilla, en la ru ta d e d a to s no hay que hacer prácticam ente ninguna modificación y la unidad d e control sólo tiene q u e añad ir la lógica necesaria p ara con tinuar con d cam ino d e salto no tom ado si la predicción ad erta , o p ara desechar la instrucción q u e se había buscado y com enzar el cam ino d e salto tom ado, buscando la instrucción destino d e salto, si la p red icdón falla. Obviamente, si no se incorporan en la ru ta d e d a to s m ecanism os para solucionarlo, no se debe dejar que las instrucciones predichas modifiquen el estado del procesador y/o la m em oria, es decir, se debe p a ra r su e jecudón antes d e q u e lleguen a las e tapas en las q u e se escribe en m em oria y en el banco d e registros, te ro a i d nanoM IPS esto no supone ningún problem a porque si el salto se resuelve du ran te la e tap a D , la instrucción predicha sólo realiza la e tap a F. In d u so si la ru ta d e datos no se modifica y d salto se resuelve en la e tap a M , la in stru cd ó n predicha que m ás avanza sólo llega a la e tap a X, p o r lo q u e no escribe en m em oria o en registros.

En la a rquitectura del nanoM IPS y en o tras similares no tiene sentido utilizar la predicción de salto tom ado porque supone una penalizadón d e un ciclo en todos los casos, independientem ente d e si se acierta la predicción o no. E sto se debe a que no se conoce la dirección destino d e salto hasta la e tap a D, por lo que no se puede buscar la instrucción que se predice q u e se va a ejecutar h asta q u e d salto no se resuelve realmente.

te ro en otros tipos d e arqu itecturas en las q u e se conozca la dirección destino d e salto antes d e co ­nocer si el salto se tom a o no, este tipo de p red icdón sí que puede m ejorar d rendim iento del procesador al igual q u e la d e salto no tom ado.

Ejem plo 1 .7

Predicción estática de salto en una arquitectura segmentada de 6 etapas.

S u p o n g a m o s q u e te n e m o s un p ro ce sa d o r se g m e n ta d o en 6 e tapas: F, D, IS , X , M y W. En este p ro ce sa d o r las in s tru cc io n e s de sa lto co n d ic io n a l ca lcu lan la d ire c c ió n d e s tin o de sa lto en la e tapa D y eva lúan la co n d ic ió n y c a rg a n el n u e v o PC en la etapa X . V am os a c o m p a ra r el re n d im ie n to de la p re d ic c ió n está tica de sa lto no to m a d o co n la de sa lto to m a d o .

En el caso de la p re d ic c ió n e s tá tica , si ésta es de sa lto n o to m a d o , s ie m p re se buscan las in s tru cc io n e s a co n tin u a c ió n de la de sa lto hasta q u e el sa lto se resue lve :

S a lto NT F D IS X M W

P C + 4 F D IS

PC+ 8 F D

P C +12 F '

Y c o m o es un sa lto n o to m a d o , c u a n d o se resue lve el sa lto ( in d icad o co n la f le ch a ve rtica l en el d ia g ra m a ), s im p le m e n te se con tinúa co n la e je cu c ió n de las in s tru cc io n e s q u e se habían b u sca do después de l salto.

En el caso de q u e sea un sa lto q u e se to m a :

S a lto T F D IS X M W

P C + 4 F O ts

PC+ 8 F e

P C +12 F

D e s tin o de sa lto F

Y la pena lizac ión es de 3 c ic lo s , la m ism a q u e se hub ie ra p ro d u c id o s in rea liza r la p re d ic c ió n co n m o tiv o del r ie s g o de co n tro l.

Page 67: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Si se hace p re d ic c ió n de sa lto to m a d o , te n e m o s q u e busca r s ie m p re a co n tin u a c ió n de la in s tru c c ió n de sa lto la in s tru c c ió n d e s tin o de sa lto y las s ig u ie n tes . Pero para c o m e n za r estas búsquedas, es nece sario c o n o ­cer la d ire cc ió n d e s tin o d e sa lto , q u e en este caso se ca lcu la en la e tapa D:

S a lto NT F D IS X M W

D e s tin o de sa lto — F &

D e s tin o + 4 F 1P C sa lto+ 4 F

S a lto T F D IS X M W

D e s tin o de sa lto — F D

D e s tin o + 4 F

D e s tin o + 8 ' 1

Es decir, ha y una penalizac ión de 3 c ic lo s en lo s sa ltos n o to m a d o s p o rq u e se fa lla la p re d ic c ió n y es c o m o si n o se hub ie ra hecho , y de 1 c ic lo en el caso de lo s sa ltos to m a d o s (a c ie rto de la p re d icc ió n ) p o rq u e se ta rda un c ic lo en te n e r d is p o n ib le la d ire cc ió n d e s tin o de sa lto para p o d e r h a ce r esta p re d icc ió n .

En resum en :

T ip o de p re d icc ió n Penalización en a c ie rto Penalización en fa llo

Salto n o to m a d o 0 3S alto to m a d o 1 3

S u p o n g a m o s q u e en m e d ia , co n lo s có d ig o s e je cu tad o s en este p ro ce sa d o r el 75% de lo s sa ltos se to m a n y el 25% de lo s sa ltos no . Entonces, para la p re d ic c ió n de sa lto n o to m a d o te n e m o s una pena lizac ión m ed ia p o r r ie s g o de c o n tro l de 0.75 • 3 = 2 .25 ciclos. Sin e m b a rg o , u tiliz a n d o la p re d ic c ió n de sa lto to m a d o la pena­lizac ión m ed ia es de 0.75 • 1 + 0.25 • 3 = 1.5 ciclos, p o r lo q u e se co n s ig u en m e jo re s resu lta d o s co n este t ip o de p re d ic c ió n a u n qu e haya 1 c ic lo de pena lizac ión en lo s ac ie rtos .

Existen otro tipo d e predicciones estáticas algo m ás sofisticadas, que en lugar d e realizar siempre la m ism a predicción, tienen en cuen ta características del salto para reducir la tasa d e fallos m ediante heurísticas. En m uchos d e estos casos la predicción ya no la realiza el hardw are exclusivamente sino que se involucra tam bién al com pilador. L as predicciones m ás utilizadas se basan en:

• H opcode d e la instrucción d e salto, ya que hay estudios q u e dem uestran q u e algunos tipos de saltos se tom an con m ás probabilidad q u e o tros (esto tiene q u e ver con d estilo d e program ación de los desabolladores y con el diseño d e los com piladores y cóm o traducen ciertas estructuras de alto nivel a lenguaje ensam blador).

• La cond idón de la instrucdón de salto (si un registro es igual a 0 o diferente d e 0, si dos registros son iguales o diferentes, etc), ya que hay estudios que dem uestran que algunas condiciones se cum ­plen en m uchas m ás ocasiones que o tras (por los mismos motivos m encionados para el opcode).

• La longitud y la dirección del desplazam iento del salto, ya q u e esto perm ite detec tar los saltos al final d e los bucles fácilmente. La norm a general suele ser que los saltos hacia atrás (los que están al final del bucle) se predicen com o tom ados, y los saltos hacia delante, se predicen com o no tom ados.

• La estructu ra del program a, p ropordonando un interfaz al com pilador para predecir los saltos basándose a i u n a com prensión a alto nivel de la estruc tu ra d e la ap licadón . U n ejem plo son las denom inadas heurísticas d e Ball y Larus, un conjunto d e nueve reglas que perm iten tener en

Page 68: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

cuenta los lenguajes d e program ación habituales y los com portam ientos m ás usuales d e las apli­caciones p ara q u e el com pilador pueda predecir con la inform ación d e alto nivel d e la estructu ra del program a si los saltos condicionales se van a to m ar o no.

En cuan to a la técnica software p a ra la resolución d e los riesgos d e control, d e nuevo es responsabili­dad del com pilador y se suele denom inar técnica d e salto re tardado o de relleno d e ranura.

Con esta técnica se evita la penalización p o r salto introduciendo justo a continuación de la instruc­ción d e salto, instrucciones que se van a ejecutar en cualquier caso. Es decir, la idea básica es conseguir que el procesador realice trabajo útil m ientras se resuelve el salto.

Se denom ina ranura a la penalización por salto, así que suponiendo que tenem os d nanoM IPS m odi­ficado p a ra resolver los saltos en la e tap a D , la ranura es d e 1 ciclo y es necesario que el com pilador bus­que una instrucción p a ra rellenarla. E sta instrucción no puede ser otro salto y puede ser u n a instrucción anterior a la d e salto, la in strucdón destino del salto o u n a instrucción del cam ino que se sigue cuando d salto no se tom a.

Si la ru ta de d a to s no se hubiera modificado, la ranura sería d e 3 ciclos y en este caso sería bastante más com plicado encon trar tres instrucdones independientes del salto que perm itieran realizar trabajo útil m ientras éste se resuelve.

En la figura 1.36 se m uestran las tres alternativas típicas p a ra rellenar la ranura de salto co n una instrucción en el nanoM IPS. Hay que tener en cuenta que la ranura siempre puede rellenarse con una instrucción anterior al salto y que no ta ig a dependencias con d . Sin em bargo, no siempre se puede relle­nar la ranura con la instrucción destino del salto o co n u n a instrucción del cam ino que se sigue cuando el salto no se tom a, porque a i este caso se está ejecutando en todos los casos una instrucción q u e no sionp re se ejecutaría, y esto podría llegar a m odificar los resultados d e la ejecución.

ADD R1, R2, R3 BEQ R7, R0f e tiqueta _in BEQ R7, RO, etiqueta

Ia DD R1, R2, R3 l

yBEQ R7, RO, etiqueta Ranura de 1 c ic lo

E tiqueta: A D D R1, R2, R3 SUB R4, R5, R6

BEQ R7, RO, etiqueta ADD R1, R2, R3

Etiqueta: SUB R4, R5, R6

F r iu r a 1 .36

Las tre s a lte rn a tiv a s p a ra e l s a lto re ta rd a d o s u p o n ie n d o ra n u ra d e un c ic lo .

Page 69: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

En algunos procesadores existe la posibilidad de anular la ejecución de la instrucción que está relle­nando la ranura si se observa, q u e con el cam ino que finalm ente ha tom ado el salto, esa instrucción no debería finalizar p a ra no llevar a resultados erróneos. Es decir, se puede p lantear hacer lo mismo q u e con las instrucciones predichas cuando la predicción d e salto ha fallado. Pero esta técnica implica un nuevo aum ento d e com plejidad en la unidad d e control d d procesador, a la que se debe inform ar d e qué instruc­d o n es van rd lenando la ran u ra (el salto retardado es u n a técnica m uy rd ac io n ad a con el com pilador), po r lo que no su d e utilizarse mucho.

Ejem plo 1 .8

Utilización de la técnica de salto retardado.

V am os a re lle na r la ranura de sa lto para el s ig u ie n te c ó d ig o co n to d a s las té cn ica s q u e sea p o s ib le , s u p o ­n ie n d o q u e el p ro ce sa d o r es un nanoM IP S co n a d e la n ta m ie n to y co n ranu ra de sa lto de 1 c ic lo ( lo s sa ltos se resue lven en la e tapa D)

1 A N D R6,R4,R5

2 LW R1,0(R10)

3 LW R2,100(R10)

4 BEQ R2,R0,salto

ranura de sa lto

5 SUB R8,R1,R2

6 A D D R2,R8,R2

7 sa lto : SUB R9,R11,R1

8 A D D R12,R9,R1

C om encem os p o r in te n ta r re lle na r la ranu ra de sa lto con la té cn ica q u e sabem os q u e se pu e de u tiliza r s iem pre , u tiliz a r una in s tru cc ió n a n te r io r al salto.

O b se rva n d o las in s tru cc io n e s q u e se e n cu en tra n an tes de l BEQ (tod a s e llas se e jecu tan in d e p e n d ie n te m e n ­te de si el sa lto se to m a o no ) se sue le co m e n za r p o r las q u e están in m e d ia ta m e n te a n tes de l sa lto :

• La in s tru c c ió n 3 n o pu e de m ove rse después de l sa lto ya q u e la co n d ic ió n de l sa lto d e pende de ella.• La in s tru cc ió n 2 pu e de m ove rse a la ranu ra de sa lto , p e ro si después el sa lto n o se to m a , es tam os c rea n ­

do un r ie s g o LW se g u id o de a r itm é tic o -ló g ic a , y a pesar de l a d e la n ta m ie n to es to su p o ne un c ic lo de parada . A s í q u e lo q u e ganaríam os p o r un la d o lo p e rd e ría m o s p o r o tro .

• La in s tru c c ió n 1 pu e de m o ve rse a la ranu ra de sa lto s in p ro b le m a s , el re s u lta d o de l c ó d ig o sería exacta ­m e n te el m ism o .

Por lo ta n to el c ó d ig o quedaría :

2 LW R1,0(R10)

3 LW R2,100(R10)

4 BEQ R2,R0,salto

1 AN D R6,R4,R5

5 SUB R8,R1,R2

6 AD D R2,R8,R2

7 sa lto : SUB R9,R11,R1

8 AD D R12,R9,R1

Page 70: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Y e v ita ría m o s de esta m anera p e rd e r un c ic lo p o r el r ie s g o de c o n tro l, la in s tru c c ió n A N D q u e re llena la ranura se e jecu ta s ie m pre co m p le ta pase lo q u e pase co n el salto.

A ho ra p o d e m o s in te n ta r re lle n a r la ranu ra con la in s tru c c ió n de s tin o de l sa lto (m arcada con la e tique ta "s a lto " en es te caso). Tendríam os:

1 AN D R6,R4,R5

2 LW R1,0(R10)

3 LW R2,100(R10)

4 BEQ R 2,R 0,sa lto+4

7 SUB R9,R11,R1

5 SUB R8,R1,R2

6 AD D R2,R8,R2

8 s a lto + 4 : A D D R12,R9,R1

O bse rvam os q u e en este caso h a y q u e m o d if ic a r lig e ra m e n te el có d ig o , ya q u e la e tiq u e ta de sa lto se tie n e q u e m o v e r a la s ig u ie n te in s tru c c ió n a la d e s tin o de sa lto (s u m a n d o 4 p o rq u e las in s tru c c io n e s de l nanoM IP S s ie m pre o cu p an 4 bytes). E sto es así p o rq u e la in s tru c c ió n d e s tin o de sa lto se e jecuta s ie m p re co m p le ta d u ­rante la ran u ra de salto.

En este caso pu e de u tiliza rse la té cn ica de in s tru c c ió n d e s tin o de sa lto p o rq u e :

• S i el sa lto se to m a , la in s tru c c ió n 7 ten ía q u e e jecu ta rse ig u a lm e n te .• S i el sa lto n o se to m a , se ha e je cu ta d o una resta co n la in s tru c c ió n 7 q u e n o debería ha b erse e je cu tad o

nunca. Pero lo q u e se ha m o d if ic a d o es el v a lo r de l re g is tro R9, q u e c o m o n o se u tiliza después en el có d ig o , n o t ie n e e fe c tos en lo s resu lta d o s o b ten id o s .

Por ú lt im o , v a m o s a in te n ta r u tiliza r una in s tru cc ió n de l c a m in o q u e se s ig u e c u a n d o el sa lto n o se to m a :

1 AN D R6,R4,R5

2 LW R1,0(R10)

3 LW R2,100(R10)

4 BEQ R2,R0,salto

5 SUB R8,R1,R2

6 AD D R2,R8,R2

7 sa lto : SUB R9,R11,R1

8 AD D R12,R9,R1

En este caso la in s tru cc ió n 5 re llena la ranura y se e jecuta co m p le ta m e n te en to d o s lo s casos, o cu rra lo que ocu rra co n el sa lto . P odem os hace r una re fle x ió n s im ila r a la q u e ha c íam o s en el caso a n te rio r:

• S i el sa lto n o se to m a , la in s tru c c ió n 5 ten ía q u e e jecu ta rse igu a lm e n te .• S i el sa lto se to m a , se ha e je cu tad o una resta con la in s tru c c ió n 5 q u e n o debería haberse e je cu tad o n u n ­

ca. Pero lo q u e se ha m o d if ic a d o es el va lo r de l re g is tro R8, q u e c o m o n o se u tiliza después en el có d ig o , n o t ie n e e fe c tos en lo s resu lta d o s ob ten idos .

Esta s itu a c ió n tan idea l n o sue le p ro d u c irs e m u y a m e n u d o . V eam os c o m o co n un c ó d ig o m u y s im ilar, re llena r la ra n u ra pu e de ser una ta rea m u c h o m ás co m p licad a .

1 AN D R1,R4,R5

2 LW R1,0(R 10)

3 LW R2,100(R10)

4 BEQ R2,R1,salto

Page 71: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

ranura de sa lto

sa lto :

SUB

AD D

SUB

AD D

R8,R1fR2

R2,R8,R9

R9(R8,R1

R12,R9,R1

In ic ia lm en te , d e b id o a las d e p endenc ias en tre in s tru cc io n e s , n in g u n a de la s tre s p o s ib ilid a d e s p e rm ite re ­lle n a r la ran u ra . H abría q u e e s tu d ia r p r im e ro si estas d e p endenc ias son rea les o só lo a tra v é s de lo s n o m b re s de lo s re g is tro s para ve r si co n un re n o m b ra d o sería p o s ib le ev ita rlas , p e ro ta l y c o m o está el có d ig o :

• N i las in s tru cc io n e s 1, 2 ó 3, an te rio re s al sa lto , p e rm ite n re lle na r la ranu ra de sa lto p o r las dependenc ias q u e ex is ten e n tre e llas o e n tre e llas y el salto.

• La in s tru c c ió n 5 n o pu e de re lle na r la ranura p o rq u e m o d ific a el c o n te n id o de l re g is tro R8, y si el sa lto se to m a , este re g is tro se u tiliza . La 6 ta m p o c o , ya q u e d e pende de l re s u lta d o de la 5 y n o pu e de e jecu ta rse an tes q u e ella.

• La in s tru cc ió n 7 n o pu e de re lle n a r la ranura p o rq u e m o d ific a el c o n te n id o de R9 y, si el sa lto n o se to m a , este re g is tro se u tiliza .

Lo h ab itua l es q u e n o s e n co n tre m o s s ituac iones in te rm ed ias , n o en lo s do s e x tre m o s m o s tra d o s en este e je m p lo , p e ro son este t ip o de co n s id e ra c io n e s las q u e el c o m p ila d o r y /o el d e sa rro lla d o r te n d rá n q u e rea lizar para u tiliza r esta té cn ica de res o lu c ió n de lo s r ie s g o s de co n tro l.

Ejem plo 1 .9

Ejecución de un código en el nanoMIPS con resolución de riesgos mediante paradas.

S upongam os, p o r co m o d id a d , q u e se añaden al re p e rto r io de l nanoM IP S la in s tru c c ió n A D D I para p o d e r rea lizar sum as co n o p e ra n d o s in m e d ia to s (e tiq u e ta d o s co n el m o d if ic a d o r # en el p se u do có d ig o ) y la in s tru c ­c ión de sa lto BNE. En esta a rq u ite c tu ra se e jecu ta el s ig u ie n te có d ig o :

1 ADD I R 10,R 0,#0

2 ADD I R 11,R 0,#4000

3 buc le : LW R1,A(R10)

4 BEQ R1,R0,salto

5 LW R2,B(R10)

6 AD D R3,R1,R2

7 SW R1,B(R10)

8 SW R3,A(R10)

9 salto: A D D I R 10,R 10,#4

10 BNE R10,R11,bu c le

D o n d e A y B son las d ire c c io n e s en las q u e se a lm acenan lo s e le m e n to s in ic ia le s d e lo s ve c to re s de en te ­ro s A y B con lo s q u e se está tra b a ja n d o . El 75% de lo s e le m e n to s de l v e c to r A son d ife re n te s de 0, co n esta in fo rm a c ió n p o d e m o s ca lcu la r el C P Ique se o b tie n e al e je cu ta r este c ó d ig o s in m ás h e rra m ien ta s para reso lve r lo s r ie sgo s q u e aparezcan q u e las pa radas. O bse rvam os p o r el v a lo r in ic ia l de R1 1 q u e el b u c le se re p ite 1000 veces.

V eam os lo s d ia g ram as de e jecuc ión cu a n do se salta en el p r im e r sa lto y c u a n d o n o se sa lta , es decir, se ­p a rem os lo s d is t in to s casos de e jecuc ión . S u p o n g a m o s q u e son ite ra c io n e s in te rm e d ia s de l b u c le , ya q u e la p rim e ra es d ife re n te co n la e jecuc ión de las in s tru cc io n e s 1 y 2, un r ie s g o de d a tos RAW q u e su rge e n tre las in s tru cc io n e s 1 y 3, y lo s c u a tro c ic lo s q u e ta rda en llen a rse la ru ta de d a tos co m p le ta m e n te .

Page 72: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Caso 1: Elemento de A igual a 0

3 F D X M W

4 F D D D X M W

9 — F D X M W

10 F D D D X M W

La ú ltim a in s tru c c ió n q u e se e jecu ta p u e d e ser la s ig u ie n te al sa lto o el d e s tin o de sa lto , p e ro de cu a lq u ie r fo rm a s ie m p re h a y una pa rada p o r r ie sg o de co n tro l.

Caso 2: Elemento de A distinto de 0

3 F D X M W

4 F D D D X M W

5 — F D X M W

6 F D D D X M W

7 F F F D X M W

8 F D D X M W

9 F F D X M W

10 F D D D X

Igual q u e en el caso an terio r, la ú ltim a in s tru cc ió n q u e se e jecu ta pu e de ser la s ig u ie n te al sa lto o el de s tin o de sa lto , p e ro de c u a lq u ie r fo rm a s ie m p re h a y una parada p o r r ie s g o de co n tro l.

Tenem os, para las ite ra c io n e s in te rm e d ia s de l buc le :

Caso 1 (Elemento de A igual a 0)• In s tru cc io n e s = 4• C ic los = 4 (un c ic lo p o r in s tru cc ió n ) + 0 pa radas p o r r ie s g o s e s tru c tu ra les + 4 pa radas p o r r ie sgo s de

d a tos + 2 pa radas p o r r ie sgo s de c o n tro l = 10

Caso 2 (Elemento de A distinto de 0)• In s tru cc io n e s = 8• C ic los = 8 (un c ic lo p o r in s tru cc ió n ) + 0 paradas p o r r ie sgo s e s tru c tu ra les + 7 paradas p o r r ie s g o s de

d a tos + 2 pa radas p o r r ie sgo s de c o n tro l = 17

Y para la e jecuc ión de las in s tru cc io n e s 1 y 2 en la p rim e ra ite rac ión , te n ie n d o en cuen ta lo s 4 c ic lo s q u e la ru ta de d a tos ta rd a en llena rse y el r ie sg o RAW e n tre las in s tru cc io n e s 1 y 3:

• In s tru cc io n e s = 2• C ic los = 2 (un c ic lo p o r in s tru cc ió n ) + 4 c ic lo s de lle n a d o + 0 pa radas p o r r ie sgo s e s tru c tu ra les + 1

parada p o r r ie sg o de d a tos + 0 pa radas p o r r ie s g o s de c o n tro l = 7

C om o sabem os el n ú m e ro de veces q u e te n e m o s cada caso (0.25-1000 = 250 ite ra c io n e s son el caso 1, 0.75 • 1000 = 750 ite ra c io n e s son el caso 2:

CPI =ciclos

CPI

in stru ccio n es

c ic los ex tra s 1a iteración + 250 - ciclos ca so 1+ 75 0 • c ic los caso 2

in stru ccio n es extras 1a iteración + 250 • in stru cc io n es caso 1 + 75 0 • in stru cc io n es caso 2

7 + 2 5 0 -1 0 + 7 5 0 - 1 7= 2.18

2 + 2 5 0 -4 + 7 5 0 -8

Le jos de l CPI idea l de 1 q u e se busca co n la segm en tac ión .

Page 73: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Ejem plo 1 .10

Ejecución de un código en el nanoMIPS con resolución de riesgos mediante adelantamiento y predicción de salto no tom ado (técnicas hardware).

S upo n g a m o s q u e e je cu ta m o s exac tam en te el m is m o c ó d ig o pe ro co n las té cn ica s h a rd w a re q u e p e rm ite n re d u c ir el n ú m e ro de pa radas de l e je m p lo a n te rio r:

1 ADDI R 10,R0 ,# 02 ADDI R 11,R 0,#40003 buc le : LW R1,A(R10)4 BEQ R1,R0,salto5 LW R2,B(R10)

6 ADD R3,R1,R27 SW R1,B(R10)8 SW R3,A(R10)9 sa lto : ADD I R 10,R 10,#4

10 BNE R10.R 11,buc le

Caso 1: Elemento de A igual a O

O b se rva m o s q u e a pesa r de te n e r d is p o n ib le el ade la n ta m ie n to , en el r ie s g o RAW de las in s tru cc io n e s 3 y 4 éste debería hacerse e n tre la sa lida de la fase M y la en trada de la fase D (p o rq u e es en esta fase en la q u e se resue lve el sa lto ), p o r lo q u e n o e v ita m o s las 2 pa radas p o r r ie s g o de da tos.

En el RAW en tre las in s tru c c io n e s 9 y 10 co n s e g u im o s a h o rra rn o s una de las pa radas, aunque la o tra es necesaria para p o d e r ade lan ta r el o p e ra n d o de la sa lida de la etapa X a la en trada de la etapa D.

La p re d ic c ió n de sa lto fa lla s ie m p re para el sa lto de la in s tru c c ió n 4 (en este caso de e je cu c ió n s ie m p re se salta), y en to d a s las ite ra c io n e s m e n o s en la ú ltim a de l b u c le para el sa lto de la in s tru c c ió n 10.

En a m b o s sa ltos se busca s ie m p re la in s tru c c ió n s ig u ie n te y c u a n d o se co m p ru e b a q u e la p re d ic c ió n ha fa lla d o , se desecha lo q u e se había buscado.

Caso 2: Elemento de A distinto de 0

3 F D X M W

4 F D D D X M W

5 F F F D X M W

6 F D M W

7 F F D NI W

8 F D <X M W

9 F D X, M W

10 F d h o X M W

F

Page 74: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En este caso te n e m o s lo s m is m o s rie sgo s de d a tos q u e el caso 1 e x c e p to el RAW en tre las in s tru cc io n e s 5 y 6, en el q u e el a d e la n ta m ie n to evita u n o de lo s c ic lo s de pa rada p e ro n o el o tro . Y ha y o tro r ie s g o RAW en tre las in s tru c c io n e s 6 y 8 , p e ro en este caso el a d e la n ta m ie n to ev ita to d a s las paradas.

En lo q u e se re fie re a lo s r ie sgo s de c o n tro l, la p re d ic c ió n de l p r im e r sa lto s ie m p re se ac ie rta , lo q u e evita la parada p o r r ie s g o de c o n tro l en to d o s lo s casos. La p re d ic c ió n de l sa lto de la in s tru c c ió n 10 s ie m p re fa lla e x ce p to en la ú ltim a ite ra c ió n de l bucle .

Tenem os, para las ite ra c io n e s in te rm e d ia s de l buc le :

C aso 1 (E le m e n to de A ig u a l a 0 )

• In s tru cc io n e s = 4.• C ic los = 4 (un c ic lo p o r in s tru cc ió n ) + 0 pa radas p o r r ie s g o s e s tru c tu ra les + 3 pa radas p o r r ie sgo s de

d a tos + 2 c ic lo s p e rd id o s p o r fa llo de p re d ic c ió n = 9.

C aso 2 (e le m e n to de A d is t in to a 0 ).

• In s tru cc io n e s = 8.• C ic los = 8 (un c ic lo p o r in s tru cc ió n ) + 0 pa radas p o r r ie s g o s es truc tu ra les + 4 pa radas p o r r ie sgo s de

d a tos + 1 c ic lo p e rd id o p o r fa llo de p re d ic c ió n = 13.

Y para la e jecuc ión de las in s tru cc io n e s 1 y 2 en la p rim e ra ite rac ión , te n ie n d o en cuen ta lo s 4 c ic lo s q u e la ruta de d a tos ta rd a en llen a rse y q u e el r ie s g o RAW e n tre las in s tru cc io n e s 1 y 3 se resue lve co m p le ta m e n te con un ade la n ta m ie n to :

• In s tru cc io n e s = 2.• C ic los = 2 (un c ic lo p o r in s tru cc ió n ) + 4 c ic lo s de lle n a d o + 0 pa radas p o r r ie sgo s es truc tu ra les + 0

paradas p o r r ie s g o de d a tos + 0 pa radas p o r r ie sgo s de c o n tro l = 6 .

En c u a n to a la ú ltim a ite ra c ió n de l buc le , só lo en ese caso, la p re d ic c ió n de l sa lto de la in s tru c c ió n 10 ac ie rta y n o s a h o rra m o s 1 c ic lo , q u e n o hace fa lta q u e te n g a m o s en cuen ta para el c á lcu lo de l CPI ya q u e n o se va a n o ta r nada en el re su lta d o fin a l.

C om o sabem os el n ú m e ro de ve ce s q u e te n e m o s cada caso :

instrucciones

c p / ______________ c ic los ex tra s 1a iteración + 250 • ciclos ca so 1+ 7 5 0 • c ic los caso 2____________

in stru ccio n es extras 1a iteración + 250 • in stru cc io n es caso 1 + 750 • in stru cc io n es caso 2

6 + 2 5 0 9 + 750 13 1 ^

2 + 2 5 0 - 4 + 7 5 0 -8

Es dec ir, g ra c ia s a las té cn ica s h a rd w a re para la res o lu c ió n de rie sgo s se ha co n s e g u id o un speedup de 2.18/1.71 = 1.27 en la e je cu c ió n de este có d ig o .

Y con la ayuda de l co m p ila d o r, m e d ia n te reo rd e n ac ión de in s tru cc io n e s y sa lto re ta rd a d o , to d av ía podría in ten ta rse in c re m e n ta r a lg o m ás esta m e jo ra .

1.5.3. Procesadores segmentados multifuncionalesH asta d m om ento se han estudiado técnicas d e diseño para procesadores segm entados que sólo

incorporan en su repertorio de instrucciones operaciones co n núm eros en teros y que p o r lo tanto, tienen una única unidad funcional, la ALU d e enteros.

Si se p lan tea la posibilidad d e añad ir al repertorio d e instrucciones del nanoM IPS instrucdones que operen con núm eros en com a flotante, p o r ejemplo, la sum a, la resta, la m ultiplicación y la división p a ra precisión doble (A D D .D , SUB.D, M U L .D y D IV D respectivamente), así com o las instrucciones que perm iten realizar la carga y el alm acenam iento d e los operandos en com a flotante (L .D y S.D), aparecen nuevas dificultades que deben ser solucionadas.

La principal es q u e no se puede pretender fijar la d u ra d ó n del ciclo d e rd o j del procesador p a ra que a i la e tap a X se pueda com pletar una división en com a flotante com pleta, operación con u n a latencia im portante sea cual sea la im plem entación hardw are de la unidad fu n d o n a l que la realice.

La ru ta d e da to s que se ha m ostrado p a ra d nanoM IPS segm entado hasta el m om ento, se tra ta de una ru ta d e da to s lineal o d e única función, en la q u e una determ inada in strucdón está obligada a p asar

Page 75: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

en orden p o r todas las etapas d e la ru ta d e da to s y a ta rd a r un ciclo d e reloj en com pletar cada u n a de d ías. E sto es así porque d repertorio d e instrucciones del procesador sólo necesita una ALU d e enteros para realizar todas las operadones incluidas en él.

Cuando el repertorio d e instrucciones d e los procesadores es m ás complejo, la ru ta de d a to s suele convertirse en m ultifuncional (tam bién llam ada a veces no lineal o bifurcada), d e m anera q u e algunas etapas puedan ta rd a r m ás de u n ciclo en ejecutarse o puedan ser reutilizadas p o r una m ism a instrucción. En los diseños m ás com plicados, incluso se perm ite que una m ia ñ a instrucción pueda e s ta r ejecutando m ás de u n a m ism a e tap a al mismo tiem po o que se pueda m odificar el orden d e ejecución d e las etapas.

En una prim era aproxim ación, para realizar operadones en com a flotante en la ru ta de da to s del nanoM IPS, se puede perm itir que estas instrucciones repitan la e tap a X tan tas veces com o sea necesario (figura 1.37). Se utilizan varias unidades fundonales d e com a flotante d e m anera que la ALU d e enteros se encarga d e las instruedones d e acceso a m em oria, de las instrucciones aritm ético-lógicas con enteros y d e las instruedones d e salto. P ara las operaciones en com a flotante se añaden u n sum ador/restador en com a flotante, u n m ultiplicador y un divisor. E sto im plica q u e se deben incluir nuevos registros de segmentación y que se añaden nuevas conexiones entre todos los registros para im plem entar los nuevos addan tam ien tos que sean necesarios.

Fases d e e je c u c ió n d e in s tru c c io n e s en e l n a n o M IP S m u lt i fu n c io n a l.

F ig ura 1 .37

Este tipo d e diseño es sencillo, pero p lan tea u n problem a d e rendim iento con los riesgos estructurales por las unidades funcionales en com a flotante. Si se tiene que el sum ador/restador tiene u n a latencia de 4 ciclos, d m ultiplicador d e 10 c id o s y el divisor d e 20 cidos, ¿qué ocurre si en un código aparecen dos sumas en com a flotante seguidas? O bviam ente, la segunda sum a tendrá que esperar 4 ciclos (en lugar de 1) a q u e term ine la prim era:

ADD.D F1,F2,F3 F D A A A A M WADD.D F4,F5,F6 F D D D D A A A A M W

P ira evitar to d as estas paradas p o r riesgos estructurales debidos a las unidades fundonales, se suele op tar por incluir unidades funcionales d e com a flotante segm entadas dentro de la ru ta d e datos (figu­

Page 76: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

ra 1.38). D e esta m anera, la segunda sum a podría em pezar a ejecutar en el siguiente c id o q u e la prim era, y lo mismo ocurriría con la m ultiplicación. Si se diseña así el procesador, la e tapa X para las instrucdones a lte ra s se convierte en cuatro e tapas diferentes (A l, A2, A3 y A4) para la sum a en com a flo tante o en 10 para la m ultiplicación (M I, M 2, etc).

ADD.D F1,F2,F3 F D A l A2 A3 A4 M WADD.D F4,F5,F6 F D A l A2 A3 A 4 M W

La única diferencia sustancial en tre unas ru tas d e da to s y o tras suele e s ta r en la segmentación deldivisor, q u e no siem pre se incorpora p o r tra tarse d e una operación q u e es poco frecuente, p o r lo q u e elriesgo estructural p o r esta un idad es m uy raro q u e se produzca.

------------------------------------------------------------------------------------------------------------------------------------Fases d e e je c u c ió n d e in s tru c c io n e s en e l n a n o M IP S m u lt i fu n c io n a l

co n u n id a d e s fu n c io n a le s se g m e n ta d a s .

F ig ura 1 .38

En u n a ru ta de d a to s m ultifuncional siguen apareciendo los riesgos d e da to s RAW y los d e control, pero tam bién aparecen nuevos riesgos que h ab rá que solucionar:

• Puede haber riesgos estructurales con las unidades funcionales que no estén segmentadas.• Adem ás las instrucciones tienen d istin tas duraciones por lo que puede q u e se necesite m ás d e una

escritura en m em oria o en los registros a i un determ inado ciclo d e reloj. Es decir, aparecen los riesgos estructurales por el banco d e registros y p o r la m em oria d e datos.

• Hay que com probar á las dependoicias d e da to s RAW a través de la m em oria pueden convertirse a i este tipo d e procesador en riesgos.

• Por últim o, habrá q u e com probar tam bién si las dependencias W AR y WAW pueden originar riesgos, porque en la ru ta d e da to s lineal estos riesgos no eran posibles debido a que las instruccio­nes pasaban obligatoriam ente por las mismas etapas, con la m ism a duración y en d mismo orden. Pero esto no es así en las ru tas m ultifundonales.

Los riesgos estructurales por las unidades funcionales que no están segm entadas se resuelven siempre m ediante paradas. En el caso d e los riesgos estructurales por la m em oria y p o r el banco de registros, existe

Page 77: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

la posibilidad de incorporar a la ru ta de da to s del procesador m em orias y bancos d e registros m ultipuer- to, q u e puedan ser accedidos p o r m ás d e u n a instrucción en un mismo ciclo. Pero esta solución su d e ser cara, así q u e en m uchos casos, p o r ejemplo, en el del nanoM IPS, se op ta p o r identificar los posibles ries­gos d e este tipo en la e tap a D de las instrucdones y resolverlos con paradas cuando sea necesario.

U na vez discutidas las posibles so ludones para los nuevos riesgos estructurales de los procesadores segm entados multifuncionales, siem pre hay q u e evaluar la posibilidad d e q u e aparezcan en este tipo de procesador nuevos riesgos de da to s debidos a las dependencias RAW a través d e la m em oria, W AR y WAW.

Tom ando el ejemplo d d nanoM IPS, se observa q u e todas las instrucciones siguen realizando las etapas de F, D , M y W en el mismo orden y con la m ism a duración, lo que h a cam biado es que cad a tipo de instrucción puede ta rd a r u n número diferente d e d c lo s en com pletar la fase d e ejecución en la corres­pondiente unidad funcional. Esto hace q u e las dependencias WAR y las dependencias RAW a través de la m em oria sigan sin suponer un riesgo (en todas las com binaciones posibles de instrucciones las etapas que deben e s ta r ordenadas d e u n a determ inada m anera para q u e no se produzca un riesgo lo están), pero las WAW sí q u e pueden provocar riesgos a i este caso.

Por ejemplo, en la siguiente com binación d e instrucciones:

ADD.D F1,F2,F3 F D A l A2 A3 A4 M WL.D F 1,0(R0) F D X M W

Se puede observar q u e si no se resuelve correctam ente el riesgo WAW, el valor q u e quedará escrito en d registro F1 es el resultado d e la sum a en lugar del resultado d e la lectura d e memoria.

A lgunas arquitecturas incorporan el hardw are necesario p a ra ev itar q u e la escritura realizada p o r la sum a se haga efectiva en d banco d e registros. Pero a i el caso del nanoM IPS se op ta p o r una solución similar a la q u e se ad o p ta p a ra o tros riesgos: se detecta el riesgo WAW en la fase D d e la in stru cd ó n de lectura d e m em oria y se realizan paradas para q u e su escritura tenga lugar justo a co n tin u ad ó n de la que realiza la instrucción d e suma:

ADD.D F1JF2,F3 F D A l A2 A3 A 4 M WL.D F 1,0(R0) F D D D D X M W

Tanto los nuevos riesgos estructurales com o estos nuevos riesgos WAW se pueden so ludonar m edian­te paradas ya q u e la probabilidad d e ocurrencia d e todos ellos es bastan te baja.

Sin em bargo, para los riesgos de datos RAW y para los riesgos d e control, am bos trem endam ente frecuentes, se siguai em pleando en los procesadores m ultifuncionales las técnicas ya estudiadas, tan to hardware com o software, p a ra ev itar estas paradas.

Por tanto, para evitar las paradas por riesgos d e da to s se siguen em pleando d adelantam iento y la reo rdenadón d e código. El p ro b lo n a es q u e con instrucciones d e la to icias mayores que u n ciclo, las paradas por riesgos RAW q u e no se pueden evitar pueden llegar a ser d e m uchos ciclos, lo q u e em peora significativamente el C PI d d procesador.

En el caso de los riesgos d e control, se siguen o n p lean d o la predicción de salto y el salto retardado. Sólo hay que ser cuidadoso cuando se aplica la técnica de salto retardado, ya que no se debe rellenar la ranura co n una instrucción de com a flotante. N o tiene sentido in ten tar ocultar el ciclo d e espera hasta que se resuelve el salto con u n a instrucción d e la ten d a superior a u n ciclo que acaba in trodudendo un retardo mayor.

En un procesador segm entado m ultifundonal es necesario identificar m ás tipos d e riesgos diferentes y co n un repertorio y u n a ru ta d e datos m ás com pleja, p o r lo q u e la e tap a D se vuelve u n a d e las m ás largas en la e jecudón d e las instrucciones debido a la responsabilidad de gestionar todos estos riesgos. N orm alm ente se añade a la unidad de control u n a tabla d e planificación en la que se van alm acenando

Page 78: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

las instrucciones q u e se em iten, los operandos que necesitan y el avance q u e se planifica para ellas por la ru ta d e datos. D e esta m anera se identifican los riesgos, y se resuelven con la técnica m ás adecuada en cada caso, co n facilidad y eficiencia.

En el caso del nanoM IPS esta tabla debe perm itir detectar los siguientes riesgos y realizar las siguien­tes acciones:

• Riesgos estructurales. Si la instrucción necesita una unidad funcional que no está segm entada y q u e ya está ocupada, tiene q u e p a ra r su avance hasta q u e la unidad esté libre (la p arad a puede llegar a ser d e tan tos ciclos com o la latencia de la operación m ás larga q u e realiza la unidad p o r la q u e se espera). Si va a haber conflictos en el acceso a m em oria o al banco d e registros, hay que p a ra r tam bién el avance de la instrucción (en este caso la p a rad a su d e ser d e un único dclo ).

• Riesgos d e da to s RAW. Se debe p a ra r el avance d e la instrucción hasta q u e sea posible la realiza- d ó n d e un adelantam iento.

• Riesgos d e datos WAW. Se debe p a ra r el avance d e la instrucción hasta que las instrucciones an te ­riores con el mismo registro destino (sin lecturas interm edias) vayan a p asar a la e tap a M .

• Riesgos d e control. Se realiza la predicción de salto no tom ado buscando siempre la instrucción siguiente al salto.

En el caso d e algunos procesadores m ultifuncionales se perm ite que las paradas q u e se realizan p a ra resolver los riesgos se hagan en la prim era e tap a d e ejecución en lugar d e en la e tap a D para q u e instruc- d o n es q u e utilizan o tras unidades funcionales puedan seguir avanzando en su ejecución.

Ejem plo 1.11

Ejecución de un código en el nanoMIPS m ultifuncional con adelantamiento y predicciónde salto no tom ado (técnicas hardware).

Se ejecuta el s igu ien te có d ig o en el nanoM IP S q u e p e rm ite la e jecuc ión de in s trucc iones en com a flo ta n te :

1 buc le : L.D F1,0(R1)2 L.D F2,0(R2)

3 M U L.D F10,F1,F24 ADD.D F4,F6,F10

5 ADD I R1,R1f# 8

6 ADD I R 2,R 2,#8

7 S.D F4,0(R1)8 BNE R1,R10,bucle

S u p o n g a m o s q u e in ic ia lm e n te R 1 = R 2 = 0 y R 10=800 . El d ia g ra m a de e jecuc ión es:

Page 79: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

1

2

3

4 A 3 A 4 W

5 M W \6 X M W

7 D X w

8 F F D M W

S igu ien te

O bse rvam os p o r p r im e ra vez un d ia g ra m a de e je cu c ió n en el q u e se deso rdena la te rm in a c ió n de in s tru c ­c io n e s d e b id o a las d ife re n te s la te n c ia s de las in s tru cc io n e s . T enem os las s ig u ie n te s pa radas y a d e la n ta m ie n ­to s :

• A d e la n ta m ie n to e n tre el L.D de la in s tru c c ió n 2 y la m u ltip lic a c ió n de la in s tru c c ió n 3. C o m o s ie m p re , en tre una lec tu ra de m e m o ria y una a r itm é tic o - ló g ic a , n o se pu e de e v ita r una parada . En este caso , el a d e la n ta m ie n to es en tre la salida de m e m o ria y la en trada de la p rim e ra etapa de l m u ltip lic a d o r en com a flo ta n te .

• A d e la n ta m ie n to e n tre la m u ltip lic a c ió n en co m a f lo ta n te y la sum a. A pesar de u tiliz a r esta té cn ica h a rd ­w a re para re so lve r el r ie sg o RAW, la la tenc ia de las o p e ra c io n e s en co m a f lo ta n te hace q u e se in tro d u z ­can 9 c ic lo s de parada . El a d e la n ta m ie n to es e n tre la sa lida de la ú ltim a etapa de la m u ltip lic a c ió n en com a f lo ta n te y la en trada de la p r im e ra e tapa de l su m a d o r en co m a flo ta n te .

• Parada de 1 c ic lo de la in s tru c c ió n 7 para e v ita r el r ie sg o e s truc tu ra l p o r el b a n co de re g is tro s (s in esa parada, co in c id e n las in s tru c c io n e s 4 y 7 en las e tapas M y W ).

• A d e la n ta m ie n to e n tre la sum a en co m a f lo ta n te y el S.D de la in s tru c c ió n 7. Se pasa el o p e ra n d o a la etapa q u e lo neces ita , p o r lo q u e se hace de la sa lida de m e m o ria a la en trada de m em o ria .

• F a llo en la p re d ic c ió n de sa lto n o to m a d o .

C on to d o esto, el CPI de l p ro ce sa d o r en la e je cu c ió n de es te b u c le , q u e se re p ite 100 veces, es:

• In s tru cc io n e s = 8• C ic los = 8 (un c ic lo p o r in s tru c c ió n ) + 1 pa rada p o r r ie sgo s e s tru c tu ra les + 10 pa radas p o r r ie sg o de

d a tos + 1 c ic lo p e rd id o p o r fa llo de p re d ic c ió n = 19

Las ú n ica s exce p c io ne s son la p rim e ra ite ra c ió n , co n lo s 4 c ic lo s de lle n a d o , y la ú ltim a ite ra c ió n , en la que la p re d ic c ió n de l sa to ac ie rta (n o se to m a ):

CP! = C/C/0S _ 4 + 99 • 19 +18 _ 2 3s in stru ccio n es 100 • 8

Se obse rva q u e a pesar de ser un c ó d ig o ta n se n c illo y de e jecu ta rse en una ve rs ión de l p ro ce sa d o r capaz de re so lve r lo s r ie sgo s de d a tos y de c o n tro l con té c n ic a s q u e pueden e v ita r pa radas, la in tro d u c c ió n de las n uevas u n id a de s fu n c io n a le s co n la tenc ia m a y o r q u e 1 ale ja m u c h o el CPI de l v a lo r idea l de 1.

1.5.4. Tratamiento de excepcionesLas excepciones son m ás difíciles d e tra ta r a i procesadores segm entados q u e en secuenciales, ya que

cuando u n a instrucción produce u n a excepción siem pre hay o tras instrucciones q u e se están ejecutando al mismo tiem po en el procesador y q u e todavía no h an term inado.

En general, existen d o s m aneras d e tra ta r las excepciones en este caso. C uando se atienden las excep­ciones respetando el orden de las instrucciones q u e las provocan (no el orden en el que se producen las propias excepciones), se habla d e excepciones precisas. Si no, las excepciones son im precisas y se tra tan en d orden en que se producen, lo que no añade n inguna com plejidad al hardware.

Page 80: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Las excepciones precisas garantizan que d proceso que se interrum pe cuando se salta a la R TE co n ­tinuará correctam ente después del tratam iento d e la excepción. L a única m anera de garan tizar esto, es conseguir q u e d estado del procesador en d m om ento en el que se p asa a tra ta r la excepción sea idéntico al q u e existiría en un procesador secuenrial. Es ded r, todas las instrucciones con u n P C an terio r al d e la instrucción q u e h a provocado la excepción deben com pletarse y las instrucciones co n un P C posterior, no deben ejecutarse n i m odificar el estado del procesador. U n a vez que se haya tra tado la excepción, se re to ­m ará la ejecución en la instrucción q u e la h a provocado, si no llegó a com pletarse, o justo en la siguiente, depende del tipo d e excepción.

¿Cuándo se utiliza d tratam iento preciso y cuándo el im predso? D epende del tipo d e excepdón. Por ejemplo, si la excepción la provoca un código d e operación inválido o u n overflow d e la ALU d e enteros, d tratam iento suele ser impreciso, ya q u e el proceso q u e se in terrum pe p ara tra ta r la excepdón luego no va a poder continuar en el punto a i d que se interrum pió. Sin em bargo, en un pun to d e rup tu ra p a ra depurar código, en una llam ada al SO o en una interrupción d e E/S, lo ideal sería realizar un tratam iento preciso porque el proceso sí debe con tinuar con su ejecución y producir resultados correctos.

El principal p ro b lo n a p a ra im plem entar excepciones precisas en procesadores segm oitados es que se pueden producir excepciones sim ultáneam ente en varias instrucdones o incluso fuera d e orden. Sin onbargo , para q u e las excepciones se tra to i d e m anera p red sa es im presdndible q u e las excepciones se traten a i el orden secuendal d e las instrucciones.

Por ejemplo, en la siguioite secuencia de instrucciones del nanoM IPS se pueden producir excepciones a i prácticam ente to d as las etapas: en F y en M u n fallo d e página en la búsqueda d e la in stru cd ó n o un acceso a m o n o n a no alineado, en D un código d e operación ilegal o en X las excepdones aritméticas.

te ro siem pre to id rá n q u e tra tarse an tes las excepciones provocadas en cualquier e tap a d e la instruc­d ó n d e LW q u e en cualquier e tap a d e la instrucción A D D .

La m anera d e a ta id e r a las excepciones en el orden de las instrucciones en un procesador segm entado de única función es asociar un vector d e estado a cad a instrucción. Este vector d e estado se va pasando de unas e tapas a o tras ju n to con la in stru cd ó n y si ocurre u n a excepdón, se señala la e tap a correspondiente a i el vector y se deshabilitan en la ru ta d e da to s las escrituras en m em oria y en los registros para que ninguna instrucción pueda m odificar el estado del procesador.

Cuando se va a pasar d e la e tap a M a la e tap a W (y este paso se realiza en orden p a ra todas las instrucciones en un procesador segm entado con u n a única unidad funcional), se com prueba p a ra cada instrucción su vector d e estado y si ha habido alguna excepción, se pasa a tratarla. L a instrucción que origina la excepción y to d as las instrucdones posteriores se em pezarán desde cero cuando se vuelva d e la ru tina d e tratam iento d e la excepción.

El vector de estado asegura que las excepciones se tratan en orden ya que una instrucción no m odi­fica el estado del procesador hasta q u e no se hayan com probado y tra tado las excepciones de to d as las instrucciones anteriores.

La im p lono itac ión d e excepdones precisas en el nanoM IPS d e única función es rd a tiv am o ite sen­cilla aplicando esta técnica del vector d e estado. En o tras arquitecturas pueden utilizarse m ecanismos similares, la única diferencia im portan te aparece cuando se puede m odificar el estado del procesador en otras e tapas d e las instrucciones, ya que esto debería tenerse en cuenta.

Si el procesador segm entado es m ultifundonal, la term inación de instrucciones fuera d e o rd o i hace que la utilización d e vectores d e estado ya no sea u n a so ludón: no garan tiza q u e las excepciones se re- sudvan en orden.

En el nanoM IPS se em iten sólo las instrucdones p a ra las que se sabe seguro que to d as las anteriores no van a generar u n a excepdón. E sta técnica puede llegar a p ro d u d r m uchas paradas d d procesador, y

LW R1,0(R0) ADD R4,R3,R5

F D X M W F D X M W

Page 81: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

aunque puede degradar el rendim iento en ciertas ocasiones, es la opción m ás b a ra ta y m ás segura para realizar el tratam iento preciso d e excepciones.

En el caso d e otros procesadores m ás complejos, existe u n a posibilidad q u e consiste en utilizar buffers de alm acenam iento tem porales para g u ard a r inform ación relativa al estado del procesador hasta q u e to ­das las instrucciones anteriores finalicen y se hayan tra tado las excepciones q u e éstas hayan provocado.

Hay d o s variantes d e esta técnica:

• Registro de historia. Se alm acenan los valores q u e van tom ando todos los registros p o r si fuera necesario recuperar d estado del procesador en un m om ento anterior.

• Registro de futuro. Se alm acenan los nuevos valores de los registros (los resultados d e las opera- dones) tem poralm ente, y sólo se actualizan en el banco d e registros cuando han finalizado las instrucciones anteriores y se h an tra tado sus excepciones.

El problem a es que es u n a solución cara cuando hay m ucha diferencia d e latencias en tre instruccio­nes, ya q u e el buffer d e alm acenam iento tem poral tiene que guardar inform ación relativa a un g ran nú­mero d e instrucciones. A dem ás hay que im plem entar lógica ad id o n a1 para realizar los adelantam ientos que resuelven los riesgos d e da to s RAW.

También existen soluciones m ixtas q u e tra tan las excepdones com o im precisas pero alm acenando información p a ra que las ru tinas d e tratam iento d e excepción creen secuencias predsas.

R ira ello es necesario alm acenar q u é instrucciones estaban en la ru ta d e da to s en el m om ento d e la excepción. Entonces, después d e tra ta r la excepción unas instrucciones com ienzan desde el p rindp io y otras no, dependiendo d e las instrucciones q u e ya hayan finalizado cuando se tra te la excepción, se crea­rán unas secuencias precisas u otras. Es la ru tina d e tratam iento d e excepción (RTE) la q u e se encarga de ejecutar algunas d e las instrucciones, sim ulando su ejecución, y esto suele ser tam bién bastante com plejo de im plem entar.

Page 82: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Resumen de decisiones de diseño del repertorio de instrucciones

Decisión Alternativas D ecisiones asociad as

Pila

Alm acenam iento de operandos A c u m u la d o r

R e g is tro s d e p ro p ó s ito g e n e ra l (GPR)

R e g is tro - re g is tro , re g is t ro -m e m o ­r ia o m e m o r ia -m e m o r ia

In m e d ia to Q u é in s tru c c io n e s lo s o p o rta n y ra n g o de v a lo re s p a ra e l o p e ra n ­

d o in m e d ia to

M odos de direccionam iento soportados

R e g is tro

A b s o lu to o d ire c to

In d ire c to o in d ire c to co n d e s p la z a m ie n to

Q u é in s tru c c io n e s lo s o p o rta n y ra n g o d e v a lo re s p a ra e l d e s p la ­

z a m ie n to

In d e x a d o

O rdenación de la palabra L itt le E nd ian

de memoria B ig E nd ian

A lineación de los acceso s a m em oria

A lineación de los d a to s en los registros del procesador

Tipo y tam año de los operandos

Conjunto de operaciones soportadas

E v a lu a r lo s c ó d ig o s d e c o n d ic ió n d e la A L U

Especificación de la condición en los sa ltos condicionales E v a lu a r u n o o v a r io s re g is tro s

E s p e c if ic a r la c o m p a ra c ió n en la p ro p ia in s tru c c ió n

Especificación de la dirección destino de salto en los saltos

R e la tiv o al PC R a n g o de v a lo re s p a ra el d e s p la z a m ie n to

In d ire c to c o n re g is tro

L o n g itu d f ija

Codificación del repertorio de instrucciones L o n g itu d v a r ia b le

H íb rid a T ip o s d e fo rm a to d e in s tru c c ió n

Page 83: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

Resumen de decisiones de diseño del procesador

P r o c e s a d o r e s s e c u e n c i a l e s

Decisión A lternativas D ecisiones asociad as

M etodología de tem porizaciónM o n o c ic lo

M u lt ic ic lo

Conjunto de m ódulos que co m ­ponen la ruta de datos

C o n ta d o r d e p ro g ra m a R e g is tro s d e p ro p ó s ito g e n e ra l y b a n c o s

de re g is tro s M e m o r ia s d e in s tru c c io n e s /d a to s

U n id a d e s a r itm é tic o / ló g ic a s S u m a d o re s , T es ta d o re s , c o m p a ra d o re s y

d e sp la zad o res E le m e n to s d e a lm a c e n a m ie n to

in te rm e d io D e c o d if ic a d o re s y m u lt ip le x o re s

Valores de los puntos de control en la ruta de datos

N iveles de decodificación/ control

C o n tro l g lo b a l ú n ic o

C o n tro l g lo b a l + u n o o v a r io s c o n tro le s b c a le s

Im plem entación de la unidad de control

M o n o c ic lo C irc u ito c o m b in a c io n a l

M u lt ic ic lo M á q u in a d e e s ta d o s

M ic ro p ro g ra m a d a C o d if ic a c ió n y s e c u e n c ia - m e n tó d e las m ic ro in s -

t ru c c io n e s

T é cn ica s de tratam iento de excepciones

T écn icas de optim ización

P r o c e s a d o r e s s e g m e n t a d o s

Decisión A lternativas D ecisiones asociad as

Núm ero de etapas de segm entación y ta reas

que realiza cada etapa

Tipo y núm ero de unidades funcionales - Segm entación

de unidades funcionales

T écn icas de resolución de riesg o s estructurales

Paradas

R e cu rso s re p lic a d o s

E s ta b le c im ie n to d e tu rn o s de u tiliz a c ió n

Page 84: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Técn icas de resolución de riesgos de datos

Paradas E ta p a en la q u e se p ro d u c e n las p a ra d a s

A d e la n ta m ie n to ( té c n ic a H W ) E tapas o r ig e n y d e s t in o d e lo s a d e la n ta m ie n to s

R e o rd e n a c ió n d e c ó d ig o (té c n ic a SW )

T écn icas de resolución de riesgos de control

Paradas

P re d ic c ió n d e s a lto ( té c n ic a H W ) T o m a d o o n o to m a d o

S a lto re ta rd a d o (té c n ic a SW )

T é cn ica s de tratam iento de excepciones

Im p re c is a s

P rec isas V e c to r d e e s ta d o s R e g is tro d e h is to r ia R e g is tro d e fu tu ro

Paradas

T é c n ic a s m ix ta s

BIBLIOGRAFIA Y LECTURAS RECOMENDADASFARGUHAR, E. & BUNCE, P. J. (1994): The MIPSProgrammer’s Handbook (1.a ed.), Morgan Kaufmann.FLYNN, M. J.; JOHNSON, J. D. & WAKEFIELD, S. R (1985): «On Instruction Sets and Their Formats», IEEE

Transactions on Computers, 34 (3), 242-254.HARTSTEIN, H. & PUZAK, T. (2002): «The optimum pipeline depth for a microprocessor», Proceedings o f the

29íh International Symposium on Computer Architecture, 7-13.KANE, G. & HEINRINCH, J. (1991): M IPS RISC Architecture (2.a ed.), Prentice Hall.OMONDI, A. R. (1999): The Microarchitecture o f Pipelined and Superscalar Computers (1.a ed.), Springer.ORTEGA, J.; ANGUITA, M. & PRIETO, A. (2005): Arquitectura de Computadores, Thomson.PARHAMI, B. (2007): Arquitectura de Computadoras. De los microprocesadores a las supercomputadoras (1.a ed.),

McGraw Hill.PATTERSON, D. A. & HENNESSY, J. L. (2008): Computer Organization and Design: The Hardware/Software Inter-

face (4.a ed.), Morgan Kaufmann.SHEN, J. P. & LIPASTI, M. (2006): Arquitectura de Computadores. Fundamentos de los procesadores superescalares

(1.a ed.), McGraw Hill.SILC, J.; ROBIC, B. & UNGERER, T. (1999): Processor Architecture From Dataflow to Superscalar and Beyond,

Springer.STALLINGS, W. (2007): Organización y arquitectura de computadores (7.a ed.), Pearson - Prentice Hall.The Morgan Kaufmann Series in Computer Architecture and Design (1999). See M IPS run (1.a ed.), Morgan Kauf­

mann.WALL, D. (1991). Limits o f instruction-levelparallelism Proceedings o f the 4th International Conference on Architec-

tural Support fo r Programtning Languages and Operating Systems, 176-188.

Page 85: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

PROBLEMAS1.1. Se diseñan tres repertorios d e instrucciones G P R diferentes, todos ellos con tres operandos y

registro-memoria. En los tres casos se ta rd a 1 ciclo d e reloj en acceder a un operando alm ace­nado en un registro y 10 ciclos en acceder a u n operando alm acenado en m em oria. U tilizar los datos de la siguiente tabla p a ra calcular el C PI m edio d e cada uno d e los procesadores:

Repertorio N.° de registros del procesador

Ciclos por instrucción

Probabilidad de encontrar un operando

en un registro

A 0 3 0

B 16 5 0.4

C 32 8 0.8

1 .2 . Se diseña u n repertorio d e instrucciones G P R registro-registro para u n procesador con u n b an ­co de 32 registros. En media, si se de ja que las instrucciones utilicen el form ato que les es m ás «natural», el 20% d e las instrucciones tienen u n operando fuente y otro destino, el 30% tienen dos operandos fuente y uno destino, el 25% tiene un operando fuente, otro destino y un inm e­diato y el 25% restante tiene un operando destino y uno inmediato. E n el repertorio se utilizan operandos inm ediatos de 16 b its y con el conjunto d e operaciones soportadas, son necesarias 98 instrucciones diferentes.

a) ¿C uántos bits se necesitan p a ra codificar cad a uno d e los cuatro tipos d e instrucción?b ) ¿Cómo se d iseñaría este repertorio con codificación d e longitud fija? ¿Y variable? ¿E h íb ri­

da? C om parar la eficiencia d e las tres codificaciones.

1 .3 . Se diseña un procesador nanoM IPS monociclo con las siguientes latencias para los m ódulos de la ru ta d e datos:

• Lectura d e la m em oria d e instrucciones: 0.3 ns.• Lectura d e la m em oria d e datos: 0 .4 ns.• Escritura en la m em oria d e datos: 0.5 ns.• Lectura y escritura en el banco d e registros: 0.15 ns.• O peración aritm ético-lógica con la ALU: 0.25 ns.• Sum a p a ra p reparar el P C siguiente: 0.1 ns.• Sum a del P C y el desplazam iento del salto: 0.1 ns.

Con estos da to s ¿cuál es la frecuencia m áxim a d e funcionam iento del procesador suponiendo que tod o s los m ódulos se utilizan secuendalm ente?

1.4. Se realiza u n diseño multiciclo del procesador del ejercicio anterior según las etapas estudiadas para el nanoM IPS. Si las frecuencias d e aparición d e las instrucciones del repertorio son las que se detallan a continuación, ¿cuál de las d o s versiones, la m onociclo o la multiciclo, obtiene un m ejor rendim iento? ¿C uánto mejor?

• Lectura d e m em oria: 35%.• Escritura en m em oria: 10%.• Aritmético-lógicas: 35%.• Saltos condicionales: 20%.

Page 86: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

1.5. M odificar la im plem entación d e la ru ta d e da to s y la unidad d e control d d nanoM IPS m onoci­clo p a ra que pueda ejecutar las instrucciones J (salto incond idonal con destino d e salto relativo al PC) y JR (salto incondicional con destino d e salto indirecto con registro).

1.6. M odificar la im plem entación de la ru ta d e da to s y la unidad de control del nanoM IPS multiciclo para ab ara ta r sus costes utilizando un banco de registros con u n único puerto d e lectura.

1.7. En el nanoM IPS multiciclo con unidad d e control cableada (basada a i m áquina d e estados) se desea tener en cu en ta un nuevo tipo d e excepción, que se produce cuando se detecta u n e rro r en la codificación de una palabra a i la única m em oria d e la ru ta d e datos. D iscutir las m odifica­ciones que deberían hacerse a i la ru ta d e datos y en la unidad d e control p a ra poder realizar el tra tam io ito d e esta excepción cuando se produce en u n a palabra q u e alm acena una instrucción o a i u n a palabra que alm acena un dato . U tilizar una señal E rrorC aché que activa la p rop ia m e­m oria cuando detecta un e rro r d e este tipo.

1.8. U n procesador secuencial monociclo tio ie un tiempo d e ciclo d e 2.4 ns y su ru ta d e da to s está constituida por m ódulos d e latencias 0 .1 ,0 .4 ,0 .3 ,0 .5 , 0.8, 0.2 y 0.1 ns q u e se utilizan en ese or­den d u ran te la ejecución d e instrucciones. Al segm entar el procesador no es posible m odificar el o rdoi d e esos m ódulos n i dividir la utilización d e un m ódulo en etapas diferentes. Suponiendo que los registros d e segm oitación introducen 0.05 ns d e retardo, discutir cuál es el tiem po de ciclo mínimo q u e puede alcanzarse segm oitando el procesador. Si el procesador se divide en d núm ero m enor d e etapas q u e perm ita lograr este periodo m ínim o ¿cuál es la latencia d e una instrucción a i este procesador?

1.9. D iscutir qué inform ación es necesario a lm aco ia r en cad a uno de los registros de segmentación del nanoM IPS segm entado.

1.10. H siguiente fragm ento d e código se ejecuta en el nanoM IPS segm entado.

1 ADD R5,R4,R22 LW R1,0(R5)3 AND R6,R1,R34 ADD R8,R6,R15 OR R5,R4,R96 SW R6,0(R0)7 SW R8,100(R0)

Calcular el número de ciclos necesarios para ejecutar el código y justificarlo con u n diagram a de g'ecución:

a) Si no existe posibilidad d e adelan tar operandos ni d e reordenar d código.b) Si se puede utilizar adelantam iento d e operandos.c) Si adem ás d e perm itir el adelantam iento, se perm ite reordenar el código para que d número

de ciclos sea mínimo, ¿cuál sería la m ejor reordenación? ¿cuántos c id o s serían necesarios en este caso para ejecutar este código?

1.11. Calcular d número d e d c lo s necesarios para ejecutar el m ismo código q u e en el ejercicio anterior en un nanoM IPS que perm ite adelantam iento y en el que la m em oria d e instrucciones y la de datos están unificadas. M antener la reordenación d e código realizada en al apartado c d e ese g'ercicio.

Page 87: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

1.12. Calcular d C PI q u e se obtiene en d nanoM IPS al ejecutar el siguiente código si d valor inicial de RIO es 1000 y d d e R1 es 0. El procesador utiliza d adelantam iento para resolver los riesgos de da to s y la p red icdón d e salto no tom ado para resolver los riesgos d e control (los saltos se resuelven en la e tap a D):

1 loop: LW R2,A(R1)2 LW R3,B(R1)3 ADD R2,R2,R34 SUB R3,R3,R45 SW R2,C(R1)6 SW R3,D(R1)7 ADDI R1,R 1 ,#48 BNE R1,R10,loop

1.13. M ostrar el d iagram a de ejecución y calcular el CPI m edio que se obtiene al ejecutar el siguiente código en d nanoM IPS segm entado con adelantam iento y reso ludón d e saltos en la e tapa D. Suponer q u e el 50% d e las veces A(i)=B(i):

ADDI R10,R0,#4000ADDI R1,R0,#0

1 loop: LW R2,A(R1)2 LW R3,B(R1)3 SUB R4,R2,R34 B EQ R4,R0,else5 SW R3,A(R1)6 J final7 else: LW R5,C(R1)8 ADD R2,R2,R59 SW R2,A(R1)10 SW R2,B(R1)11 final: ADDI R1,R 1 ,#412 BNE R1,R10,loop

¿Qué m ejora podría obtenerse en la ejecución d e este código si se utiliza la técnica d e salto re tar­dado? D iscutir las diferentes posibilidades q u e ofrece este código p a ra rellenar la ranura.

1.14. Se ejecuta el siguiente código en u n nanoM IPS segmentado m ultifuncional en el q u e se incluye una ALU d e enteros con la ten d a 1 c ido , u n sum ador/restador en com a flotante con latencia 2 ciclos, u n m ultiplicador en co m a flotante co n latencia 5 ciclos y un divisor en co m a flotante con latencia 10 ciclos. N inguna d e las unidades funcionales en com a flotante es tá segm entada y se utiliza el addan tam ien to para resolver los riesgos d e datos. Los saltos se resudven en la etapa D de las instrucciones. C alcular el CPI que se obtiene al ejecutar d código si el registro RIO contie­ne u n 0 inicialmente y el registro R 1 un 800:

1 loop: L.D F2,A(R10)2 L.D F3,B(R10)3 ADD.D F4,F2,F34 SUB.D F5,F2,F35 M UL.D F6,F4,F56 S.D F6,C(R10)7 ADDI R10,R10,#88 BNE R1,R10,loop

Page 88: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

1.15. Calcular la ganancia que se ob tendría al ejecutar el código an terio r a se segm entaran las u n ida­des funcionales en com a flotante y se utilizara la técnica d e salto retardado. D iscutir las diferen­tes posibilidades q u e existen para rellenar la ranura d e salto.

1.16. M ostrar el d iagram a d e ejecución d d siguiente código si se ejecuta en el nanoM IPS segm entado multifuncional con una ALU d e enteros con latencia 1 ciclo, un sum ador/restador a i com a flo­tante con la ten d a 2 c idos, un m ultiplicador en com a flo tante con latencia 6 dc lo s y u n divisor en com a flotante con la ten d a 8 dclos. Todas las unidades a i com a flotante están segmentadas, re utiliza d adelantam iento para resolver los riesgos de da to s y los saltos se resuelven en la e tapa D de las instrucdones.

1 loop: L.D F2,0(R8)2 L.D F4,8(R8)3 DIV.D F4,F4,F24 DIV.D F8,F4,F65 M UL.D F1,F8,F26 ADD.D F6,F1,F47 S.D F6,32(R8)8 ADDI R8,R8,#89 BNE R8,R10,loop

1.17. Se diseña u n a versión d d nanoM IPS segm entado en la que se utiliza el m odo d e direccionam ien- to indirecto en lugar del indirecto con desplazam ioito . D iscutir las diferencias entre el diseño de este nuevo procesador (ru ta d e datos, unidad d e control, gestión de riesgos, etc) y el nanoM IPS clásico.

1.18. Se diseña un procesador segmentado registro-m ono ría con dos tipos diferentes d e form ato de instrucdón, uno registro-memoria y otro registro-registro. El único m odo d e direcdonam ioito que se soporta en este procesador es d indirecto con desplazamiento. Además, los saltos evalúan su condidón com parando dos registros y espedfican la dirección destino d e salto relativa al PC. El repertorio d e instrucciones inicial para este procesador incluye las mismas operaciones que el del nanoM IPS (lectura y escritura en memoria, instrucciones aritmético-lógicas básicas con números enteros y u n salto condidonal). Se decide que la segm entadón utilice seis etapas diferentes:

• BI: Búsqueda d e in strucdón en la m em oria d e instrucciones.• DLO: Decodificación y lectura de operandos en registros.• ALU 1: Cálculo de la dirección d e acceso a m em oria y d e la dirección destino d e salto.• M EM : Acceso a m em oria d e datos.• ALU2: O peración aritm ético-lógica y evaluación d e la condición en las instrucciones de

salto.• ER: E scritura d e resultados en registros.

a) D iscutir los m ódulos hardw are q u e deben incluirse en la ru ta de da to s p a ra ev itar riesgos estructurales.

b) D eterm inar los adelantam ientos q u e se necesitan para d im in a r o reducir las paradas del procesador p o r riesgos d e datos. Justificar la necesidad de cada adelantam iento co n una secuencia d e instrucciones.

c) M ostrar los riesgos d e control que se pueden p ro d u d r y calcular los ciclos de polarización que su p o n a i. P roponer una predicción, salto tom ado o no tom ado, para in tentar elim inar o reducir las paradas por riesgos de control. Justificar cuál d e las d o s predicciones sería la más adecuada para este procesador.

Page 89: Diseño y Evaluación de Arquitecturas de Computadoras

I. CONCEPTOS BÁSICO S DE PROCESADORES

AUTOEVALUACIÓN _________________________________________1. ¿Qué diferencias fundamentales hay entre un repertorio de instrucciones RISC y uno CISC?

2. ¿Cuáles son las principales ventajas de una arquitectura GPR?

3. ¿De qué tres factores depende el tiem po que tarda en ejecutarse un código en un procesa­dor según la ecuación de prestaciones?

4 . ¿Qué ventajas e inconvenientes tienen las implementaciones monociclo y multiciclo de un procesador secuencial?

5. ¿Qué dos alternativas existen para la implementación de la Unidad de Control de un proce­sador secuencial multiciclo?

6. ¿Cuál es la ganancia ideal que se obtiene segmentando un procesador secuencial multiciclo? ¿Qué factores impiden que se consiga esta ganancia en la realidad?

7. ¿Qué técnicas pueden utilizarse para resolver riesgos de datos RAW en un procesador seg­mentado?

8. ¿En qué consiste la técnica de salto retardado?

9. ¿Qué riesgos aparecen en el nanoMIPS segmentado multifuncional que no aparecen en el de única función? ¿Cómo se resuelven?

10. ¿Cómo se hace un tratamiento preciso de excepciones en el nanoMIPS segmentado de única función? ¿Se puede utilizar la misma técnica en el caso del nanoMIPS multifuncional? ¿Porqué?

Page 90: Diseño y Evaluación de Arquitecturas de Computadoras
Page 91: Diseño y Evaluación de Arquitecturas de Computadoras

Conceptosb ásicos de Memoria y E/S

C o n t e n i d o s j2.1. D iseño de una je ra rqu ía de m e m o ria básica2.2. M e ca n ism o c o m p le to de acceso a m e m o ria2.3. E va luac ión de p re s ta c io n e s de la je ra rqu ía de m e m o ria2.4. N ive les de la je ra rqu ía de m e m o ria2.5. D iseño de un s is tem a de E/S bás ico2.6. M e ca n ism o c o m p le to de una o p e ra c ió n de E/S2.7. E va luac ión de p re s ta c io n e s de l s is te m a de E/S2.8. Buses de E/S2.9. G es tión de l s is te m a de E/S

V

Page 92: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En el capítulo an terio r se han incluido en la ru ta de da to s d e los diferentes procesadores estudiados una o varias m em orias capaces de funcionar a la misma velocidad que el resto de com ponentes hardw are que se incluyen den tro del procesador. Esto es así realmente, pero estas m em orias tienen u n tam año muy limitado q u e no perm ite d iseñar sistemas con las prestaciones requeridas hoy en día.

En este capítulo se justifica la necesidad d e u n a jerarqu ía de m em oria dentro d e las arquitecturas de com putadores actuales. A continuación, se explica d mecanism o com pleto d e acceso d e m em oria en este tipo de je ra rq u ía y se proporcionan herram ientas cuantitativas p a ra la evaluación d e su rendim iento.

U na vez adquiridos estos conceptos básicos acerca del diseño y evaluación d e la je rarqu ía de m e­m oria, se analizan los aspectos tecnológicos y d e diseño de cada uno d e los niveles que la com ponen: m em oria caché, m em oria p rindpa l y m em oria virtual.

H resto del capítulo se dedica al estudio d d sistem a de E/S. D e poco sirve u n diseño sofisticado de procesador y d e jerarquía d e m em oria si los m ecanismos d e E/S q u e perm iten al usuario in troducir datos a i el com pu tador y ob tener de él los resultados esperados se convierten en el principal cuello d e botella.

Por eso se estud ia el diseño del sistem a de E/S analizando los tres grandes aspectos d e diseño q u e in­fluyen en su rendim iento: los buses de interconexión, los dispositivos d e E/S y la gestión de la E/S, es decir, la m anera a i la q u e el dispositivo se relaciona con el procesador y la je rarqu ía d e m em oria del sistema para realizar las operaciones d e E/S.

Como se hizo a i d capítulo 1, se com ienza p o r estud iar los conceptos básicos d e diseño del sistema, para p asar después a com prender el mecanism o com pleto necesario p a ra llevar a cabo una operación de E/S y a p roponer herram ientas d e evaluación de rendim iento que perm itan decidir q u é o pdones d e dise­ño obtienen u n m ejor ro id im ien to a i c ad a caso.

A continuación se estudian las técnicas d e diseño d e buses d e interconexión y los m ecanism os de gestión d e E/S tradicionales, ya q u e el estudio del diseño de los propios dispositivos de E/S queda fuera del alcance d e este libro.

Diseño de una jerarquía de memoria básicaEl s is to n a d e m em oria form ado por una m em oria principal única que se propuso en los prim eros

modelos d e com pu tador sencillo quedó descartado ráp idam oite p o r sus bajas prestaciones.La alternativa a esta m em oria única es u n a jerarqu ía d e m em oria organizada en niveles, cuan to m ás

cercanos al procesador, m ás pequeños, rápidos y caros. H oy en d ía esta je rarqu ía incluye, en casi todos los casos, tres tipos d e m em orias: m em oria caché, m em oria principal y m em oria virtual (figura 2.1).

Cada uno d e estos niveles está ubicado físicamente en u n lugar d istinto, se fabrica con una tecnología d ifero ite y se gestiona d e m anera independiente:

• Memoria caché (MC). U bicada en el mismo chip q u e el procesador, fabricada con m o n o ria R A M estática (SRAM ) y contro lada p o r el con tro lador d e caché incluido en el mismo chip. H o y en d ía lo habitual es q u e haya varios niveles d e m em oria caché. En el capítulo 1 se h a estado utilizando una mem oria caché p a ra da to s y o tra p ara instrucciones, ese es el nivel d e m em oria q u e aparecía en la m ta d e da to s del procesador, u n a m em oria caché d e nivel 1.

• Memoria principal (M P). U bicada en un ch ip diferente al procesador, fabricada con m o n o ria RA M dinám ica (D R A M ) y contro lada por el con tro lador d e m em oria principal. Este con tro lador es m uy im portante para el rendim iento d e la je rarqu ía de m o n o ria ya que se a ic a rg a d e la p lan i­ficación de los accesos a m em oria principal, com o se e stud iará m ás adelante. H oy en d ía puede ubicarse en el mismo chip q u e d procesador y la m em oria caché, o en otro chip com o el chipset norte o el M C H .

• Memoria virtual (M V). U bicada en la actualidad en el disco duro , se fabrica por lo tan to con tecno­logía m agnética y se con tro la desde el sistema operativo a través del con tro lador del disco duro.

" z L

Page 93: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

CPU

Registros

Caché- rMemoria .

Principal Memoria Virtua

Byte/KByte KByte/MByte MByte/GByte GByte/TByte

- 0,25ns - lns - 100 ns 5 ms■Tií

Fig u r a 2.1

Órdenes de magnitud de capacidades y tiem pos de acceso para los distintos nivelesde la jerarquía de memoria.

El objetivo es conseguir u n a estructu ra de m em oria d e g ran capacidad, con u n coste casi tan bajo como el del nivel m ás barato d e la jerarquía, pero con latencia com parable a la d d nivel m ás rápido (fi­gura 2.2).

M em oria

M emoriaPrincipal

| Caché |

nR egistros

A n c h o de Banda y C oste p o r b it

F ig u ra 2 .2

Tecnologías y características de los diferentes niveles de la jerarquía de m em oria.

H ay d o s p rop iedades q u e la je ra rq u ía debe cum plir p a ra q u e su funcionam ien to sea el adecuado. L a prim era, d en o m in ad a inclusión, im plica q u e cualqu ier in fo rm ació n con ten ida en u n nivel d e la je ra rq u ía debe e s ta r tam bién en lo s niveles superiores (en los q u e están m ás lejos del p rocesador a

Page 94: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

p a rtir d e él). L a segunda, d en o m in ad a coherencia, g a ran tiza q u e las co p ias d e la m ism a inform ación en los d iferen tes niveles d e la je ra rq u ía son coheren tes e n tre sí, es decir, q u e alm acenan lo s m ism os valores.

Además, en cualquier jerarquía d e m em oria debe haber una correspondencia d e direcciones en tre los distin tos niveles d e la jerarquía.

Cuando d procesador realiza un acceso a m em oria, primero se busca la palabra que hay que leer o escribir en la m em oria caché (M C). Si es ta palabra se encuentra en la caché, h a ocurrido un ad erto . Si por el contrario , no se encuentra, h a ocurrido u n fallo.

En este últim o caso, se traerá de m em oria p rindpa l (MP) un bloque que con tendrá varias palabras, entre ellas, la q u e h a producido el fallo.

Llegados a este punto , se puede plantear la siguiente pregunta: ¿por q u é la je rarqu ía de m em oria su­pone u n beneficio si es posible q u e en todos los accesos a m em oria la m em oria caché falle y al final haya que acceder siempre a la m em oria principal? Es más, ¿por q u é cuando se produce un fallo en la m em oria caché se trae un bloque con varias palabras desde la m em oria p rin d p a l en lugar d e traer sólo la palabra que el procesador h a solicitado? ¿no es esto u n a pérdida d e tiem po y d e recursos?

Las respuestas a estas preguntas se pueden encon trar en lo q u e se denom ina el principio d e localidad. Este p rindp io tiene d o s aspectos diferentes:

• Localidad Espacial. Tendencia del procesador a referenciar elem entos d e m em oria cercanos a los últimos q u e han sido referenciados.

• Localidad Temporal. T endenda del procesador a referenciar elem entos d e m em oria que han sido referenciados redentem ente.

El principio d e localidad tem poral asegura q u e si d procesador ha solicitado u n a palabra para leer o escribir en ella y se trae esta palabra a m em oria caché, es m uy probable q u e esta palabra vuelva a utilizar­se recientemente. Por eso la tasa d e ad e rto s d e la m em oria caché es lo suficientemente im portan te com o p ara m ejorar el rendim iento d e la je rarqu ía d e m em oria.

Y p o r d p rin d p io d e localidad espacial, si en lugar d e traer sólo la palabra solicitada p o r d procesa­dor a la m em oria caché, se trae un bloque d e palabras contiguas a i la m em oria, con toda probabilidad alguna o tra palabra d e este bloque se utilizará poco tiem po después, lo q u e tam bién aum enta la p robabi­lidad d e q u e se produzcan aciertos d e la m em oria caché.

Por lo tanto, cuando hay un acierto (y esto debería ser bastan te frecuente gracias a la localidad), el tiempo q u e supone el acceso a m em oria es m uy pequeño ya que los accesos term inan a i la m em oria ca ­ché, q u e es la m ás rápida d e la jerarquía.

Sin em bargo, cuando hay un fallo, este tio n p o es bastan te mayor, ya que hay que traer un bloque de m em oria principal. La penalizadón por fallo depo iderá d e la latencia d e m em oria p rindpa l y d e su ancho d e banda.

Al acceder a m em oria principal tam bién pueden p rodudrse ad e rto s y fallos, ya que no to d a la infor­mación cabe al mismo tiem po en este nivel. L a relación en tre la m em oria principal y la m em oria virtual es sim ilar a la q u e existe en tre la m em oria caché y la principal.

La m em oria p rindpa l se divide en páginas o segmentos, d e m ayor tam año q u e los bloques d e caché. Cuando se produce un fallo con una página o segm oito q u e no se encuentra a i la m em oria principal, deberá traerse d e la m em oria virtual.

La principal d ifero ic ia con los fallos de la m em oria caché está a i q u e la penalizadón p o r este tipo de fallos es bastan te grande, ya que la m em oria virtual es la m ás lo ita d e toda la je rarquía . A dem ás en la gestión d e este último nivd interviene en g ran m edida el s is to n a operativo, ya no se tra ta de una gestión llevada a cabo exclusivamente desde la propia arquitectura. P or d io d procesador suele p asar a realizar otro tipo d e tareas, realizando un cam bio d e contexto, hasta q u e la página o segm ento esté disponible en la m o n o ria principal.

78

Page 95: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Mecanismo completo de acceso a memoriaAntes d e com enzar a estudiar en profundidad cada uno d e los niveles que com ponen una jerarqu ía

de m em oria habitual, es necesario com prender to d as las e tapas en las que se descom pone un acceso a m o n o n a com pleto.

En p rim er lugar, el procesador genera la dirección virtual d e la palabra q u e se debe leer o escribir. Norm alm ente, lo prim ero q u e se hace es traducir es ta dirección virtual a u n a dirección física com prensi­ble p a ra la je rarqu ía d e memoria.

Si se consigue realizar esta traducción d e dirección, es porque la palabra q u e se es tá buscando se encuentra actualm ente en la m em oria principal. Con esta dirección se accede a la m em oria caché, y si la palabra buscada se encuentra en este nivel, el acceso a m em oria ya ha finalizado.

Si p o r el contrario , se produce u n fallo, se busca la palabra en d siguiente nivel, en este caso en la m o n o n a principal porque d e m om ento se supone q u e sólo existe un nivel de m em oria caché. E xisto i tres tipos d e fallos en la m em oria caché:

• Iniciales. L a prim era vez que se referencia u n a palabra, ésta no puede encontrarse en la caché y se produce un fallo en todos los casos.

• De capacidad. Cuando en la caché no cabo i todos los bloques necesarios para la ejecución d e un program a y deben producirse reem plazam ientos.

• De conflicto. C uando varios bloques tienen la m ism a localización en la m em oria caché y se van reem plazando unos a o tros debido a esta colisión.

Sea cual sea el tip o d e fallo, su resolución siem pre im plica buscar el b loque necesario en la m e­m oria p rinc ipal. P a ra ello hay q u e p asar p o r el co n tro la d o r d e m em oria principal (que puede estar o no en el m ism o c h ip q u e el p rocesador), q u e m ap eará la d irección física bu scad a a la ubicación física d e la p a lab ra d en tro d e los ch ip s D R A M . A dem ás, el c o n tro lad o r p lan ificará el acceso a la m em oria p rincipal, ya q u e o tro s d ispositivos, com o la ta r je ta gráfica o la d e red, tam bién acceden a la m em oria principal.

Cuando se realice este acceso, todo el bloque en el que se incluye la palabra solicitada p o r d procesa­d o r se envía a la m em oria caché p a ra resolver su fallo, y el acceso puede com pletarse con éxito.

Si p o r d contrario , la palabra no se encuentra en m em oria principal y desde u n principio no se pudo traducir su dirección virtual a dirección física p o r este m otivo, se debe resolver d fallo d e página o segm ento desde la m em oria virtual. El sistema operativo realiza un cam bio de contexto para q u e otro proceso pase a ejecutarse a i el procesador m ientras se trae desde m em oria virtual la página o segmento que hace fa lta para resolver el fallo. U na vez q u e esté a i m a n o ria principal esta página o segm ento, ya puede llevarse el bloque correspondiente a m em oria caché y cuando el proceso q u e había provocado el fallo vuelva a p a sa r a e jecudón, el acceso puede com pletarse con éxito.

Si en lugar d e un único nivel d e caché hubiera dos, el m ecanism o d e acceso sería el m ismo excepto porque cuando ocurre u n fallo en d prim er nivel de caché, primero se in ten ta resolver desde el segundo nivel d e caché. Si la palabra que ha provocado d fallo se encuentra en este segundo nivel d e caché, se envía su bloque com pleto al prim er nivel y el acceso puede com pletarse co n éxito sin necesidad de salir fuera del chip del procesador. En caso contrario , se debe in ten tar resolver d fallo desde la m em oria principal igual que a i el caso d e u n único nivel de caché.

Por el principio d e inclusión, el bloque q u e contiene la palabra que h a provocado el fallo se lleva des­de la m a n o ria principal hasta la caché d e segundo nivd, y desde ésta, a la caché d e prim er nivel para que d procesador pueda finalizar el acceso con éxito (figura 2.3). Com o se verá m ás addan te , en este proceso suden m anejarse bloques d e tam años diferoites.

Si d procesador está segm entado, todo el m ecanism o de acceso a m em oria hasta llegar a la m a n o ria principal (porque si la m em oria principal falla, hay q u e ir a m a n o ria virtual y el s is to n a operativo provo-

m

Page 96: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Fig u r a 2 .3

M ecanism o completo de acceso a m em oria con el esquem a de jerarquía de m em oria tradicional en unPC y d os niveles de caché.

ca un cam bio d e contexto) debería com pletarse en la e tap a d e acceso a m em oria, es decir, en u n c id o de reloj. E n el caso del nanoM IPS, en la e tap a M , com o puede verse en la figura 2.4.

| T radu cc ió n de D V a DF

A cce so a L1 Si fa lla . . .-»

A cce so a L2 S i fa lla ...-»

La u n id a d de l B us se encarga de l acce so a la MP

S o lic itu d al C o n tro la d o r de

M a p e o de la DF a laa rb i t ra je del P lan ificac ión

d e l accesobu s ck I s is te m a M e m o ria m e m o ria fís ica

D ire c d o n a m ie n to , a cce so y

d e vo lu c ió n de la in fo rm a c ió n

Fig u r a 2 .4

Trabajo realizado en la etapa M del nanoM IPS segm entado.

Í B j

Page 97: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Esto haría q u e la e tap a M lim ite la duración del ciclo d e reloj del procesador segm entado, por lo que habría que optim izar al máximo la je rarqu ía d e m em oria d e m anera que no afectara negativam ente al rendimiento del procesador. Para ello se estudiarán técnicas d e optim ización d e la je rarqu ía d e m em oria a i el capítulo 4 d e este libro.

Aún utilizando estas técnicas, incluir los accesos a m em oria com pletos en la e tapa M aum enta m ucho d valor del C PI, por lo q u e en la mayor parte d e los diseños en la e tap a M sólo se tienen en cuen ta los accesos a caché, y si hay que resolver u n fallo, el tiempo q u e se tarda en resolver este fallo se considera un tiem po extra q u e hay que sum ar al tiem po que ta rd a en ejecutarse una instrucción. Además, com o se estud iará en el capítulo 4, m uy a m enudo se utiliza u n a técnica, denom inada d e caché no bloqueante, que perm ite que las instrucciones avancen p o r la ru ta d e da to s del procesador m ientras u n a d e ellas está resolviendo un fallo. Esto im plica q u e el tiem po extra que se invierte en resolver el fallo se so lapa con la ejecudón d e o tras instrucdones.

na Evaluación de prestaciones de la jerarquía de memoriaEn el caso d e la je rarqu ía d e m em oria tam bién se puede definir u n a ecu ad ó n d e prestaciones que

p ropordone u n a herram ienta cuan tita tiva d e evaluación d e rendim iento.En este caso lo que interesa es saber cuán to tiempo le cuesta en m edia al procesador realizar un ac­

ceso a m em oria. Si la m o n o n a caché fuera perfecta y no fallara nunca, el tiempo medio de acceso a m e­m oria sería justo d tiem po de acierto a la m em oria caché. Pero com o se producen fallos, el tiem po m edio de acceso a m em oria se calcula teniendo en cuenta estos fallos y d tiempo que se invierte en resolverlos, lo q u e se h a denom inado penalización por fallo con anterioridad:

Í U E M = t a d e r t o M C + T F • p F

tackfbuc ■ T iem po d e acierto d e MC

T F : Tasa de fallos de M C => TF ¡núm ero de fallos

mañero total de accesos a memoriap F : Penalización p o r fallo en M C

En el capítulo 1, p a ra calcular d tiempo que un determ inado fragm ento d e código tardaba en ejecu­tarse en d procesador, se suponía que este código sólo invertía tiem po en la propia ejecución. Pero tras estudiar las d o s prim eras secciones d e este capítulo queda claro q u e los accesos a m em oria llevan un tiempo asociado y que no se puede suponer que la je rarqu ía d e m em oria es perfecta.

Por lo tan to , p a ra ser realistas, hay q u e tener en cuen ta d tiem po invertido en acceder a la m em oria con los posibles fallos que se produzcan. O bien porque están incluidos en el C PI cuando se aplica la ecuación d e prestaciones del procesador o bien porque se sum a al tiem po d e C PU (calculado con el CPI que tiene en cuen ta que to dos los accesos al prim er n ivd d e la m em oria caché ad ertan ), el tiem po que se ta rd a en resolver los fallos d e m em oria q u e se producen. Este segundo caso, t= tcpu+ tMEM, es el m ás habitual p o r lo discutido en la sección anterior.

Si lo q u e interesa es evaluar las p restadones d e la m em oria principal o de la m em oria virtual com o niveles aislados d e la je rarquía , las m étricas que suelen utilizarse son:

• Latencia. Tiem po q u e transcurre desde que un acceso a m em oria com ienza hasta que finaliza. E stá muy re ladonada co n la tecnología con la q u e está fabricada la m em oria.

• Ancho de banda. C an tidad de inform ación por un idad d e tiem po que puede transferirse desde/ hacia la m em oria. E n este caso está m uy rdac ionado con la organización de la m em oria m ás que con la tecnología.

Page 98: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 2 .1

Comparación entre una jerarquía de memoria perfecta y una jerarquía de mem oria real.

Un p ro ce sa d o r q u e fu n c io n a co n una fre c u e n c ia de re lo j de 2 GHz y co n un CPI idea l de 1, e jecu ta un có d ig o de 100 in s tru cc io n e s . Este p ro ce sa d o r in c o rp o ra d o s m e m o ria s caché, una para in s tru cc io n e s (M I) y o tra para da tos (M D ), q u e ¡n ic ia lm e n te se suponen ideales. Es decir, se su p o ne q u e su t ie m p o de acceso es desp rec iab le y q u e nunca fa llan . Por lo ta n to , el t ie m p o de e je cu c ió n de es te c ó d ig o es el t ie m p o de CPU:

t = t = / C P I T = 100 1--- --— = 50 10"9 s - 50 nscw 2 109

Pero en rea lida d estas do s m e m o ria s cachó n o son pe rfe c ta s , y a u n qu e su p o ng a m o s q u e sus t ie m p o s de acceso son de sp re c ia b le s , en ocas iones fa lla n o b lig a n d o a rea liza r accesos a m e m o ria p rinc ipa l.

S u p o n g a m o s q u e la m e m o ria caché de in s tru c c io n e s t ie n e una tasa de fa llo s de l 4 % y una pena lizac ión p o r fa llo de 100 ns; y q u e la m e m o ria cachó de d a tos tie n e una tasa de fa llo s de l 6% y una pena lizac ión p o r fa llo de 115 ns.

T en iendo en cuen ta q u e para e je cu ta r este có d ig o , hacen fa lta 100 accesos a la m e m o ria de in s tru cc io n e s (la búsqueda de cada in s tru c c ió n ) y 25 accesos a la m e m o ria de d a tos (25 in s tru cc io n e s de l c ó d ig o son load o s to re ), el t ie m p o q u e se in v ie rte en acce d er a m e m o ria es:

= n .° de accesos a M I ( t ^ Ml + TFMI • p F J + n .° de accesos a M D MD + TFMD • p F MD) =

100 (0 + 0.04 • 100) + 25 (0 + 0 .06 • 115) = 572.5 ns

Por lo q u e el t ie m p o de CPU de este c ó d ig o es rea lm e n te :

* = fCfHj + — 50 ns + 572.5 ns = 622.5 ns

m Niveles de la jerarquía de memoria

2.4.1. Diseño de la memoria caché

La m em oria caché alm acena en cad a m om ento unos determ inados bloques d e inform ación, p o r lo tanto se divide en m arcos capaces d e albergar estos bloques en su interior.

La caché no sólo se com pone de m arcos, ya q u e p a ra dete rm in ar q u é b loque está ocupando un determ inado m arco en un instan te concreto se utilizan e tiquetas o tags q u e tam bién deben alm acenarse en la m em oria. E stas e tiquetas se com paran con la del b loque q u e se es tá buscando p a ra determ inar si éste se encuen tra o no en la m em oria caché y si p o r lo tan to se h a producido u n acierto o un fallo (figura 2.5).

fó ra com prender el funcionam iento d e la m em oria caché y para diseñar este nivel d e la je rarqu ía de m anera adecuada hay q u e entender cuatro aspectos básicos d e su diseño.

2 .4 .1 .1 . O r g a n i z a c i ó n d e l a m e m o r i a c a c h é

El prim er aspecto im portan te que hay que decidir es el tam año d e la m em oria caché. Si la caché es dem asiado pequeña, esto afectará negativam ente a la tasa d e fallos, ya que no se cap tu rará bien la loca­lidad, y m uchos de los accesos a m em oria realizados p o r el procesador term inarán produciendo fallos de capacidad.

Sin em bargo, la caché tam poco puede ser dem asiado grande. En prim er lugar, porque se integra en d mismo chip que d procesador, lo q u e implica que hay q u e tener en cuenta el consum o d e área y el de

Page 99: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

M em oria Caché

Etiqueta Marcos

Fig u r a 2 .5

F u n c io n a m ie n to d e la m e m o r ia caché .

potencia, y en general, las restricciones en el coste d d diseño. Y en segundo lugar, porque las cachés m ás grandes son m ás lentas, ya q u e la lógica necesaria p a ra su gestión es m ás compleja, puede que esto im pli­que m ás com paraciones de etiquetas, etc. Por lo tan to hay q u e escoger cuidadosam ente el tam año d e esta m em oria p a ra cada arquitectura.

U na vez que se h a decidido el tam año d e la caché, es necesario escoger el tam año d e marco (y de Hoque) q u e se va a m anejar. D e nuevo es una decisión d d icad a q u e afecta al rendim iento d e la m em oria. U tilizando bloques d e gran tam año se cap tu ra m ejor la localidad espacial y se pueden reducir los fallos iniciales.

I^ro hay q u e tener en cuen ta que al aum entar el tam año del bloque tam bién se aum enta la penaliza- d ó n por fallo, ya q u e se necesita m ás tiem po para traer los bloques del siguiente nivd d e la je rarqu ía de memoria.

H abrá que llegar a un com prom iso entre am bos aspectos teniendo en cuen ta la latencia y el ancho de banda d e la conexión con el siguiente nivel d e m em oria.

O tro d e los aspectos fundam entales en la organización de la caché es la unificarión o división d e las instrucciones y los datos.

Según lo estudiado en el capítulo 1 d e este libro, la segmentación del procesador obligará en m uchos casos a d iv idir la caché d e instrucciones y la d e datos p a ra ev itar los riesgos estructurales en tre las etapas de búsqueda d e instrucción y las d e acceso a m em oria para lectura o escritura d e operandos/resultados (las e tapas d e F y M del nanoM IPS). Pero cuando no se tra te del prim er nivel d e m em oria caché, se pue­de o p ta r p o r seguir m anteniendo esta separación o p o r unificar a i bloques d e inform ación com unes las instrucciones y los datos.

Todas estas decisiones d e diseño suelen tom arse con ayuda d e herram ientas d e sim ulación y siguien­do reglas em píricas y heurísticas q u e han surgido d e la experiencia d e o tros diseñadores.

Por últim o, destacar den tro d e la organización d e la caché uno de los aspectos que m ás influye en el rendimiento d e la je rarqu ía d e m em oria: la im plem entación d e cachés multinivel.

Page 100: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

U tiliz a c ió n d e d o s n iv e le s d e m e m o r ia caché .

Si se op ta p o r u tilizar un único nivel d e m em oria caché, cuando este nivel falle, habrá q u e ir direc­tam ente a m em oria principal a buscar el bloque necesario p a ra resolver este fallo. L a penalización que implica buscar este b loque y traerlo a la m em oria caché puede ser excesiva en m uchos casos.

Además, cuando se diseña u n a m em oria caché d e un único nivel se p lan tea la siguiente cuestión, ¿es mejor u n a m em oria caché pequeña y rápida q u e pueda trab a ja r a la velocidad del procesador o u n a m e­m oria d e tam año mayor, m ás lenta pero q u e cap ture y aproveche m ejor el principio d e localidad y reduzca la tasa d e fallos?

La solución a las dos cuestiones es casi siempre la utilización de m ás d e u n nivel d e m em oria caché (figura 2.6). N orm alm ente se utilizan d o s niveles de m em oria caché (aunque m uchas arquitecturas d e hoy en d ía em piezan a incorporar un tercero):

• Nivel 1 (L l) . E ste nivel es el m ás cercano al procesador, por lo tanto, esta m em oria caché es peque­ña y rápida.

• Nivel 2 (L2). Es el siguiente nivel d e la je rarquía , d e mayor tam año (po r lo q u e aprovecha m ejor el principio d e localidad) y p o r lo tanto, m ás lento aunque con m enos fallos d e capacidad.

D e esta m anera, cuando se produzca un fallo en d nivel 1 d e la m em oria, la penalización d e este fallo será m enor q u e si sólo hubiera un nivel d e caché, porque en lugar d e ir a la m em oria principal irá a la caché d e nivel 2 (siempre con m enor tiempo d e acceso q u e la m em oria principal y adem ás sin necesidad de salir del chip en el q u e se encuentra el procesador).

Ejem plo 2 .2

Comparación entre una jerarquía de memoria con un nivel de caché con otra jerarquía dememoria con dos niveles de caché.

In ic ia lm en te te n e m o s un p ro ce sa d o r co n un ú n ic o n ive l de m e m o ria cachó, un ifica d a , co n t ie m p o de a cce ­so de 1 ns, tasa de fa llo s de l 5% y penalizac ión p o r fa llo de 90 ns.

A K CachóL1

..Mv MpmnriAProcesador

> t p j nnc' pa

Page 101: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

En esta s itu a c ió n el t ie m p o m e d io de acceso a m e m o ria para rea liza r una le c tu ra es:

d ec tu re ) = lKienoU + TFL, ■p F L, = 1 + 0 .05 • 90 = 5.5 ns

Para m e jo ra r las p re s ta c io n e s de esta je ra rqu ía de m e m o ria se dec ide in c lu ir un se g u n d o n ive l de m e m o ria cachó, ta m b ié n u n ific a d a , y en este caso co n un t ie m p o de acceso de 12 ns y una tasa de fa llo s de l 10% .

G racias a la in tro d u c c ió n de es te n ive l, la pe n a liza c ión p o r fa llo q u e an tes ten ía el p r im e r n iv e l de m e m o ­ria caché , d e b id a a la neces idad d e tra e r un b lo q u e d e sde m e m o ria p r in c ip a l, aho ra pasa a se r la pena lizac ión p o r fa llo de l se g u n d o n ive l de caché. El t ie m p o m e d io de acce so a m e m o ria para le c tu ra es (s u p o n ie n d o q u e lo s m o v im ie n to s de in fo rm a c ió n en tre s lo s n ive le s de la je ra rq u ía de m e m o ria im p lic a n un t ie m p o de s ­p re c ia b le ):

W w (lectura) = + TFL1 pF L1 = 1 + 0 .05 ■ p F L1

p F u = = tacierto L2 + TFL2 ' p F L2 — 12 + 0.1 • 90 = 21 nS

Por lo que:

tMEM (lectura) = 1 + 0.05 • pF Lf= 1 + 0 .05 - 2 1 = 2.05 ns

Es decir, la ganancia q u e se o b tie n e g rac ias a la in tro d u c c ió n de un segundo n ive l de m e m o ria cachó es de 5 .5 /2.05 = 2.68.

2 .4 .1 .2 . P o l í t i c a d e e v i p l a z a m i e n t o

Si en la m em oria caché sólo se alm acenan unos determ inados bloques d e inform ación, ¿cualquier H oque d e datos puede alojarse en cualquier m arco d e la m em oria caché?

La respuesta es q u e depende el tipo de política d e em plazam iento que se decida im plem entar en la m an o ria caché. H ay tres tipos d e em plazam iento:

• Directo. A cada bloque le corresponde un único marco d e caché y sólo puede alojarse en este marco.

• Asociativo. U n bloque puede alojarse en cualquier m arco d e la m a n o ria caché.• Asociativo por conjuntos. L a m em oria caché se divide en conjuntos con u n número determ inado de

marcos por conjunto (o vías). A un determ inado bloque le corresponde u n único conjunto , pero dentro d e él, puede alojarse en cualquier m arco. Es decir, es u n a solución interm edia en tre los dos tipos d e onp lazam ien to anteriores.

Ejem plo 2 .3

Ejemplo de las tres políticas de emplazamiento.

S u p o n g a m o s q u e te n e m o s una m e m o ria cachó m u y senc illa de só lo c u a tro m a rc o s de b loque.V eam os d ó n d e se podría u b ica r el b lo q u e 5 de m e m o ria p rinc ipa l en esta m e m o ria cachó si es d irec ta ,

asocia tiva o asocia tiva p o r c o n ju n to s de 2 vías.

Page 102: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En la fig u ra aparecen so m b re a d a s las p o s ib le s u b ica c io n e s para el b lo q u e 5 d e n tro de la caché.

D ire c ta

B lo q u e 5 m o d 4 m a r c o s - 1

A s o c ia tiv a

B lo q u e S m o d 2 c o n j u n t o s - 1

Se pu e de o b se rva r q u e en el caso de la cachó d irec ta , una sencilla ope ra c ió n de m ó d u lo DIRECCIÓN DE BLOQUE m o d N Ú M ER O DE M ARCO S (5 m o d 4 = 1 en es te caso), n o s in d ica en q u é m a rc o d e la cachó debe ub ica rse el b lo q u e . Y esta es la ún ica p o s ib ilid a d de em p lazam ien to .

Sin e m b a rg o , en el caso de la m e m o ria asoc ia tiva , el b lo q u e 5 pu e de u b ica rse en cu a lq u ie ra de lo s c u a tro m a rco s d isp o n ib les .

Por ú ltim o , en el caso de la cachó asocia tiva p o r c o n ju n to s de 2 vías, de n u e vo una ope ra c ió n de m ó d u lo nos ind ica en q u é c o n ju n to debe ub ica rse el b lo q u e : DIRECCIÓN DE BLOQUE m o d N Ú M ER O DE CONJUNTOS (5 m o d 2 = 1 para el e jem p lo ). D e n tro de l c o n ju n to 1, el b lo q u e 5 pu e de u b ica rse en cua lqu ie ra de lo s dos m arco s d isp o n ib les .

Las diferentes alternativas para d em plazam iento en la m o n o n a caché llevan a diferentes interpreta- d o n es d e la d irecd ó n física desde el pun to d e vista d e esta m em oria (figura 2.7). Según el tipo d e em pla­zam iento d e la m o n o n a caché:

• Directo. El índice indica el m arco que le corresponde a ese bloque d e m em oria.• Asociativo. N o existe este cam po en la dirección, ya q u e el bloque puede alojarse en cualquier

marco.• Asociativo por conjuntos. El índice indica el conjun to q u e le corresponde a ese b loque d e m em o­

ria.

Ejem plo 2 .4

Ejemplo de las tres políticas de emplazamiento utilizando direcciones de memoria.

Si v o lv e m o s al e je m p lo 2.3, p o d e m o s rea liza r la m ism a d iscu s ió n , pe ro u tiliz a n d o en este caso la d ire cc ió n fís ica de l b lo q u e 5 de m e m o ria p rinc ipa l.

Page 103: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

S upo n g a m o s q u e la m e m o ria p rin c ip a l es de 2 GB (231 B), q u e el ta m a ñ o de pág ina es de 16 KB (214 B) y que el ta m a ñ o de b lo q u e es de 256 p a lab ras (1024 o 210B). E n tonces c u a lq u ie r d ire cc ió n q u e co rre sp o n d a al b lo q u e 5 de m e m o ria te n d rá el fo rm a to q u e se m uestra en la fig u ra .

§ ! c o—o'31

M e m o r iaV i r t u a l

N ? P á g in a V i r t u a l P O

x x x x x ••• x x x x x x x x x x x x

.......................................B B —

0 0 0 0 0 O O O O O O lO lx x x x x x x x x x

M e m o r iaV i r t u a l / P r i n c ip a l

- 5 M e m o r ia S i. P r in c ip a l / C a c h é

D ir e c t a

N ? M a r c o d e M P 1 P O

0 0 0 0 0 0 0 O O O O O O O O O O O lO lx x x x x x x x x x

«--------------------- 1 7 b i t s --------------------- •}«---------------------------- 1 4 b i t s ----------------------------- *

N a d e B lo q u e e n M P

000000000000000000101

B O

xxxxxxxxxx

-2 1 b i t s - - 1 0 b i t s -

E T IQ U E T A IN D IC E

0000000000000000001

1 9 b i t s

01B O

X X X X X X X X X X

2 b i t s 1 0 b i t s

Si la cachó es de em p la za m ie n to d ire c to , al in te rp re ta r la d ire cc ió n fís ica desde el p u n to de v is ta de la ca­ché, el ín d ice será de 2 b its (ya q u e ha y en la caché 22 m a rc o s d ife ren tes).

Y de l ín d ice se d e d uce q u e el b lo q u e 5 debe u b ic a rs e s ie m p re en el m a rc o 1 de cachó.En el caso de la cache asoc ia tiva , to d a la d ire c c ió n de b lo q u e es e tique ta y n o h a y ín d ice , ya q u e el b lo q u e

p u e de ub ica rse en c u a lq u ie r m a rc o de la m e m o ria cachó.Por ú lt im o , en el caso de la m e m o ria asocia tiva p o r c o n ju n to s de 2 vías, el ín d ice necesita 1 b it ( ten e m o s

21 c o n ju n to s d ife re n te s en la cachó). Y el v a lo r de l ín d ice no s ind ica q u e el b lo q u e 5 se debe u b ic a r s ie m p re en un m a rc o de l c o n ju n to 1 de la m e m o ria caché.

Directa IN DICE BO

Asociativa ETIQ U ETA BO

por conjuntos L ETIQ U ETA J IN DICE BO

Fig u r a 2 .7

In te rp re ta c ió n d e la d ire c c ió n f ís ic a d e s d e e l p u n to d e v is ta d e la m e m o r ia caché .

Page 104: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En cuanto al rendim iento d e los d istin tos tipos d e em plazam iento, las m em orias caché d e mayor asociatividad reducen los fallos por conflicto. Pero son m ás lentas, porque cuanto m ayor sea la asociativi- dad mayor será la longitud d e las etiquetas q u e deben alm acenarse y com pararse. Y m ás com paraciones deberán realizarse.

Existen dos reglas em píricas que se utilizan mucho p a ra escoger la asociatividad d e la m em oria ca ­ché:

• U na caché asociativa p o r conjuntos de 8 vías (8 m arcos p o r conjunto) se com porta , en cu an to a la tasa d e fallos, igual q u e una m em oria com pletam ente asociativa. Es decir, no com pensa que las memorias sean com pletam ente asociativas, ya q u e tienen los mismos fallos que las m em orias aso ­ciativas p o r conjuntos d e 8 vías pero son m ás lentas.

• U na caché d irecta d e tam año N tiene la m ism a tasa d e fallos q u e u n a asociativa p o r con jun tos de 2 vías (2 m arcos p o r conjunto) d e tam año N/2.

Y los sim uladores son d e nuevo herram ientas m uy potentes p a ra tom ar este tipo d e decisión.

2 .4 .1 .3 . P o l í t i c a d e r e e m p l a z a m i e n t o

A dem ás d e decid ir la po lítica d e em plazam iento d e la m em oria caché, tam bién es necesario definir qu é ocurre cuando se produce un fallo. Si no se encuen tra un determ inado b loque d e m em oria en la caché, hab rá q u e traerlo del siguiente nivel d e la je ra rq u ía d e m em oria. Pero, ¿qué b loque se reem ­plaza?

En el caso d e u n a caché directa, no cabe ninguna duda, puesto que cada bloque sólo puede alojarse a i un determ inado marco. Pero en el caso d e m em orias con u n a asociatividad mayor, el reem plazam iento puede hacerse con d istin tos tipos d e políticas.

Estas son las m ás com unes:

• Aleatoria. Se utiliza un generador d e núm eros aleatorios p a ra escoger el bloque que se reem plaza.• LRU (Least Recently Used). Se escoge el bloque q u e lleva m ás tiem po sin utilizarse. Así se m inim i­

za la probabilidad d e sustitu ir un bloque q u e vaya a necesitarse en el futuro (siguiendo d principio de localidad tem poral).

• FIFO (First In, First Out). Se reem plaza el b loque q u e lleva m ás tiem po en la caché.

2 .4 .1 .4 . P o l í t i c a d e e s c r i t u r a

Las lecturas son m ucho m ás frecuentes que las escrituras en la m em oria caché, pero no hay q u e des­cuidar estas ú ltim as ya que suelen ser m ás costosas.

Las escrituras llevan m ás tiempo ya que no pueden solaparse con la com paración d e las etiquetas como se hace con las lecturas. En m uchos casos se recupera la inform ación d e un m arco determ inado de caché an tes d e saber si el bloque que está ubicado en él es el que se es tá buscando. E sto sólo puede hacerse con operaciones de lectura, ya q u e si finalm ente el bloque no es el adecuado, no se h a modificado su contenido.

J^ro una op erad ó n d e escritura sólo puede hacerse a la com paración d e etiquetas d a com o resultado que el bloque ubicado en ese m arco es el q u e se estaba buscando; no se puede hacer trabajo en paralelo.

Hay d o s form as d e p lan tear las escrituras a i la m em oria caché:

• Escritura Directa. C uando se m odifica una palabra con una in strucdón d e alm acenam iento, se realiza la escritu ra en el prim er nivel d e caché y en el siguiente nivel d e la jerarquía.

• R>st-Escritura. C uando se m odifica u n a palabra sólo se hace en el prim er nivel de la m em oria ca ­ché. C uando este bloque modificado sea reem plazado, se actualizará d contenido del nivel siguien-

88

Page 105: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

te. Para no actualizar la m em oria con cada reem plazam iento q u e se haga (puede ser innecesario si en ese bloque no se h a llevado a cabo ninguna escritura), suele utilizarse un bit que indica si el bloque que está en caché h a sido modificado (sucio) y por lo tan to debe actualizarse la m em oria, o no (limpio).

La política de escritura d irecta garan tiza que las diferentes copias d e u n a misma inform ación que hay en la je rarqu ía d e m em oria se m antienen coherentes en todo m om ento y adem ás es fácil d e imple- mentar.

f t r o la política de post-escritura perm ite hacer escrituras consecutivas en u n m iañ o bloque sin ac tu a­lizar cada vez el siguiente nivel d e la je rarquía , sólo se actualiza cuando el bloque es reem plazado. Esto perm ite consum ir, p o r norm a general, mucho m enos ancho de banda del siguiente nivel d e la jerarquía, aunque im plica que du ran te u n tiempo las escrituras sólo están alm acenadas en un único nivel d e la je ­rarquía, p o r lo q u e m antener la coherencia implica com plicar el hardware.

Ejem plo 2 .5

Comparación del ancho de banda de mejora principal consum ido con las dos políticasde escritura.

T enem os un p ro ce sa d o r cuya frecu e n c ia de re lo j es de 2.5 GHz q u e realiza una m ed ia de 2-107 accesos a m em oria p o r segundo . La je ra rq u ía de m e m o ria está com pues ta p o r un ú n ic o n ive l de m e m o ria cachó u n if ic a ­da , co n tasa de fa llo s de l 12% y co n un ta m a ñ o de b lo q u e de 16 pa lab ras . En es te s is tem a, en m ed ia , un 70% de lo s accesos a m e m o ria son le c tu ra s y un 3 0 % son escritu ras.

Si la m e m o ria caché u tiliza e scritu ra d ire c ta , p o d e m o s ca lcu la r el a n ch o de banda de m e m o ria p rinc ipa l c o n s u m id o h a c ie n d o las s igu ien tes co n s id e ra c io n e s :

T ip o de acceso A cc io n e s T rá fic o co n MP

A c ie r to de le c tu ra Lectura en la m e m o ria cachó. 0

Fallo de lectura Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rinc ipa l para re so lve r el fa llo . Lectura en la m e m o ria cachó.

16 pa lab ras

A c ie r to de e s c ritu ra E scritu ra en la m e m o ria cachó y en la m e m o ria p rin c ip a l (escritu ra d irecta).

1 pa labra

Fallo de escritura Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rinc ipa l para re so lve r el fa llo . E scritu ra en la m e m o ria caché y en la m e m o ria p rin c ip a l (escritu ra d irecta).

17 pa lab ras

Ftor lo ta n to el a n ch o de banda c o n s u m id o es:

A B MP = re fe re n c ia s a m e m o r ia p o r s e g u n d o• (% fa /lo s d e lec tu ra • 16 + % a c ie r to s d e e sc r itu ra • 1 + % fa //o s d e escritu ra -1 7 )= 2 • 107 • (0.12 • 0.7 • 16 + 0 .88 • 0.3 • 1 + 0 .12 • 0 .3 • 17) = 4 .44 • 107 p a la b ra s p o r s e g u n d o

Si p o r el co n tra r io la m e m o ria cachó se d iseña para u tiliz a r una po lítica de pos t-escritu ra , te n ie n d o en cu e n ­ta q u e el 10% de lo s b lo q u e s son m o d if ic a d o s m ie n tra s se encuen tran u b ica d o s en la cachó:

Page 106: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Tipo de acceso Acciones Tráfico con MP

Acierto de lectura Lectura en la m e m o ria cachó. 0

Fallo de lectura con reemplaza­miento de bloque limpio (no ha sido modificado m ientras estaba en memoria cachó)

Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rin c ip a l para re so lve r el fa llo . Lectura en la m e m o ria cachó.

16 pa lab ras

Fallo de lectura con reemplaza­miento de bloque sucio (ha sido modificado mientras estaba en memoria caché)

Hay q u e lle v a r el b lo q u e su c io a m em oria p rin c ip a l para actua liza r to d as las escritu ra s q u e se habían h echo en m e m o ria caché.Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rin c ip a l para re so lve r el fa llo . Lectura en la m e m o ria cachó.

32 pa lab ras

Acierto de escritura Escritu ra en la m e m o ria cachó. 0

Fallo de escritura con reemplaza­miento de bloque limpio (no ha sido modificado m ientras estaba en memoria caché)

Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rin c ip a l para re so lve r el fa llo . Escritu ra en la m e m o ria cachó.

16 pa lab ras

Fallo de escritura con reemplaza­miento de bloque sucio (ha sido modificado mientras estaba en memoria caché)

Hay q u e lle va r el b lo q u e su c io a m em oria p rin c ip a l para actua liza r to d as las escritu ra s q u e se habían h echo en m e m o ria cachó.Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rin c ip a l para re so lve r el fa llo . Escritu ra en la m e m o ria cachó.

32 pa lab ras

Es decir, en el caso de la pos t-e sc ritu ra , las le c tu ra s y las escritu ra s t ie n e n el m is m o c o m p o rta m ie n to re s ­p e c to al c o n s u m o de a n ch o de banda de m e m o ria p r in c ip a l. Tenem os:

A B mp = re fe re n c ia s a m e m o r ia p o r s e g u n d o• (% fa llo s c o n re e m p la za m ie n to d e b lo q u e lim p io • 16 + % fa//os c o n re e m p la za m ie n to d e b lo q u e su c io • 32)= 2 • 107 * (0.12 • 0.9 • 16 + 0 .1 2 -0 .1 -32 )= 4 .22 • 101 p a la b ra s p o r s e g u n d o

Ejem plo 2 .6

Comparación del tiem po m edio de acceso a memoria con las dos políticas de escritura.

En el m is m o ca so de l e je m p lo a n te rio r, va m o s a c a lc u la r lo s t ie m p o s m e d io s de acceso a m e m o ria con cada una de las p o lít ic a s de escritu ra . S u p o n g a m o s para e llo q u e el t ie m p o de acce so a la m e m o ria cachó es de 4 ns, la la tencia de acceso a m e m o ria p rinc ipa l de 85 ns y q u e tra n s fe r ir una pa labra e n tre la m e m o ria p rinc ipa l y la m e m o ria cachó su p o ne 0 .5 ns ( t ^ J .

En el caso de la m e m o ria caché co n escritu ra d ire c ta te n em o s :

<mem (lectura) = t„ ianil + T F -p F

tMEM (escritu ra ) = tgcigrlo + la ten c ia MP + TF p F

En a m b o s casos la pena lizac ión p o r fa llo , te n ie n d o en cuenta q u e el ta m a ñ o de b lo q u e es de 16 pa lab ras es, s u p o n ie n d o q u e en cada acceso a m e m o ria p rin c ip a l se recupera una ún ica pa lab ra :

p F = 16 • p a ten c ia MP + tbus) = 16 • (85 + 0.5) = 1368 ns

Page 107: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

A u n q u e to d av ía n o h e m o s e s tu d ia d o o p tim iza c io n e s para la je ra rq u ía de m e m o ria , sí q u e p o d e m o s im a ­g in a r q u e las la te n c ia s de acceso a m e m o ria se pueden i r so lapando co n las tra n s fe re n c ia s p o r el bus , así que p o d e m o s su p o n e r que :

Y:

p F = 16 • (latenc¡aMP) = 16 • (85) = 1360 ns

*mem(lec tu ra ) = tuerto + TF • p F = 4 + 0 .12 • 1360 = 167.2 ns

tMEM (escritu ra ) = + la ten c ia MP + TF p F = 4 + 85 + 0.12 • 1360 = 252 .2 ns

En m ed ia :

tMEM = % lec tu ra • tMEM(/ectura) + % escritu ra • tMEM(escritura)= 0 .7 • 167.2 + 0.3 • 252.2 = 192.7 ns

En el caso de la p os t-escritu ra te n e m o s el m is m o c o m p o rta m ie n to para las le c tu ra s y las e scritu ras :

* M E M = t acierto + ^Raro la pena lizac ión p o r fa llo se m o d if ic a re sp e c to de la e scritu ra d irec ta :

p F = 16 • (la tenciaMP) + % s u c io s • 16 • (la tenciaMP)= 16 • (1 + % su c io s) • la ten c ia MP = 16 • 1.1 -8 5 = 1496 ns

Por lo que:

t ^ M = ^acierto + TF • p F = 4 + 0 .12 • 1496 = 183.52 ns

Se observa q u e las p re s ta c io n e s de la m e m o ria caché co n la po lítica de pos t-escritu ra son a lg o m e jo re s q u e co n la po lítica de e scritu ra d ire c ta , p e ro en c u a lq u ie r caso , el t ie m p o m e d io de acce so a m e m o ria q u e se con s ig u e sin n in g u na o p tim iza c ió n es su p e rio r a la la tenc ia de m e m o ria p rin c ip a l, p o r lo que , ta l y c o m o se ha d ise ñ a do esta je ra rqu ía de m em o ria , la in tro d u c c ió n de un n ive l de m e m o ria cachó n o c o n s ig u e m e jo ra r los t ie m p o s m e d io s de acceso.

Ejem plo 2 .7

Diseño de una jerarquía de memoria con dos niveles de caché: el p rim er nivel de escritura directa y el segundo nivel de post-escritura.

S u p o n g a m o s ahora q u e te n e m o s do s n ive les de m e m o ria cachó , a m b o s u n ific a d o s . La cachó de n iv e l 1 tie n e un ta m a ñ o de b lo q u e de 8 pa lab ras , un t ie m p o de acceso de 1 ns y una tasa de fa llo s de l 5% . La cachó de n ive l 2 t ie n e un ta m a ñ o de b lo q u e de 16 pa labras, un t ie m p o de acce so de 9 ns y una tasa de fa llo s de l 9% .

A d e m á s la cachó de n ive l 1 u tiliza escritu ra d ire c ta y la cachó de n ive l 2 u tiliza pos t-e sc ritu ra , co n un 26% de b lo q u e s q u e son m o d if ic a d o s m ie n tra s están u b ica d o s en ella.

La trans fe renc ia de una pa labra e n tre m e m o ria p rinc ipa l y la cachó de n ive l 2 su p o ne 0.5 ns y la tra n s fe ­rencia de una pa lab ra e n tre la m e m o ria cachó de n ive l 2 y la de n ive l 1 su p o ne 0.1 ns, y es to s t ie m p o s deben tenerse en cuenta para rea liza r lo s cá lcu lo s (n o se so lapan accesos y tran s fe ren c ia s ). La la tenc ia de acceso a m em oria p rin c ip a l es de 85 ns.

Con to d o s estos d a tos p o d e m o s ca lcu la r lo s t ie m p o s m e d io s de acceso a m e m o ria para lec tu ra y escritu ra , te n ie n d o en cuen ta q u e el p r im e r n ive l de cachó es de escritu ra d irec ta :

tu c u (lectura) = t ^ „ ol, + TFU p F L,

(escritura) = t„¡m L , + t ^ „ oLl + TFU p F u

Page 108: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En a m b o s casos la pena lizac ión p o r fa llo de l n ive l 1 es la m ism a :

pF u = 8 • (tL2 + tbusL1L2)

El t ie m p o m e d io de acce so a la cachó de n ive l 2 (ya q u e c u a n d o la cachó de n ive l 1 fa lla y se busca el b lo ­q u e en la cachó de n ive l 2 , ésta pu e de ace rta r o fa lla r) , se ca lcu la de la m ism a m anera :

¡L2 = ^aciertoL2 + F F ¡2 ' P F L2

Y c o m o la cachó de n ive l 2 es de pos t-e sc ritu ra :

P f l 2 = 16 • (1 + % su c io s ) • (latericia MP + t ^ UMfJ

* C u idado , cu a n do h a y m ás de un n ive l de cachó, se m ane jan d is t in to s ta m a ñ o s de b lo q u e a lo la rg o de la je ra rqu ía de m em o ria , p o r eso en esta exp re s ió n se u tiliza el ta m a ñ o de b lo q u e de 16 pa labras, m ie n tra s que en la de pFL1 se u tilizaba el ta m a ñ o de b lo q u e de 8 palabras.

Ftar lo ta n to :

p F u = 16 • (1 + 0.26) • (85 + 0.5) = 1723.68 ns

tL2 = 9 + 0.09 • 1723.68 = 164.13 ns

p F L1 = 8 • (164.13 + 0.1) = 1313.85 ns

^mem (lectura) = 1 + 0 .0 5 • 1313.85 = 66.69 ns

*mem [escritura) = tm¡fmíoLÍ + + TFn ' P Fn

= 1 + 9 + 0 .05 • 1313.85 = 75.69 ns

En m ed ia , si de n u e v o te n e m o s q u e un 7 0 % de lo s accesos son le c tu ra s y un 30% son e scritu ras :

tMEM = % /ec tu ra • tMM [lectura) + % escr itu ra • t ^ [ e s c r i t u r a )

= 0 .7 • 66.69 + 0 .3 • 75.69 = 69.39 ns

Es dec ir, g ra c ia s a la in tro d u c c ió n d e un se g u n d o n iv e l de cachó se c o n s ig u e q u e la je ra rq u ía de m e m o ria o b tenga un t ie m p o m e d io de acceso a m e m o ria p o r d e b a jo de la la te ric ia de m e m o ria p r in c ip a l. A ú n así, se pasa de lo s 85 ns q u e ta rd a en rea lizarse un acceso a m e m o ria p r in c ip a l, a 69.39 ns co n la je ra rq u ía de dos n ive les de cachó, n o com pensa in tro d u c ir toda la c o m p le jid a d de ge s tió n q u e suponen estas m e m o ria s cachó. V e re m o s un p o c o m ás ade lan te q u e ex is ten té cn ica s de d ise ñ o m u y senc illas q u e pueden m e jo ra r s ig n if ic a ti­va m e n te estos t ie m p o s .

Sea cual sea la política d e escritura escogida, casi todas las jerarqu ías d e m em oria actuales incorpo­ran u n a estructu ra hardw are denom inada buffer d e escritura para reducir la penalización extra que una escritura suele implicar. En este buffer se realizan las escrituras en prim era instancia para luego poder solapar la escritura en el siguiente nivel d e m em oria desde este buffer con la ejecución d e las siguientes instrucciones. O bviam ente, el buffer es u n a estructu ra pequeña y rápida, organizada com o u n a m em oria caché, por lo q u e realizar las escrituras en el buffer d e escritura implica u n a penalización mucho m enor que hacerlas directam ente en el siguiente nivel d e la je rarqu ía d e m em oria.

Hay dos posibilidades d e utilización del buffer de escritura según el tipo d e política d e escritura es­cogida:

• Escritura directa. C u an d o se u tiliza un buffer d e esc ritu ra en m em orias con esc ritu ra d irecta, las e scritu ras se hacen p a lab ra a p a lab ra en m em oria caché y en este buffer (en lugar d e en el siguiente nivel d e la je ra rq u ía ). El con ten ido d e este buffer se vo lcará al siguiente nivel para ac tua lizarlo en d o s situaciones: cuando esté lleno o cu an d o se p ro d u zca un fallo d e lec tu ra y sea necesario ac tua lizar el siguiente nivel con el con ten ido del buffer an tes d e resolver ese fallo (figura 2.8).

92

Page 109: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Volcado cuando está lleno o cuando hay un fa llo

F ig u r a 2 .8

U tiliz a c ió n d e un b u f fe r d e e s c r itu ra c o n u n a c a ch ó d e e s c r itu ra d ire c ta .

• Fbst-escritura: En el caso d e las m em orias con post-escritura, d buffer de escritura se utiliza para volcar los bloques sucios q u e van a ser reem plazados en m em oria caché (figura 2.9). D e esta form a, cuando se trae un b loque a la caché que reem plaza a u n bloque sudo , no hay q u e esperar a que se escriba el b loque sucio en el siguiente nivel, sino q u e se alm acena tem poralm ente en el buffer. En realidad la utilización del buffer en estos casos suele considerarse una optim ización d e la m e­m oria caché q u e perm ite reducir la penalización por fallo (d ar prioridad a los fallos), por lo que volveremos a hablar d e este caso en el capítulo 4 d e este libro. D e nuevo este buffer se vacía en dos situaciones: cuando se llena o cuando es necesario actualizar el siguiente nivel d e la je rarqu ía de m em oria antes d e resolver u n fallo.

En algunos casos, el buffer de escritura es m ás sofisticado y aprovecha p a ra actualizar el siguiente nivel d e la je rarqu ía d e m em oria en los m om entos d e inactividad.

F ig u r a 2 .9

U tiliz a c ió n d e un b u f fe r d e e s c r itu ra c o n u n a caché d e p o s t-e s c r itu ra .

Page 110: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 2 .8

Ejemplo de utilización de un buffer de escritura con una caché de escritura directa.

S u p o n g a m o s q u e en el e je m p lo 2 .5 , en el caso de la escritu ra d irec ta , in c lu im o s en el d ise ñ o de la je ra r­quía de m e m o ria un b u ffe r de e sc ritu ra q u e en el 8 5 % de lo s casos ev ita te n e r q u e rea liza r las escritu ra s en la m em oria p rinc ipa l.

Es decir, el 8 5 % de las veces q u e se va a rea liza r la e scritu ra d irec ta en m e m o ria p rin c ip a l, se pu e de ha ­c e r en el b u ffe r (c u y o t ie m p o de acceso es d e sp re c ia b le si se co m p a ra co n la la tenc ia de acce so de m e m o ria p rinc ipa l) s in c o n s u m ir a n ch o de banda de m e m o ria p rin c ip a l. El o tro 15% de las veces, el b u ffe r está l le n o u o cu p a d o co n ta re a s de ge s tió n y /o ac tua lizac ión , p o r lo q u e n o queda m ás re m e d io q u e rea liza r la escritu ra d irecta en m e m o ria p rin c ip a l.

Sin u tiliz a r b u ffe r de escritu ra , el a ncho de banda q u e se con su m ía era de 4 .44-107 pa lab ras/s . Veam os ahora:

Tipo de acceso Acciones Tráfico con MP

Acierto de lectura Lectura en la m e m o ria cachó. 0

Fallo de lectura Hay q u e tra e r 1 b lo q u e de m e m o ria p rinc ipa l para re so lve r el fa llo . Lectura en la m e m o ria cachó.

16 pa lab ras

Acierto de escritura con acierto del buffer de escritura

Escritu ra en la m e m o ria caché y en el b u ffe r de e scritu ra (escritu ra d ire c ­ta).

0

Acierto de escritura con fallo del buffer de escritura

Escritu ra en la m e m o ria cachó y en la m em oria p rin c ip a l (escritu ra d irec ta ).

1 pa labra

Fallo de escritura con acierto del buffer de escritura

Hay q u e tra e r 1 b lo q u e de m e m o ria p rinc ipa l para re so lve r el fa llo . Escritu ra en la m e m o ria cachó y en el b u ffe r de e scritu ra (escritu ra d ire c ­ta).

16 pa lab ras

Fallo de escritura con fallo del buffer de escritura

Hay q u e tra e r 1 b lo q u e de m e m o ria p rinc ipa l para re so lve r el fa llo . Escritu ra en la m e m o ria cachó y en la m em oria p rin c ip a l (escritu ra d irec ta ).

17 pa lab ras

Ftor lo ta n to el a n ch o de banda c o n s u m id o es:

A B MP = re fe re n c ia s a m e m o r ia p o r s e g u n d o • (% fa llo s • 16 + % escritu ra c o n fa llo d e B E • 1) =2 • 107 • (0.12 • 16 + 0 .3 • 0 .15 • 1) = 3.93 • 101 p a la b ra s p o r s e g u n d o

Es decir, g rac ias al b u ffe r de e scritu ra se co n su m e m e n o s a n cho de banda co n m e m o ria p rin c ip a l q u e en el caso de la escritu ra d ire c ta (4.44 • 107/3 .9 3 • 107 = 1.13).

Page 111: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Ejem plo 2 .9

Comparación con el tiem po m edio de acceso a memoria con escritura directasin y con buffer de escritura

En el e je m p lo 2.6 ya ca lcu la m o s el t ie m p o m e d io de acceso a m e m o ria co n una cachó de escritu ra d irec ta sin b u ffe r de e sc ritu ra , ve am os aho ra c ó m o a fecta a este t ie m p o la in c lu s ió n de este bu ffe r.

S ó lo a fectará el t ie m p o m e d io de acceso para e sc ritu ra , v a m o s a su p o n e r q u e el t ie m p o de e scritu ra en el b u ffe r es d e sp re c ia b le si se com para co n la la tenc ia de m e m o ria p r in c ip a l ( t ^ = 0):

tMEM (escritura) = taagrt0 + TFBE (la tencia MP) + (1 - TFBE) • tBE + TF • p F

Es dec ir, só lo se escribe en m e m o ria p rinc ipa l cu a n do fa lla el b u ffe r de escritu ra , el re s to de escritu ra sd irec ta s se hacen so b re el b u ffe r s in n in g u na pena lizac ión en este caso.

La pena lizac ión p o r fa llo n o ca m b ia re s p e c to de l caso sin b u ffe r:

p F = 16 • (la tenciaMP) = 16 • (85) = 1360 ns

Y:

tMEM = (lec tura) = 167.2 ns

tMEM (escritura) = + TFBE(la tenciaMP) + (1 - TFBE) • tBE + TF ■ p F =4 + 0 .1 5 - (85) + 0.12 • 1360 = 179.95 ns

Y en m ed ia :

tMEM = % lec tu ra • tMEM(lectura) + % esc r itu ra • tMEM(escritura) = 0.7 • 167.2 + 0 .3 • 179.95 = 171.02 ns

Es decir, g rac ias al b u ffe r de escritu ra , el t ie m p o m e d io de acceso a m e m o ria se m e jo ra en un 13%(192.7 /171.02 = 1.13). La m e jo ra n o es m ás s ig n ifica tiva p o rq u e las escritu ra s son p o c o frecuen tes .

Por últim o, en el caso de algunas jerarqu ías d e m em oria, p a ra evitar la penalización extra q u e las es­critu ras implican se ignoran los fallos d e escritura, especialm ente en el caso de las m em orias d e escritura directa.

Por lo tan to suelen encontrarse dos opciones:

• Memoria caché con asignación en escritura. Los fallos d e escritura se com portan com o los fallos de lectura, se trae el bloque q u e h a provocado d fallo a la m em oria caché y se realiza la escritura en función d e la política utilizada.

• Memoria caché sin asignación en escritura. C uando se produce un fallo d e escritura, el b loque se modifica directam ente en d siguiente nivel d e la je rarqu ía de m em oria y no se trae a la caché. Sólo se llevan a la caché los bloques q u e se solicitan p a ra lectura, no p a ra escritura.

Aunque cualquier com binación es posible, las cachés con política d e escritura d irecta son las que sue­len ser sin asignación en escritura, m ientras que las cachés con post-escritura suelen ser con asignación.

Ejem plo 2 .1 0

Ejemplo de caché con escritura directa sin asignación en escritura.

Si u tiliza m o s de n u e vo el e je m p lo 2.5 en el caso de escritu ra d irec ta , ve am os c ó m o se m od ifica ría el a n cho de banda co n m e m o ria p rin c ip a l c o n s u m id o si n o se reso lv ie ra n lo s fa llo s de escritu ra :

Page 112: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

T ip o de acceso A cc io n e s T rá fic o co n M P

A c ie r to de le c tu ra Lectura en la m e m o ria cachó. 0

Fallo de lectura Hay q u e tra e r 1 b lo q u e de m e m o ­ria p rin c ip a l para re so lve r el fa llo . Lectura en la m e m o ria cachó.

16 pa lab ras

A c ie r to de e sc ritu ra Escritu ra en la m e m o ria cachó y en la m e m o ria p rinc ipa l (escritu ra d irecta).

1 pa labra

Fallo de escritura Escritura en la m e m o ria p rinc ipa l (escritu ra d irecta).

1 pa labra

Ftor lo ta n to el a n ch o de banda c o n s u m id o es:

A B mp = re fe re n c ia s a m e m o r ia p o r s e g u n d o • (% fa llo s d e lec tu ra • 16 + % escritu ra • 1) = 2 • 107 • (0.12 • 0.7 • 16 + 0.3 • 1) = 3.29 • 101 p a la b ra s p o r s e g u n d o

En e s te ca so c o n s e g u im o s u n a m e jo ra de un 3 5 % (4 .44 • 107/3 .2 9 • 107 = 1.35).

Ejem plo 2.11

Comparación del tiem po m edio de acceso a memoria con escritura directa siny con asignación en escritura

En el e je m p lo 2.6 ya ca lcu la m o s el t ie m p o m e d io de acceso a m e m o ria co n una cachó de escritu ra d irec ta con as ig n a c ió n en escritu ra , ve am os ahora c ó m o a fecta a este t ie m p o el n o re so lve r lo s fa llo s de escritu ra .

S ó lo a fectará el t ie m p o m e d io de acceso para e sc ritu ra , y te n em o s :

tMEM fescr itu ra j = (1 - TF) • + C ie n c ia MP) + TF • (la ten c ia MP)

Es dec ir, si se ac ie rta en escritu ra , se escribe en m e m o ria cachó y en m e m o ria p rin c ip a l (p o rq u e es e sc ri­tu ra d irec ta ). Pero si se p ro d u c e un fa llo de escritu ra , n o se resue lve y se e sc ribe d ire c ta m e n te en m e m o ria p rinc ipa l.

Tenem os:

t m e m I lec tu ra ) = 167.2 ns

tMEM fescritura) = (1 - TF) • (tactgrl0 + la tenc iaMP) + TF • \JatenciaMP) = 0.88 • (4 + 85) + 0.12 • (85) = 88.52 ns

Y en m ed ia :

tMEM = % /ec tu ra • tMEM (lectura) + % escritu ra • tMEM (escritu ra ) = 0 .7 • 167.2 + 0.3 • 88 .52 = 143.60 ns

Es decir, g ra c ia s a la u tiliza c ió n de una cachó sin as ignac ión en escritu ra , el t ie m p o m e d io de acce so a m e ­m oria se m e jo ra en un 34% (192 .7 /143.60 = 1.34).

Page 113: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Ejem plo 2 .1 2

Diseño de una jerarquía de memoria con dos niveles de caché: el prim er nivel de escritura directa sin asignación en escritura y el segundo nivel de post-escritura

con asignación en escritura

Si u tiliza m o s lo s m is m o s d a tos q u e en el e je m p lo 2 .7 , co n d o s n ive le s de m e m o ria cachó, te n e m o s :

(lec tura) = tXWHoL, + TFU p F u

(escritu ra ) = (1 - TFU) ■ + TF„ ■ (tl2 )

Es dec ir, só lo se m o d ific a el t ie m p o m e d io para las escritu ras. S i la caché de n ive l 1 ac ie rta en escritu ra , la escritu ra se rea liza en el n ive l 1 y en el n ive l 2 (escritu ra d ire c ta ), en el q u e s ie m p re se ac ie rta p o r el p r in c ip io de in c lu s ió n . S in e m b a rg o , si la cachó de n ive l 1 t ie n e un fa llo en escritu ra , este fa llo n o se resu e lve y se escribe d ire c ta m e n te en el n ive l 2. Pero en es te caso , ya n o se sabe s e g u ro s i se ac ie rta o se fa lla , p o r eso aparece el t ie m p o m e d io de acce so al n ive l 2:

*12 ~ ta d e r to L2 + ^ L2 ' P ^ L 2

Ftar lo ta n to :

pF L2 = 16 • (1 + 0.26) • (85 + 0.5) = 1723.68 ns

t u = 9 + 0.09 • 1723.68 = 164.13 ns

p F L1 = 8 • (164.13 + 0.1) = 1313.85 ns

u (lectura) = 1 + 0.05 • 1313.85 = 66.69 ns

tMEM(escritu ra ) = (1 - TFU ) ( ^ o£/ + + TFU • ( fc ) = (1 - 0.05) • (1 + 9) + 0.05 • (164.13) = 17.71 ns

En m e d ia , si de n u e v o te n e m o s q u e un 7 0 % de lo s accesos son le c tu ra s y un 30% son e scritu ras :

tMEM = %olectura • tMEMf/ectura) + % escr itu ra • tMEM(escritura) = 0 .7 • 66.69 + 0 .3 • 17.71 = 52 ns

A sí q u e co n s e g u im o s un sp e e d u p de 1.33 g rac ias a la u tiliza c ió n de una cachó de n ive l 1 s in as ig n a c ió n en escritu ra en el p r im e r n ive l de la je ra rq u ía (69.39/52 = 1.33).

2 .4 .1 .5 . M e j o r a s s e n c i l l a s

En los ejem plos d e la sección an terio r se h a conseguido m ejorar el tiem po m edio de acceso a m em oria que se obtiene cuando sólo se utiliza la m em oria principal cuando se han utilizado d o s niveles d e m e­m oria caché, pero no cuando se h a utilizado un único nivel. E incluso al utilizar dos niveles d e m em oria caché, esta m ejora respecto de la m em oria principal no h a sido suficientemente significativa com o para justificar la introducción d e u n a jerarqu ía d e m em oria.

Estos prim eros ejemplos, trem endam ente am plificados, no incorporan las técnicas d e diseño básicas que siempre utilizan las m em orias caché actuales. A unque en el capítulo 4 se estudiarán m ultitud d e técni­cas d e m ejora d e rendim iento para la m em oria caché, algunas d e estas técnicas (al igual que ocurre con la segmentación del procesador) se consideran básicas y se utilizan directam ente en casi tod o s los diseños.

Entre estas técnicas se encuentran las d e palabra crítica prim ero y rearranque rápido. Estas e s tra ­tegias d e d iseño aprovechan el hecho d e que norm alm ente d procesador es tá esperando sólo p o r una palabra del bloque p o r el que se h a p ro d u d d o un fallo, no p o r el bloque com pleto.

Por lo tan to , no es necesario esperar a q u e el bloque com pleto se traiga del siguiente n ivd d e m em oria para q u e el procesador pueda com enzar a trabajar con la palabra que necesita.

Page 114: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Estas técnicas sólo suponen un beneficio cuando el tam año del bloque d e caché es considerable, pero en estos casos, aum entan significativamente las prestaciones si la localidad espacial del código q u e se ejecuta no es m uy acusada. D e ser así, hay que tener en cuen ta q u e la siguiente palabra que solicitará el procesador será justo la siguiente palabra del mismo bloque, p o r lo q u e al final con toda probabilidad habrá q u e esperar a traer a la caché el bloque com pleto.

La diferencia en tre estas d o s técnicas es la siguiente:

• Palabra crítica primero. Se envía primero a la caché la palabra que ha provocado d fallo para que d procesador pueda com pletar su acceso y seguir trabajando, y luego se transfiere el resto del bloque.

• Rearranque rápido. En este caso el bloque se trae en orden a la m em oria caché, y en cuanto llega la palabra crítica (la q u e h a provocado d fallo), se perm ite q u e el procesador siga trabajando.

La técnica d e palabra crítica prim ero consigue mejores prestaciones, ya que sólo hay q u e esperar a que se envíe una palabra a la m em oria caché m ientras que con rearranque rápido, en media, hay que esperar a que se envíe la m itad del b loque Sin em bargo, con palabra crítica prim ero el hardw are es algo m ás com plicado, ya q u e hay que gestionar el envío d e bloques desordenados a m em oria caché.

Además de estas técnicas tam bién se aprovecha, siempre que sea posible, el parald ism o entre los ac­cesos a m o n o n a y las transferencias d e inform ación en tre los diferentes niveles d e la je rarqu ía así com o la posibilidad d e ir solapando las transferencias q u e se producen en tre los d istin tos niveles para resolver un fallo. P or ejem plo, si se trabaja con d o s niveles de caché, se puede ir enviando d e la caché d e nivel 2 a la caché d e nivel 1 lo q u e se es tá trayendo a la caché d e nivel 2 desde la m em oria principal.

Ejem plo 2 .1 3

Ejemplo de utilización de la técnica de palabra crítica prim ero.

V o lva m o s al e je m p lo 2.6. R eco rdem os q u e en este e je m p lo te n e m o s un p ro ce sa d o r cuya frecu e n c ia de re lo j es de 2.5 GHz q u e rea liza una m ed ia de 2-107 accesos a m e m o ria p o r segundo.

La je ra rqu ía de m e m o ria de es te d ise ñ o está co m p u e s ta p o r un ú n ic o n ive l de m e m o ria cachó u n ificada , co n tasa de fa llo s de l 12% y co n un ta m a ñ o de b lo q u e de 16 pa labras. En este s is tem a, en m ed ia , un 70% de lo s accesos a m e m o ria son le c tu ra s y un 30% son escritu ras. S u p o n g a m o s q u e es tam os en el caso de escritu ra d irecta .

A d e m á s , el t ie m p o de acceso a la m e m o ria cachó es de 4 ns y la la tenc ia de m e m o ria p rin c ip a l es de 8 5 ns. El t ie m p o necesario para tra n s fe r ir una pa lab ra en tre m e m o ria p rin c ip a l y m e m o ria cachó es de 0 .5 ns.

C on esta je ra rq u ía s in n in g u n a o p tim iza c ió n (s im p le m e n te s u p o n ie n d o q u e se p od ían so la p a r lo s accesos a m e m o ria co n las tran s fe ren c ia s de bus), ca lcu la m o s que:

p F = 16 • (latericiaMP) = 16 • (85) = 1360 ns

Y:^M EM ^ctura) = + TF • p F = 4 + 0 .1 2 • 13 6 0 = 1 6 7 .2 ns

t ^ J e s c r i t u r a j = ¿««*0 + latericiaMP + TF • p F = 4 + 8 5 + 0 .1 2 • 1 3 6 0 = 2 5 2 .2 ns

Ftor lo q u e en m ed ia te n ía m o s :

tMEM = % /ec tu ra • tMEJ le c tu r a ) + % escritu ra • tMEM(escritura) = 0 .7 • 167.2 + 0.3 • 252.2 = 192.7 ns

Ya hab íam os avanzado q u e este t ie m p o m e d io de acceso a m e m o ria es co m p le ta m e n te in to le ra b le para un p ro ce sa d o r ac tua l y adem ás es m a y o r q u e la la tenc ia de acceso a m e m o ria p rinc ipa l.

Sin e m b a rg o , si u tiliza m os pa labra c rítica p rim e ro , la pena lizac ión p o r fa llo só lo in c lu ye el t ie m p o q u e se ta rda en re c u p e ra r de m e m o ria p rin c ip a l y en env ia r a la m e m o ria caché la pa lab ra q u e ha p ro v o c a d o el fa llo .

Page 115: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

n o es nece sario espe ra r a recu p e ra r y e n v ia r el re s to de p a lab ras de l b lo q u e para q u e el p ro c e s a d o r pueda segu ir tra b a ja n d o .

Pór lo ta n to :

p F = 1 • (la ten c ia MP + tbus) = 1 • (85 + 0.5) = 85 .5 ns

Y:tMEM(lectura) = íTOarí0 + TF • p F = 4 + 0.12 • 85.5 = 14.26 ns

tmem(escritura) = tacigrro + la ten c ia MP + TF ■ p F = 4 + 85 + 0.12 • 85.5 = 99.26 ns

En m ed ia :

tMEM = %olectura • tMEM(lectura) + % escritu ra • tMEM(escritura) = 0.7 • 14.26 + 0.3 • 99.26 = 39.76 ns

Es dec ir, co n s e g u im o s un sp e e d u p de 4 .83 g ra c ia s a esta o p tim iz a c ió n (192.85/39.76 = 4.85).

Ejem plo 2 .1 4

D is e ñ o d e u n a je r a r q u ía d e m e m o r ia c o n d o s n iv e le s d e c a c h é : e l p r im e r n iv e l d e e s c r i tu r a d ir e c ta s in a s ig n a c ió n e n e s c r i tu r a y e l s e g u n d o n iv e l d e p o s t - e s c r i t u r a c o n a s ig n a c ió n

e n e s c r i tu r a . A m b o s u t i l iz a n la t é c n ic a d e p a la b ra c r í t ic a p r im e r o .

R e tom em os ahora el e je m p lo 2.12, en el q u e hab ía m o s c o n s e g u id o el m e jo r t ie m p o de acceso a m e m o ria hasta el m o m e n to :

W J 'B c tu r a ) = tKllrrol, + TFL, ■p F L,

tUE„(escr¡tura) = (1 + TFU ) ■ ( f „ „ , o£, + í „ OTo£j) + TFL, ■ (f£2)

S i se u tiliza la té cn ica de pa lab ra crítica p r im e ro , en el c á lcu lo de las pena lizac iones p o r fa llo só lo ha y que te n e r en cuen ta el t ie m p o q u e se ta rd a en tra e r una pa lab ra a cada n iv e l de m e m o ria (la q u e ha p ro v o c a d o el fa llo ) en lu g a r de l t ie m p o q u e se ta rd a en tra e r un b lo q u e co m p le to . El re s to de l b lo q u e se trae , p e ro el p ro c e ­s a d o r ya pu e de es ta r tra b a ja n d o m ie n tra s ta n to .

Por ta n to :

P ^ L I ~ ^L2 + tb u s L IL 2

?L2 = ^adortoL2 + ^ L2 ' P ^L2

pFL2 = (la tenciaMP + t ^ ^ p ) + % su c io s - 1 6 - (la tenciaMP + t ^ ^ p )

A s í que:

pF L2 = (8 5 + 0.5) + 0.26 • 16 • (85 + 0.5) = 441 .18 ns

t ^ = 9 + 0 .09 • 441 .18 = 48.71 ns

pF L1 = (48.71 + 0.1) = 48.81 ns

tMEM(lectura) = 1 + 0 .05 • 48.81 = 3 .44 ns

tMEM(escritu ra ) = (1 - TFU ) • ( f ^ , , +tacieftoL2) + TFL, ■ (tL2) = (1 - 0.05) • (1 + 9) + 0 .05 • (48.71) = 11.94 ns

En m ed ia , si de n u e v o te n e m o s q u e un 7 0 % de lo s accesos son le c tu ra s y un 30% son e scritu ras :

tMEM = %>lectura • t ^ ( l e c t u r a ) + % escr itu ra • tMEM(escritura) = 0 .7 • 3 .44 + 0.3 • 11.94 = 5 .99 ns

Q ue se acerca m u c h o m ás a lo s t ie m p o s de acce so necesarios para lo s s is tem as ac tua les q u e lo s t ie m p o s o b te n id o s en el e je m p lo 2 .12.

Page 116: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

2.4.2. Diseño de la memoria principal

Los chips d e m o n o n a se com ponen siempre de m atrices cuadradas d e celdas D R A M , cada u n a de estas celdas alm acena u n b it y se com pone d e u n transistor y un condensador (figura 2.10).

F ig u r a 2 .1 0

O rg a n iz a c ió n d e u n a m e m o r ia D R A M .

Cuando se produce un fallo en el último nivel d e la m em oria caché y se p asa a la m em oria principal, cari siempre es necesario p asar p o r un con tro lador d e m em oria q u e gestione d e m anera adecuada los accesos a la m em oria principal. Este con tro lador puede estar integrado dentro del propio procesador, o puede encontrarse en un chipset o h u b externo.

Como se h a m encionado con anterioridad, el con tro lador d e m em oria se encarga d e realizar la p lan i­ficación d d acceso y d e m apear la dirección física a la ubicación física del da to en la m em oria principal. Es ded r, traduce la dirección física p ara saber qué ch ip o ch ips deben ser accedidos, q u é m atrices d e m e­m oria dentro d e este ch ip o chips y en q u é filas y colum nas se encuentran los bits q u e deben recuperarse (en la figura 2.11 no se m uestra la traducción d e d irecdón virtual a física p o r simplificar, pero hay que recordar q u e el procesador no genera directam ente d irecdones físicas).

R ira com prender el funcionam iento y el diseño de u n a m em oria principal básica co n un poco m ás de profundidad es necesario com prender la evolución d e las diferentes tecnologías d e m em oria desde la D R A M convencional hasta las actuales m em orias D D R 3 o R D R A M .

Esto es debido a q u e en el caso d e una m em oria p rindpa l sin optimizar, la mayor parte d e las decisio­nes están asociadas a la tecnología u tilizada y por lo tanto, a la latencia d e la m em oria. En el capítulo 4 de este libro se estudiarán técnicas d e diseño m ás sofisticadas que perm itirán m ejorar el rendim iento de estas m em orias básicas en cuanto a su ancho d e banda, y q u e no tendrán relación con la tecnología con la q u e se fabrica la m em oria sino con su organización.

2 .4 .2 .1 . D R A M c o n v e n c io n a l

Este tipo d e m em oria h a quedado obsoleto, pero prácticam ente todas las m em orias que se utilizan en la actualidad provienen d e realizar m ejoras y optim izaciones a este m odelo básico de funcionam iento para la m em oria principal.

El procesador vuelca una dirección en el bus d e direcciones y d con tro lador d e m em oria decodifica esta dirección para determ inar qué chip o chips deben ser accedidos y qué m atrices d e inform ación dentro de estos chips (rango y banco).

Page 117: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

P roce sado r

Rango/Fila/Banc o/Columna •

F ig u r a 2 .1 1

O rg a n iz a c ió n d e l c o n tro la d o r d e m e m o r ia .

A continuación, d con tro lador envía a estas m atrices la dirección d e fila y la valida m ediante una señal d e tipo R A S (Raw Address Strobe). Se recupera la fila com pleta y se envía la dirección d e colum na que corresponde a la inform ación buscada, validándola d e nuevo, en este caso con una señal de tipo CAS (Column A ddress Strobe).

La m em oria D R A M convencional desaprovecha m uchos recursos porque al direccionar una fila de una m atriz, se recupera la fila com pleta, y a continuación se extrae la colum na d e esta fila a la que se quiere acceder (figura 2.12).

í^ ro si a continuación se accede a o tra colum na de la m ism a fila (algo m uy com ún debido al principio de localidad), se vuelve a realizar el m ismo proceso com pleto.

2 .4 2 .2 F P M D R A M

La F P M D R A M (F ast Page M ode D R A M ) introduce d o s m ejoras a la D R A M convencional, la división d e la m em oria en páginas y los accesos en m odo burst.

En prim er lugar la m em oria se divide en páginas y se introduce u n a electrónica q u e perm ite que los accesos q u e se encuentran en la m ism a página que u n acceso previo se realicen con m enos número de ciclos d e espera. L a m anera d e llevar esto a cabo es que cada página se corresponda justo con todas las celdas en u n a misma fila d e la m atriz del ch ip de m em oria.

D e esta m anera, m ientras los accesos se m antengan en la m ism a fila, se puede m antener la dirección de fila cargada y sólo hay q u e ir m odificando la dirección d e la colum na.

En segundo lugar, los accesos en m odo burst perm iten que, una vez que se realiza d acceso a una determ inada colum na, se puede acceder a las tres siguientes colum nas d e esa fila sin necesidad d e volver a cargar la fila en el driver d e da to s (figura 2.12). Las m em orias típicas de esta tecnología son 5-3-3-3, es

Page 118: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

r v . / D i r e c c ió n \ / D ire c c ió n \ / D i r e c c ió n \ / D ire c c ió n \D i r e c c i ó n * F l|a d e C o l u m n a / d e R ía C o lu m n a 1 / --------

D a t O S ------------------------------------------------------------------------------------------------D a ta OUT Sfí®

DRAMConvencional

O U T

D irecc ión

D atos

/ D i r e c c ió n d e R ía

\ / D i r e c c i ó n \ / f a r e c c i ó n X / í > e c c ¡ ó n \ / D i r e c c ió n ' '/ \ d e C o h u m n / \ d e C o lu m n a / \ d e C o l u m n a / \ d e C o lu m n a

-< ta OUT ^ -

D RAMFPM

F ig u r a 2 .1 2-------------------------------------------------------------------------------------------------------------------------------------------C ro n o g ra m a s d e a cce so a m e m o r ia d e las d ife re n te s te c n o lo g ía s a s in c ro n a s

de m e m o r ia p r in c ip a l.

decir, d prim er acceso ta rd a 5 ciclos y los tres siguientes ta rdan 3 ciclos porque ya no tienen que recuperar la fila com pleta (ya está disponible), sólo la colum na.

2 .4 .2 .3 . E D O D R A M Y B E D O D R A M

Las m em orias Extended D a ta O u t D R A M o ED O D R A M , m ejoran la tem porización d e los accesos a m an o ria .

Con esta m ejora se perm ite so lapar la lectura del driver d e d a to s por p a rte del con tro lador d e m e­m oria con d direccionam iento de la siguiente colum na en los accesos en m odo burst. Es decir, se puede com enzar un nuevo acceso sin que todavía haya finalizado el an terio r (figura 2.12). Con esta técnica se consiguen m em orias 5-2-2-2.

O bviam ente d prim er acceso sigue tardando 5 ciclos en m edia, pero al aprovechar el paralelism o para los tres accesos siguientes, estos m ejoran sus prestaciones.

Las m em orias B urst Extended D a ta O u t (BED O D R A M ) dan un paso m ás y devuelven directam ente los cuatro valores que vienen determ inados p o r la dirección de fila y colum na especificadas, ese valor en concreto y los tres siguientes (figura 2.12).

Page 119: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

2 .4 .2 .4 . S D R A M o D R A M S ín c r o n a

Todas las tecnologías anteriores son asincronas, es decir, utilizan sus prop ias señales d e sincroniza­ción para realizar los accesos a m em oria. Pero la utilización d e estas señales introduce bastan te latencia y retardos innecesarios.

Por este motivo la siguiente m ejora q u e se in trodujo en las m em orias fue convertirlas en síncronas, utilizando para ello el reloj global d d sistema (figura 2.13). Al no utilizar señales propias d e ancron i- zad ó n , las m em orias pueden funcionar en m odo 5-1-1-1. A partir de este tipo d e memoria, to d as las tecnologías han sido síncronas.

C ro n o g ra m a s d e a cce so a m e m o r ia d e las d ife re n te s te c n o lo g ía s s ín c ro n a sde m e m o r ia p r in c ip a l.

2 .4 .2 .5 . D D R , D D R 2 Y D D R 3

La m em oria D D R transfiere inform ación dos veces a i cada ciclo de reloj, u n a vez en el flanco de subida y o tra vez en el flanco d e bajada (figura 2.13).

Con esta técnica se puede llegar p o r prim era vez a frecuencias de m em oria principal de 400 M H z. Cuando fue necesario funcionar a frecuoicias todavía mayores surgió la tecnología D D R 2, que introdujo las siguioites mejoras:

• Las señales son diferoiciales (esta técnica de señalización se estud iará en el capítulo 4), lo q u e per­mite trabajar a mayores frecuoicias sin tener p ro b lan as con el ru ido o las interferaicias.

• P ira trabajar a estas frecuencias tan altas y no tener problem as con d calor, se reduce la te n só n de alim entadón, d e 2.5 V de las D D R a 1.8 V.

Y la tecnología D D R 3 reduce de nuevo la ta is ió n de alim entadón para seguir aum entando la fre­cuencia de trabajo de la m em oria hasta 1900 M H z. Pero tan to D D R 2 com o D D R 3 siguen m anteniendo las dos transfera ic ias de da to s p o r ciclo.

Page 120: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

2.4 .2 .Ó . R D R A M Y X D R D R A M

La tecnología R D R A M consigue un rendim iento bastante alto en lo que se refiere al ancho de b an ­da, pero su elevado coste y consum o d e potencia, sus elevadas latencias, así com o la fa lta d e apoyo de los fabricantes d e chipsets y placas base impidió inicialm ente q u e se extendiera en las arquitecturas de consumo.

Todas las tecnologías de m em oria D R A M desarrolladas hasta el m om ento utilizan canales de m em o­ria d d mismo ancho q u e el bus d e m em oria y el bus d d sistem a (64 bits).

f t r o esta tecnología propone aproximarse m ás a la com unicación serie, con un canal de m em oria m ás estrecho pero m ás rápido. E ste canal se denom ina Ram bus, tiene u n a anchura d e 16 b its y funciona a frecuencias d e hasta 533 M H z, perm itiendo d o s transferencias por ciclo de rd o j. E ste canal utiliza un protocolo d e transferencia basado en paquetes y perm ite la multiplexación en el tiem po p a ra la transfe­rencia d e direcciones y d e datos.

Al R am bus pueden conectarse hasta 32 chips d e R D R A M en serie, pero todas las transferencias se realizan en tre el con tro lador d e m em oria y un chip, no en tre los chips. Existen diferentes topologías de R D R A M según el núm ero d e canales q u e soporte el con tro lador d e m em oria.

La tecnología sucesora d e la R D R A M h a sido X D R D R A M (eXtrem e D ata R ate D R A M ), mucho m ás extendida ya q u e está riendo la tecnología m ás utilizada en las videoconsolas. Por ejemplo la Play­station 3 incorpora este tipo de m em oria.

Las principales diferencias en tre la m em oria X D R D R A M y su predecesora R D R A M son la gran m ejora a i las latencias d e los chips, el increm oito d e la frecuoicia del bus hasta 800 M H z, la posibilidad de q u e este bus tenga u n a anchura de 32 bits y la utilización de O D R (Octal D a ta Rate), es decir, hacer ocho transferencias p o r ciclo d e reloj.

2.4.3. Diseño de la memoria virtual

La m em oria virtual se incluye en la je rarqu ía d e m em oria, principalm ente por los rigu io ites tres motivos:

• P erm ite q u e varios procesos c o m p artan la m em oria p rinc ipal del sistem a d e m anera eficiente, hab ilitando m ecanism os d e p ro tección del espacio d e d irecciones d e cad a uno d e los procesos. Este prob lem a no está resuelto en los niveles d e la je ra rq u ía q u e están m ás cercanos al p roce­sador.

• í^ rm ite que un proceso q u e necesita m ás m em oria principal que la disponible en el sistema pueda g'ecutarse.

• í^ rm ite independencia d e las referencias con respecto a la localización d e los procesos a i m em oria principal.

Como se h a m encionado con anterioridad, la relación en tre este nivel d e la je rarqu ía y la m o n o ria principal es parecida a la q u e existe o i tre la m em oria caché y la principal. Pero tam bién se ha com entado

q u e por o tro lado existen diferencias im portantes ya q u e la m em oria virtual no se co n tro la exclusiva- m a ite p o r hardware, sino que se o ica rg a d e ello el sistem a operativo. Además, la m em oria virtual no sólo se incluye com o un nivel m ás d e la je rarqu ía d e m o n o ria en el sistem a, sino q u e tiene u n a función tan im portante com o el a lm acaiam iento del s is to n a d e ficheros.

Por últim o, la tecnología d e la m em oria virtual es hoy en d ía el a lm acenam iaito m agnético, y la un i­dad d e inform ación no es el bloque, a n o la página o d segmento, am bas d e tam años m ucho mayores que d bloque que se m aneja en tre la m em oria principal y la m em oria caché. Estas características hacen que d anplazam ien to d e páginas a i la m em oria principal siempre sea asociativo y que la política de escritura sea siempre d e post-escritura.

Page 121: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Por todos estos m otivos la m o n o n a virtual es m ucho m ás lenta y com pleja de gestionar q u e el resto de niveles de la je rarqu ía (actualm ente su latencia está en el orden de ms y no de ns, com o en el en torno m ás cercano al procesador). Y resolver el fallo d e página d e un proceso siempre im plica un cam bio de contexto en el procesador p a ra evitar la enorm e penalización p o r fallo que se observaría al resolver este fallo d e página sin realizar m ientras tan to trabajo útil en d procesador. Además, el sistema operativo sude ejecutar algoritm os d e prebúsqueda d e páginas p a ra evitar fenóm enos com o el de la hiperpagina- d ó n (trashing), en los q u e d procesador provoca constantes fallos d e página y pasa desocupado la mayor parte del tiempo.

D i este libro no se desea en trar en detalles tecnológicos n i a i detalles acerca del funcionam iento del sistema operativo, por lo tanto, se consideran sólo los siguientes aspectos d e diseño relacionados con la m em oria v irtual.

2 .4 .3 .1 . O r g a n i z a c i ó n d e l a m e m o r i a v ir t u a l

Existen d o s tipos d e o rganizadón para la m em oria virtual, la m em oria paginada y la segm entada.La m em oria virtual paginada utiliza un tam año fijo d e bloque d e inform ación, denom inado página,

m ientras q u e la segm entada utiliza un tam año variable d e bloque d e in form adón; cada uno d e estos blo­ques se denom ina segmento.

Las m em orias segm entadas son m ás flexibles, ya que perm iten q u e cad a proceso utilice los tam años de bloque de inform ación m ás adecuados p a ra sus necesidades, pero com plican bastante el esquem a de direcdonam iento.

Por eso algunos d iseños utilizan u n a técnica h íb rida en la q u e los segm entos están siem pre com ­puestos p o r un núm ero entero d e páginas. E sta técnica se denom ina m em oria v irtual paginada/seg­m entada.

Lo q u e se busca en general es encon trar la organización d e m em oria v irtual y los tam años d e página o segmento que perm itan aprovechar al máximo todo el espacio disponible en la m em oria principal, evitando en todo lo posible el fenóm eno de la fragm entación y llegando a un com prom iso en tre el apro­vechamiento de la localidad y la penalización p o r fallo (d razonam iento en cuanto al tam año de página o segmento m ás adecuado es m uy similar al del tam año d e bloque p a ra la m em oria caché).

La fragm entación no es m ás q u e el desaprovecham iento del espacio en la m em oria p rincipal (figu­ra 2.14). Si la m em oria v irtual es paginada, al ub icar el con jun to d e da to s m anejado p o r un proceso en u n a o m ás páginas, es m uy probable q u e en la ú ltim a d e ellas quede espacio desaprovechado. Es lo que se denom ina fragm entación in terna, ya q u e den tro d e las diferentes páginas ubicadas en la m em oria principal puede haber espacio q u e no esté alm acenando inform ación útil. C uan to m ayor sea el tam año de página, m enor será el tam año d e la tabla d e páginas (se verá en la sección siguiente), pero m ayor será d ancho d e b an d a necesario para transferir estas páginas y m ayor será el problem a d e la fragm entación in terna.

Para ev ita r esto puede o p tarse p o r u n a m em oria v irtual segm entada, que perm ita a ju sta r el tam a­ño d e los segm entos ju sto a los co n jun tos d e d a to s q u e se m anejan. D e hecho, m ien tras q u e la división de la m em oria en páginas su d e ser transparen te al usuario, la división en segm entos suele ser visible para él, d e m anera q u e pueda organizar óptim am ente el espacio d e m em oria d e cad a proceso y asignar a tribu tos d e protección y privilegios a las instrucciones y los d a to s según sus necesidades. Pero al ub i­car los diferentes segm entos en la m em oria principal, q u ed a rán espacios en tre ellos q u e no se puedan aprovechar p o r no encon trarse o tros segm entos d e tam año adecuado p a ra ub icarlos en ellos. E sto se denom ina fragm entación externa, ya q u e quedan espacios en la m em oria principal desaprovechados porque no albergan ningún segm ento. L os espacios libres d e m em oria suelen gestionarse m edian te una o varias listas en lazadas y los algoritm os d e em plazam iento m ás utilizados son los d e P rim er ajuste, M ejor ajuste, Peor ajuste y Binary-buddy, pero ninguno d e ellos consigue ev ita r la fragm entación ex­terna com pletam ente.

Page 122: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

M em oria V irtual Paginada

■ /M arco de página en M em oria Principal

Fragm entación Interna Fragm entación Externa

F ig u r a 2 .1 4

F ra g m e n ta c ió n in te rn a y e x te rn a .

2 .4 .3 .2 . T r a d u c c i ó n d e d i r e c c i o n e s v i r t u a l e s a f í s i c a s

La correspondencia entre dirección virtual y física que se h a m ostrado a lo largo d e este capítulo, y que a i general se utilizará en todo este libro, es la que se produce cuando la memoria virtual es paginada, y por lo tanto, el tam año del bloque d e información que se m aneja entre la m em oria virtual y la principal es fijo.

En este caso, existen tres tipos d e traducción d e direcciones:

• Traducción directa. C ad a proceso tiene un tabla d e páginas q u e alm acena en qué marco d e la mem oria principal se h a alm acenado cad a página d e su espacio d e direcciones, adem ás d e o tra inform ación com o si la página h a sido utilizada, si h a sido m odificada, etc. L a tabla d e páginas sí alm acena en m em oria principal, apun tada p o r un registro que contiene su dirección base (figu- ra2.15).

• Traducción asociativa. Sólo se m antiene a i la tabla d e páginas una en trad a p a ra las páginas q u e en ese m om ento están ubicadas en la m em oria principal (figura 2.16).

• Traducción mixta. Se m antiene u n a pequeña tabla asociativa con las páginas m ás activas, denom i- nada TLB (Translation L ookahead Buffer) en u n a m o n o ria caché cercana al procesador. Y se a l­m acena la tabla d e páginas c o m p la a en m em oria principal para los fallos del T LB (figura 2.17).

La traducción d irecta d e direcciones es sencilla pero im plica sionp re un acceso a m em oria principal cuando se desea leer o escribir u n dato , para leer la tabla d e páginas. A donás, la tabla de páginas d e un proceso puede ocupar u n tam año excesivo en la m em oria principal. Por otro lado, la traducción asocia­tiva reduce m ucho d tam año d e la tabla d e páginas, pero obliga a com parar la página buscada con todas sus o itra d a s p a ra ver si se encuen tra en la m em oria principal, p o r lo que el proceso d e traducción puede ser m ás lento.

Page 123: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

R eg istro Base

Dirección de Inicio

M e m o r ia P rincipa l^ L 'T J - r - r z — — L j i t r -

M a rc tfd e MP /

I D ire c c ió n d e In ic io de la ta b la d e p á g in a s

¡ M N? M a rc o d e M P PO-----

F ig u r a 2 .1 5

T ra d u c c ió n d ire c ta d e D V a DF en m e m o r ia p a g in a d a .

R e g is tro Base

Dirección de In ic io —

D ire c c ió n d e In ic io d / l a ta b la d e p á g in a s

N ú m e r o d e M a r c o d o M P

M U X

A c ie r to

F ig u r a 2 .1 6

M e m o r ia P rinc ipa l

N? M a rc o de M P

T ra d u c c ió n a s o c ia tiv a d e D V a DF en m e m o r ia p a g in a d a .

Page 124: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

R e g is tro Base

F ig u r a 2 .1 7

T ra d u c c ió n m ix ta d e D V a D F en m e m o r ia p a g in a d a .

La traducción m ixta reduce el número de com paraciones y las realiza mucho m ás rápido, ya q u e el TLB sólo alm acena las páginas m ás activas y es una m o n o n a caché. Pero sigue haciendo falta alm acenar la tabla de páginas en la m em oria principal. L a solución suele ser la traducción a varios niveles, d e m ane­ra que se divide la tabla de páginas en páginas, y no tienen p o r qué estar todas en la m em oria principal al mismo tiem po. Lo que se alm acena siempre en esta m em oria es u n a tabla d e directorios que alberga las direcciones d e com ienzo d e las páginas d e la tabla d e páginas. L a dirección virtual se in terpreta ah o ra de o tra m anera, com o se observa en la figura 2.18.

Esta decisión d e diseño afecta enorm em ente al rendim iento d e los accesos a m em oria, por lo que volverá a tra tarse este tem a en el capítu lo 4.

Cuando la m em oria virtual es segm entada la in terpretación d e la dirección virtual y física es diferente que en u n a m em oria paginada, ya q u e la m em oria principal no está partic ionada a priori y un segmento puede com enzar y term inar en cualquier posición.

E n este caso sólo hay u n a alternativa, la traducción d irecta . C ad a proceso tiene asociada u n a tabla de segm entos en m em oria principal, en la q u e se a lm acenan la dirección d e com ienzo y la longitud de cad a segm ento en m em oria principal. L a tab la d e segm entos e stá ap u n tad a p o r su d irección base, que se alm acena en u n registro (figura 2.19). En este caso el desplazam iento q u e se incluye tan to en la dirección virtual com o en la física suele denom inarse O ffset d e Segm ento (SO) en lugar d e O ffset de Página (PO).

FU Diseño de un sistema de E/S básicoEn cualquier com pu tadora es imprescindible un sistem a d e E/S q u e perm ita el intercam bio d e infor­

mación con el m undo exterior, y sin este sistema la com pu tadora serviría d e poco.

Page 125: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

R e g is t r o B a s e T a b la d e D ir e c to r io s

D irecc ión d e In ic io I

F ig u r a 2 .1 8

T ra d u c c ió n d e D V a D F a v a r io s n iv e le s en m e m o r ia p a g in a d a .

T ra d u c c ió n d ire c ta d e D V a DF en m e m o r ia s e g m e n ta d a .

Page 126: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El sistem a de E/S está form ado p o r una serie de dispositivos periféricos que perm iten la transferen­cia de inform ación en tre la com pu tadora y el exterior, y por o tros elem entos imprescindibles p a ra su conexión y control.

Este sistem a ha sido siempre el gran olvidado en el cam po d e la arquitectura de com putadoras. Sin embargo, este hecho h a term inado p o r afectar al rendim iento d e las arquitecturas, ya que, por mucho que se optim icen d funcionam iento del procesador y d e la je rarqu ía d e m em oria, el sistema d e E/S puede llegar a suponer un gran cuello d e botella q u e afecte negativam ente a sus prestaciones.

R ira obtener el rendim iento deseado del sistema d e E/S hay q u e tener en cuenta, no sólo el funcio­nam iento d d propio dispositivo d e E/S, sino tam bién la form a en la q u e este dispositivo se conecta a la com putadora y la form a en la q u e se gestionan las transferendas d e inform ación.

Por eso en este libro se dividirá d estudio del sistem a d e E/S a i tres grandes aspectos: buses incluidos a i este sistema, dispositivos d e E/S y gestión del sistema d e E/S. E ste capítulo se centra en d prim ero y en d tercero, ya q u e escapa del alcance de este libro el estudio d d funrionam iento básico d e los dispositivos de E/S conectados a la com putadora.

m Mecanismo completo de una operación de E/SEn la figura 2.20 puede observarse d cam ino com pleto q u e debe seguir el procesador p a ra hacer una

operadón d e o itra d a o salida con un dispositivo periférico. En este esquem a de la operación d e E/S sólo se m uestran los aspectos hardware, ya q u e tan to el sistem a operativo com o los drivers d e los dispositivos tia ien tam bién un papel im portan te en las transferencias d e inform ación.

P rocesador M e m o ria P rinc ipa l

Chipsets (Controladores)

Interfaz

Datos

i Control

iEstado

A lPUERTO Periférico

G Sistema Operativo + D rivers

F ig u r a 2 .2 0

U suario

M e c a n is m o c o m p le to d e E/S.

Existe una gran variedad d e dispositivos periféricos q u e se pueden conectar a una com putadora hoy en día: d e E/S básica (teclado, ratón, m onitor), d e alm acenam ioito (disco duro, CD, DVD), d e im presión (im­presora, escáner), de comunicaciones (modem, acceso a red LAN), multim edia (micrófono, altavoces, cap- turadora, cám ara de vídeo), de autom atización y control (sensores, alarm as, adquisición d e datos), etc.

Sea cual sea el tipo d e dispositivo, todos se conectan al sistema a través d e un interfaz cuyas funciones principales son:

• Interpretar las órdenes que recibe del procesador y transm itirlas al periférico.• C bntrolar las transferencias d e da to s en tre el procesador y el periférico (convertir form atos, adap­

tar velocidades).• Inform ar al procesador del estado d d periférico.

Page 127: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Este interfaz es u n a unidad hardw are/softw are (la parte softw are es la q u e está ligada a los drivers y al sistem a operativo) q u e suele e s ta r ub icada en una ta ije ta o adap tador. L os interfaces suelen clasifi­carse com o serie o paralelo según cóm o m anejen la inform ación o en interfaces generales o específicos según estén d iseñados p a ra d a r soporte a un g ran conjunto d e dispositivos o a un tipo d e dispositivo concreto. L a unidad física q u e perm ite q u e el dispositivo se conecte a su in terfaz suele denom inarse puerto.

El interfaz se conecta m ediante un bus d e E/S con un con tro lador q u e suele encontrarse en u n chipset o h u b y q u e gestiona la transferencia d e inform ación con el procesador o con la m em oria según los m e­canism os d e gestión d e E/S disponibles en la arquitectura.

Con esta estructura, el sistema d e E/S debe ser capaz d e cum plir tres funciones que son im prescindi­bles p a ra la realización d e u n a operación d e en trad a o salida:

• Direccionamiento. El procesador debe ser capaz d e seleccionar de a lguna m anera d dispositivo con d que quiere realizar la transferencia d e E/S o d e identificar al dispositivo q u e le hace algún tipo de solid tud. Existen dos alternativas:

— E/S mapeada en memoria. H sistem a d e E/S y la m em oria p rindpa l com parten d mismo es­p ad o d e direcciones d e m anera q u e las operaciones d e E/S se realizan con instrucciones de load y store. Se asigna a los puertos d e E/S u n a porción d d espacio d e d irecdones físicas de memoria.

— E/S aislada. El sistema d e E/S y la m em oria utilizan un espacio d e d irecdones diferente. Exis­ten instrucciones espedficas para E/S (tipo in y out). H ay una línea en el bus d e direcciones que especifica si se realiza un direccionam iento d e m em oria o d e E/S ya que puede ocurrir que un puerto ta ig a la m ia ñ a d irecd ó n q u e una posición válida de m em oria.

La E/S m apeada en m em oria reduce el e spado d e m em oria principal q u e se puede em plear p a ra alm acenar instrucciones y datos. Pero com o las direcciones d e los puertos se m anejan igual q u e las de m em oria, se pueden realizar todo tipo de operaciones sobre d ía s (aritméticas, d e m anipulación de bits, etc). Y adem ás se simplifica el repertorio d e instrucciones del procesador. Hoy en d ía to d a ­vía se pueden encon trar las d o s alternativas, ya q u e no se h a com probado q u e una se com porte de m anera sustancialm ente m ejor q u e la o tra .

• Transferencia de información. Que podrá ser d e d o s tipos, lectura o escritura.• Gestión de la transferencia. En el sistem a d e E/S es necesario un m ecanism o d e áncro n izad ó n y

control de las transferendas d e in fo rm adón porque d procesador debe saber si el periférico está preparado para enviar o recibir datos. Tam bién debe estar inform ado, p o r ejemplo, d e si el peri­férico h a term inado u n a transferencia y está en disposición d e iniciar u n a nueva. E n secciones posteriores se estudiarán las alternativas q u e existen p a ra realizar es ta gestión d e E/S.

Evaluación de prestaciones del sistema de E/SEn d caso d e los buses de E/S la ecuación d e p restadones está relacionada con el ancho d e banda del

bus (BW d e BandW idth), es decir, con la cantidad d e inform ación que es capaz d e transferir por un idad de tiempo:

B W = ancho de datos • f n.° de transferencias / ciclo

D onde el ancho de datos es el número d e líneas d e d a to s del bus, f e s la frecuencia d e funcionam iento de estas líneas y n. ° de transferencias ¡ciclo indica cuán tas transferendas de inform ación es capaz d e rea­lizar el bus por cad a d c lo d e reloj.

Page 128: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Este ancho d e b anda suele verse lim itado por:

• El ancho de datos, ya q u e aum entarlo implica aum entar d número d e líneas de da to s del bus y esto ocupa área y consum e potencia. Es decir, existe una lim itadón de coste asociada a este factor. Además, cuan tas m ás líneas d e datos se coloquen en paralelo en un bus, m ás d ifíd les d e gestionar 92rán todos los problem as relacionados con d ruido provocado p o r las in terferendas que se pro ­ducen en tre d ías.

• En cu an to a la frecuencia, las lim itadones vuelven a ser el consum o d e potencia y el ruido, ya que cuanto mayor sea la frecuencia d e operación del bus, m ás potencia se d isipará en sus líneas y m ás interferencias se p ro d u d rán en tre ellas.

• R )r últim o, el número de transferencias p o r d c lo suele estar lim itado por el m odo d e operación del bus, es decir, p o r los protocolos d e transferencia, ancro n izad ó n y arb itra je que utilice.

D e hecho, aunque la ventaja p rindpa l d e u tilizar buses estándar para conectar dispositivos de E/S es su bajo coste, ya que perm iten la com partición d e líneas, y su versatilidad (facilidad d e conexión de nuevos dispositivos, creación d e estándares cuando se necesitan, etc); la principal desventaja está en es­tas lim itaciones del ancho de banda q u e pueden llegar a convertir a los buses en d cu d lo de b o td la del sistema d e E/S.

En el capítulo 4 d e este libro se presentan técnicas d e aum ento d e p restadones q u e perm iten aum en­ta r el ancho d e banda d e los buses sin sufrir los inconvenientes ya m encionados.

En cuanto a la evaluadón de prestaciones de los dispositivos, las m étricas m ás habituales son las mismas que se utilizan p ara cuantificar d rendim iento d e un nivel d e la je rarqu ía d e m em oria, d ancho de banda del dispositivo (que en este caso es la can tidad d e inform ación que puede transferirse desde/hacia d dispositivo d e E/S p o r unidad d e tiempo) y la la ten d a (tiempo que ta rd a en com pletarse una transac- d ó n de E/S). Adem ás existen o tras m étricas com o la fiabilidad, la disponibilidad o la tolerancia a fallos que pueden ser m uy im portantes en algunos casos. Y cada tipo de dispositivo puede tener sus propias métricas d e rendim iento dependiendo d e su aplicación.

Por últim o, p a ra evaluar el rendim iento d e u n m ecanism o d e gestión de E/S se suele utilizar com o m étrica el tiempo invertido por el procesador para realizar la transacción d e E/S com pleta ( t ^ .

C T i l Buses de E/S

U n bus es un medio d e transm isión com partido q u e interconecta d o s o m ás dispositivos y perm ite que se establezca en tre ellos u n a correcta com unicación.

N orm alm ente sólo un dispositivo puede con tro lar d estado de las líneas del bus en cada m om ento. Si varios dispositivos transm iten info rm adón por el m ismo bus al mismo tiem po, las señales se solapan y se produce u n e rro r d e co n ten d ó n . Por lo tan to a i cada com unicación hay siempre d o s elem entos im plica­dos, d m aestro, que inicia y dirige la transferencia y el esclavo, q u e obedece las órdenes del m aestro.

U n bus se com pone d e diferentes conductores déctricos denom inados líneaa Se pueden encon trar diferentes tipos d e líneas en un bus:

• Según su función: Líneas d e datos, líneas d e d irecdones o líneas d e control.• Según su uso: Líneas dedicadas o líneas multiplexadas.• Según sus características eléctricas: Líneas unidireccionales o bidireccionales.

Los buses d e E/S suelen estar estandarizados p a ra que los d istin tos dispositivos d e diferentes fabri­cantes puedan conectarse correctam ente en todas las arquitecturas. Los estándares especifican u n a serie

Page 129: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

de requisitos eléctricos, mecánicos y d e protocolos d e com unicación q u e deben cum plir los buses y las líneas q u e los com ponen.

Los parám etros d e caracterización m ás im portantes d e un bus se suelen separar en diferentes niveles para definir estos protocolos:

• Nivel físico. C apacidad d e conexión (número m áxim o d e dispositivos que pueden conectarse al bus), longitud m áxim a del bus, soporte físico, niveles d e tensión, frecuencia d e funcionam iento, tipo d e conectares, etc.

• Lineas. A ncho del bus (número to tal de líneas), ancho d e datos, líneas unidireccionales o bidirec- donales, etc.

• Modo de operación. Protocolos d e transferencia (que determ inen el tipo d e com unicación q u e se establece en tre los dispositivos conectados a l bus), protocolos d e sincronización (que determ inen d inicio y el fin d e cada transferencia de inform ación) y de arbitraje (que controlen el acceso al bus cuando m ás d e un dispositivo puede ac tuar com o m aestro).

2.8.1. Diseño de buses de E/S

U n a vez rea lizadas las especificaciones físicas y d e líneas d e un bus (p arám etro s m ás re lac iona­d o s co n la tecnología), es necesario d iseñ ar el p ro toco lo d e transfe rencia q u e gob ierna la operación del bus y especifica cóm o se u tilizan las señales d e d a to s , con tro l y d irecciones p a ra rea lizar una transferencia d e in form ación co m p le ta . E xisten casi ta n to s p ro to co lo s d e tran sfe ren cia com o buses d e E/S.

Además es necesario decidir d tipo d e protocolo que sincroniza las transferencias d e inform ación y en este caso a q u e existe un conjunto m uy reducido d e alternativas. En los buses síncronos las transferen- d a s están gobernadas por u n a única señal d e reloj com partida por todos los dispositivos q u e se conectan al bus, d e m anera q u e cada transferencia se realiza en un número fijo de ciclos d e reloj (en un ciclo en el ejemplo d e la figura 2.21).

DirecciónDatosR/WReloj

Reloj

- / D irección D irección D irección \ -------- D irecciones

< Escritura Lectura X Escritura Datos

Maestro-Esclavo Esclavo-Maestro M aestro-Esclavo

F ig u r a 2 .2 1

B us c o n p ro to c o lo s ín c ro n o .

Por d con trario a i los buses asincronos no existe señal d e reloj, los dispositivos im plicados en la transferenria se sincronizan m ediante el intercam bio d e señales d e control (figura 2.22).

Page 130: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

MAESTRO1

D irecc ión

E scritura

M a e s tro -E sc la vo

ESCLAVO

D irecc ió n

Lectu ra

E sc lavo -M aes tro

F ig u r a 2 .2 2

D ire cc ió n

D atosR /WM a e s tro S ync E sc lavo S ync

D irecc ió n

M a e s tro S ync

E sclavo S ync

D atos

B u s c o n p r o to c o lo a s in c r o n o .

L os p ro toco los síncronos son m uy sencillos y sólo necesitan u n a señal d e reloj. Pero hay que a d a p ta r es ta señal al d ispositivo m ás lento y adem ás es necesario d is trib u irla a tod o s los dispositivos conectados al bus. T am poco existen confirm aciones en las transferencias, p o r lo q u e es difícil imple- m en tar m ecanism os d e detección y corrección d e errores. C on los p ro to co lo s asincronos no existen e sto s inconvenientes, pero son m enos eficientes deb ido a la necesidad d e in te rcam biar señales de contro l.

F o t eso surgen los buses semisíncronos, q u e com binan las ventajas d e los dos anteriores, se com ­portan com o síncronos para dispositivos rápidos y com o asincronos para dispositivos lentos. Es decir, en principio se exige a todos los dispositivos conectados al bus q u e com pleten sus transferencias en un número fijo d e ciclos de reloj, pero si algún dispositivo no puede hacerlo, es posible que funcione com o asincrono activando para ello las señales adecuadas.

También existen los buses de ciclo partido, en los q u e se libera el bus entre la petición d e operación por p a rte de l m aestro y la contestación del esclavo. El problem a en este caso es que todos los dispositivos tienen q u e ser capaces en un m om ento dado d e ac tuar com o m aestros tom ando d control del bus cuando van a proceder a d a r u n a contestación.

En general los protocolos semisíncronos y d e ciclo partido presentan im portantes ventajas en co m p a­ración con los síncronos y asincronos, pero suden necesitar m ás líneas y u n a gestión m ás com pleja.

U na vez determ inado el protocolo d e transferencia y el de sincronización, el resto d e decisiones de diseño suden e s ta r rdacionadas con d arbitraje del bus, es ded r, con el protocolo que perm ite determ inar qué dispositivo tiene el control del bus en cad a momento.

Los protocolos de arbitraje pueden ser d e dos tipos, centralizados o distribuidos. Sea cual sea la elec- d ó n , d objetivo es evitar los errores de contención q u e se producen cuando d o s o m ás dispositivos tom an d control del bus al m ismo tiem po, pero tam bién evitar los interbloqueos.

En el caso del a rb itra je centralizado, el control d d acceso al bus es responsabilidad d e u n único d is­positivo. Existen d istin tas m aneras d e conectar d resto d e dispositivos al m aestro q u e actúa com o árbitro, pero las conexiones m ás habituales son en estrella y encadenadas con 2, 3 o 4 líneas (en la figura 223 se m uestran d istin tos ejemplos, en todos ellos Req es la señal d e so lid tu d del bus y G n t es la señal d e co n ­cesión).

Page 131: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

En los protocolos distribuidos la responsabilidad se com parte en tre todos los dispositivos conectados al bus, norm alm ente utilizando líneas o códigos d e identificación (figura 2.24).

F ig u r a 2 .2 3

P ro to c o lo s d e a rb itra je c e n tra liz a d o s (en e s tre lla y e n c a d e n a d o d e 2 líneas).

ID 1. ID2.

IDn

M1

- r

i i i # C Mn

M1

oe n

■6S

i f # #

m l Mn

r

F ig u r a 2 .2 4

P ro to c o lo s d e a rb itra je d is t r ib u id o s (líneas d e id e n t if ic a c ió n y c ó d ig o s d e id e n tif ic a c ió n ) .

Ejem plo 2 .1 5

D is e ñ o d e u n p r o t o c o lo d e a r b i t r a je c e n t r a l iz a d o c o n c o n e x ió n e n c a d e n a d a d e d is p o s i t iv o s .

En la fig u ra 2.23 se ha m o s tra d o un e je m p lo de p ro to c o lo cen tra lizado de a rb itra je de 2 líneas co n con e x ió n encadenada de d isp o s itivo s .

Page 132: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El d is p o s itiv o m a e s tro q u e q u ie re el c o n tro l de l b u s activa la señal de p e tic ió n REO. El re s to de m aestros p ropagan esta señal hasta el á rb itro y éste ac tiva la señal de co n ce s ió n GNT. S i un m a e s tro re c ib e G NT y n o ha p e d id o el bus, la p ro p a g a al s ig u ie n te m aestro . S i p o r el co n tra r io un m a e s tro re c ib e G NT y ten ía una p e tic ió n de b u s p e n d ien te , to m a el c o n tro l de l bus . Por lo ta n to las p rio r id a d e s se estab lecen p o r el o rd e n de con e x ió n de lo s m aestros .

Si un m ae s tro so lic ita el bu s y le es co n ce d id o , pu e de o c u rr ir q u e o tro m a e s tro q u e esté m ás p ró x im o al á rb itro en la cadena s o lic ite el bu s y al ve r G NT activada crea q u e pu e de to m a r el c o n tro l de l bus. Para e v ita r estos e rro re s en el a rb itra je (qu e p ro vo ca rían e rro re s de co n ten c ió n ), la señal de G NT debe fu n c io n a r p o r fla n c o y n o p o r n iv e l; un m a e s tro só lo to m a el c o n tro l de l bu s c u a n d o de tecta el f la n c o de sub ida de la señal de conces ión .

A ún así, lo s e rro res de c o n te n c ió n son pos ib les , y para h a ce r el p ro to c o lo de a rb itra je m ás ro b u s to , se p u e de añ a d ir una te rce ra línea B S Y q u e seña le si el b u s está o cu p ad o . La línea B S Y se ac tiva s ie m p re q u e un m ae s tro t ie n e el c o n tro l de l bus.

De es ta fo rm a , s i un d is p o s it iv o m a e s tro s o lic ita e l c o n tro l d e l bu s a c tiv a n d o REO , e l á rb itro a c tiva G NT c u a n d o ve es ta p e tic ió n p e n d ie n te y ade m á s e l bu s n o es tá o c u p a d o (B S Y s in a c tiva r). La p ro p a g a c ió n de G N T es c o m o en e l p ro to c o lo de 2 h ilo s , s ó lo q u e en e s te ca so un m a e s tro s ó lo to m a e l c o n tro l d e l bu s si t ie n e una p e tic ió n p e n d ie n te , la línea B S Y es tá in a c tiv a y s i d e te c ta e l f la n c o de su b id a de GNT.

E ste p ro to c o lo se p u e d e m e jo ra r a ñ a d ien d o una cua rta línea q u e p e rm ita so la p a r la tra n s fe re n c ia del c ic lo actua l co n el a rb itra je de l c ic lo s ig u ie n te . E sto se hace co n la seña l ACK. S i un m a e s tro s o lic ita el b u s y re c ib e G N T p e ro el b u s está o cu p a d o , ac tiva A C K c o m o seña l de espera a q u e el b u s q u e d e lib re para to m a r el c o n tro l. M ie n tra s A C K está a c tiva , el á rb itro qu e da in h ib id o y n o p u e d e a c tiv a r G NT para n in g ú n o tro d is p o s it iv o .

M1 Controla el bus M2 Controla el bus

BSY

REO

Á rb itro Inhibido

GNT

ACK

Page 133: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

2.8.2. Diseño de jerarquías de buses

Si en un com pu tador actual conectáram os to dos los dispositivos a un mismo bus, tendríam os dos problem as serios. El prim ero, u n a dism inución global en el rendim iento del sistema p o r los re tardos de propagación d e las señales debidos a la longitud del bus, a los tiem pos de espera para conseguir la utili­zación del bus y a la adaptación necesaria para d a r servicio a los dispositivos m ás lentos. Y el segundo, la incom patibilidad d e los d istin tos dispositivos con el bus, ya q u e cada fabricante diseña sus propios interfaces optim izados para la función q u e tengan que cum plir.

La solución a todos estos problem as es utilizar u n a jerarquía d e buses a i lugar d e un único bus. Para diseñar es ta jerarquía hay que to ie r a i c u a ita la ubicación d e los diferentes niveles d e la je rarqu ía de m o n o n a , la ubicación d e los controladores e interfaces d e E/S, la necesidad d e algunos dispositivos de acceder directam ente a la m em oria principal, y obviam aite, las d ife ra ites necesidades en cuanto a ancho de banda d e los dispositivos.

N orm alm ente todas las jerarqu ías incorporan los siguientes buses:

• Bus del sistema y bus de m em oria. Son los que conectan el procesador con el resto del sistem a y la m o n o ria principal con d con tro lador de m em oria respectivamente. Se tra ta de buses rápidos y cortos, propietarios (no estandarizados) y optim izados para arquitecturas y diseños específicos. Esta op tim izadón es posible ya q u e a estos buses se conectan un número fijo d e dispositivos de prestaciones conocidas.

• Buses de expansión. Se tra ta d e buses m ás largos y lentos, abiertos (estandarizados), accesibles por d usuario y a los que se conectan un núm ero indeterm inado de dispositivos d e prestaciones desco­nocidas y m uy diferentes en tre sí.

Las vo ita jas d e este tipo d e jerarqu ía son claras. El bus d d sistema perm ite q u e la conexión en tre el procesador y el m undo exterior esté optim izada p a ra su arquitectura y necesidades específicas. Además, los d istin tos com ponentes del sistem a pueden com unicarse en tre sí sin interferirse unos con otros. N o es necesario adaptarse al dispositivo m ás lento, d e hecho se distinguen en la je rarqu ía diferentes zonas según su ancho d e banda. Y p o r últim o, se d im in a el problem a d e incom patibilidad co n los buses ya q u e los buses d e expansión suelen ser estándares.

Aunque se com enzó por utilizar u n único bus d e expansión en las jerarquías, con el paso del tiempo ha sido necesario m ejorar todavía m ás la e f id en d a del sistem a, utilizando para d io u n a jerarqu ía con m ás de un bus d e expansión. Así se separan los dispositivos periféricos según sus necesidades y, p o r norm a general, un dispositivo rápido tio ie la misma probabilidad d e acceder al bus del sistem a q u e todos los dispositivos lentos conjuntam ente.

Evo lució n de la je rarqu ía de b u ses de las com p utadoras p erso n a les

Hace u n o s años, la je ra rqu ía de buses q u e se inc lu ía en las p lacas base de las co m p u ta d o ra s persona les era la q u e se m uestra en la p rim e ra f ig u ra de la pág ina s igu ien te .

Se obse rva q u e el p ro ce sa d o r se co m u n ica co n el c o n tro la d o r de m e m o ria , in te g ra d o en el ch ip se t no rte , m ed ian te el b u s de l s is tem a. A l ch ip se t n o rte se conecta la m em oria p rin c ip a l (m e d ia n te el b u s de m em oria ) y ta m b ié n la ta rje ta g rá fica . La c o n e x ió n de esta ta rje ta se realiza m e d ia n te a lguna de las ve rs io n e s de AGP, un bu s de e xp a ns ión e s tánda r q u e se u tiliza só lo para la c o n e x ió n de ta rje ta s g rá ficas . E ste d is p o s it iv o de E/S se tra ta de m anera d ife re n te a lo s dem ás d e b id o a la ex igenc ia de a ltas p re s ta c io n e s q u e se le im p o n e y a la neces idad q u e t ie n e de acce d er a la m e m o ria p rinc ipa l.

C a s o p r á c t ic o 2 . 1 .

Page 134: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El re s to de d is p o s itiv o s de E/S se conec tan al sistem a a tra vé s de l b u s PCI (bu s de expans ión tra d ic io n a l) o de o tro s buses e in te rfa ce s m ás e spec íficos , c o m o pu e de se r el IDE/ATA para el d is c o d u ro . La c o n e x ió n en tre el ch ip se t sur, q u e centra liza to d o s lo s f lu jo s de in fo rm a c ió n de E /S , y el ch ip se t n o rte , se realiza m e d ia n te el bu s PCI.

Este d ise ñ o de je ra rq u ía co m e n zó a p re se n ta r c u e llo s de bo te lla , esp e c ia lm e n te en lo q u e se re fie re a la con e x ió n e n tre ch ip se ts (ha y q u e pensar que, p o r e je m p lo , la ta rje ta de red sue le es ta r conectada en una de las ran u ra s PCI), p o r lo q u e se pasó a rea lizar la s ig u ie n te m e jo ra :

En este caso el bu s PCI se conecta d irec ta m e n te al n u e vo ch ip se t sur, d e n o m in a d o ICH (10 C on tro lle r Hub). Y la c o n e x ió n e n tre el ICH y el M CH (M e m o ry C o n tro lle r H u b q u e su s tituye al a n tig u o ch ip se t n o rte ) se realiza m ed ia n te un b u s d e d ica d o de a n ch o de banda bas tan te m a y o r q u e PCI.

■ ns

Page 135: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

De es ta m an e ra , n o se in te rf ie re co n lo s d is p o s it iv o s c o n e c ta d o s al bu s PCI, q u e m e jo ra n su re n d im ie n ­to . Y ta m b ié n m e jo ra n su re n d im ie n to lo s d is p o s it iv o s q u e se co n e c ta n d ire c ta m e n te a l ICH y n o t ie n e n qu e p a sa r p o r e l b u s PCI. E s to se no ta e s p e c ia lm e n te en las p re s ta c io n e s de lo s d is p o s it iv o s USB e ID E / ATA.

Este d ise ñ o ha te rm in a d o p o r m o d if ic a rs e de n u e vo , ya q u e al in te g ra r lo s ú lt im o s p ro ce sa d o re s el c o n ­tro la d o r de m em o ria , la c o n e x ió n de la m e m o ria p rin c ip a l se hace d ire c ta m e n te al p ro ce sa d o r en lu g a r de al MCH. A d em ás, el bu s e s tánda r para la c o n e x ió n de ta rje ta s g rá fica s se ha m o d ific a d o , s ie n d o en lo s d iseños m ás ac tua les PCI Express (qu e e s tu d ia re m o s en el c a p ítu lo 4 de este lib ro ) en lu g a r de A G P A c tu a lm e n te nos e n co n tra m o s tre s a lte rn a tiva s en el d is e ñ o de la je ra rq u ía de buses de l PC:

A lte rn a tiv a 1

P rocesador

---- ti?

3----/

i1

A lte rn a tiv a 2

M em oriap rinc ipa l

l/O HUB r-4,1 Puertos

Page 136: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

n i Gestión del sistema de E/SComo se ha com entado con anterioridad, es necesario im plem entar u n m ecanism o de gestión d e E/S

que controle las transferencias d e inform ación en tre el procesador y el dispositivo periférico. E stos m eca­nismos de gestión son m uy variados, y es m ejor utilizar unos u o tros dependiendo del tipo d e dispositivo que se conecte a la com putadora .

2.9.1. tyS programada con espera de respuesta

Cada vez que el procesador tiene que realizar una transferencia d e E/S, en tra en un bucle a i el que consulta una y o tra vez d estado del periférico hasta que éste es tá preparado para realizar la transferencia (figura 2.25).

Los inconvenientes d e este m étodo son:

• El procesador no hace trabajo útil d u ran te el bucle d e espera.• La d inám ica d d program a q u e estaba en ejecución se detiene com pletam ente du ran te la operación

de E/S.• Existen dificultades p a ra a tender a varios periféricos al m ismo tiempo.

Por eso es una técnica de gestión intuitiva y fácil d e program ar, pero q u e no se utiliza prácticam ente nunca.

2.9.2. E/S con interrupciones

En este caso no existe ningún tipo d e bucle d e espera sino que es el periférico el q u e avisa al procesa­d o r cuando está listo para la transferencia.

Page 137: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

Le e r R e g is tro d e E s ta d o d e l

In te r fa z d e E/S

NO E x a m in a r b its

d e E s ta d o

T ra n s fe r ir d a to s

h a c ia /d e s d e

p e r ifé r ic o

'¿Realizar otr; transferencia^*

F IN

F ig u r a 2 .2 5

E/S p ro g ra m a d a c o n e s p e ra d e re s p u e s ta .

Este aviso se realiza activando una línea d e petición d e interrupción (IRQ). Cuando el procesador recibe esta señal de petición salta a ejecutar u n a R utina d e Tratam iento d e Interrupción (RTI) q u e se encarga d e atender al periférico que solicitó la interrupción y realiza la operación d e E/S.

En el caso d e un procesador secuencial, la secuencia típica d e eventos que se produce en el tratam ien­to d e u n a interrupción es la siguiente:

1. U n periférico activa la línea d e petición de interrupción (IRQ).2. Cuando el procesador term ina d e ejecutar la instrucción en curso, com prueba si tiene alguna

petición d e interrupción pendiente.3. Si es así, el procesador alm acena el contexto d e ejecución (contador d e program a y registros de

estado) en la pila, descapacita las interrupciones y sa lta a la R TI, d u ran te la cual:

— Inform a al periférico q u e se h a reconocido su interrupción. Esto puede hacerse p o r software, accediendo al registro d e estado d d interfaz, o por hardware, m ediante una señal IN T A de reconocimiento d e in te rru p d ó n . Entonces el periférico desactiva IRQ.

— Salva en pila to dos los registros d e da to s y d iiecdones utilizados p o r la RTI.

Page 138: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

— Realiza la operación d e E/S co n el periférico.— R estaura los registros d e direcciones y d e datos.— Ejecuta la instrucción de re tom o d e interrupción.

4. El procesador vuelve a capacitar las interrupciones, restaura d contexto y re tom a al program a que estaba ejecutando an tes d e p asar a atender a la interrupción. D espués continúa con la ejecu- d ó n norm al del program a

La com probación d e peticiones d e interrupción pendientes (línea IRQ activada) se hace al final d e la ejecución d e cada instrucción, porque así sólo es necesario g u ard a r el con tado r de program a, el registro de estado y los registros accesibles p o r program a (registros d e da to s y direcciones) q u e modifica la RTI. Si se interrum piese una instrucción en m itad d e la ejecución sería necesario g u ard a r el valor de to dos los registros internos del procesador, es decir, el contexto de ejecución sería mucho m ás com plicado y costoso de alm acenar y restaurar.

Existen algunas excepciones, por ejem plo, en las instrucciones d e m uy larga duración, se com prueba a existen peticiones d e interrupción pendientes cada cierto tiem po o cuando se producen interrupciones muy prioritarias, q u e pasan a atenderse inm ediatam ente.

Sin em bargo, prácticam ente todos los procesadores d e hoy en d ía incorporan segm entación. P or lo tanto, se estarán ejecutando varias instrucciones al mismo tiempo en d procesador cuando se produzca la petición d e interrupción y cad a u n a d e ellas estará en u n a e tap a diferente d e ejecución. ¿Cóm o se tratan a i este caso las interrupciones? Las interrupciones d e E/S son consideradas excepciones en este tipo de procesador. Por lo tanto, las interrupciones se tratan con las técnicas d e resolución d e excepciones q u e se estudiaron en el capítu lo 1 para procesadores segm entados (secdón 1.5.4).

H asta aho ra se h a considerado la existencia d e u n a única línea de petición de interrupción, pero los procesadores actuales necesitan conectarse a m ultitud d e dispositivos periféricos diferentes, no sólo a uno. Esto obliga en m uchos casos a conectar varios dispositivos a u n a única línea d e petición de in terrup- d ó n y a im plem entar m ecanism os d e identificadón d e la fuente d e interrupción.

Cuando existen varias fuentes d e interrupción en una m ism a línea d e p e tid ó n es necesario un m e­canismo para identificar al periférico q u e h a originado la in te rru p d ó n y ejecutar la RTI adecuada para atender a ese periférico en particular. Existen d o s posibilidades:

• Identificación software por encuesta (polling). L a RTI exam ina uno a uno los b its d e estado de cada periférico hasta hallar d que tiene activado su bit d e petición d e in te rru p d ó n . U na vez detectado, re g 'ecuta su RTI, d u ran te la cual se debe desactivar el b it d e petición d e in te rru p d ó n del periféri­co. El m étodo d e encuesta introduce un m ecanism o de prioridades, porque en caso de peticiones sim ultáneas d e varios dispositivos, se atiende prim ero al periférico al que se encuesta prim ero. El p rindpal problem a de esta alternativa es q u e desperdicia tiem po consultando a dispositivos que no h an solicitado interrupción.

• Identificación hardware por vectores. E n este caso el periférico que h a solicitado la interrupción envía un código o número d e vector al procesador a partir del cual se puede calcular la dirección de comienzo d e la RTI d e ese periférico en la m em oria principal. N orm alm ente, cuando el periférico recibe la señal d e confirm ación o reconocim iento de interrupción IN T A envía su número d e vector a través del bus d e datos. Este m ecanism o es m ucho m ás rápido q u e d d e encuesta y la asignación de prioridades puede realizase d e m anera m ás flexible, d problem a es q u e el número d e d ispositi­vos que se pueden identificar con este m étodo depende del número d e bits que se utilicen p a ra el número d e vector. P or ejemplo, con un número d e vector d e 4 bits podem os identificar hasta 16 dispositivos, pero no más. U na posible solución es utilizar códigos de grupo, es d ed r, un mismo número de vector puede utilizarse para identificar a un g rupo d e varios dispositivos. C uando el procesador recibe un número d e vector d e grupo, la RTI debe identificar al dispositivo particu lar dentro d e ese g rupo m ediante encuesta (por software).

Page 139: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

D e cualquier m anera, la gestión de E/S m ediante interrupciones suele im plicar la necesidad d e un contro lador d e interrupciones o P IC que se encargue de d a r acceso a la única línea d e petición d e in te­rrupciones que incorporan los procesadores, que se encargue d e gestionar la identificación y la prioridad de peticiones sim ultáneas y que perm ita im plem entar esquem as de interrupciones multinivel, con enm as­caram iento selectivo, anidam iento, etc. (figura 2.26).

Este P IC suele incluirse en los chipsets o hubs del sistema y suele tener varias líneas de petición d e in­terrupción d e en trada y u n a d e salida que se conecta directam ente a la d d procesador. En m uchos casos, no se utiliza un único con tro lador d e interrupciones sino d o s o m ás conectados en cascada.

En un sistem a de interrupciones multinivel, existen varias líneas o niveles d e petición d e interrupción y a cad a línea d e interrupción se pueden conectar uno o varios dispositivos. Además, cada nivel suele tener asignada una prioridad d istin ta , porque hay q u e resolver de alguna m anera los conflictos que se producen por petidones simultáneas.

Si se producen peticiones sim ultáneas p o r la misma línea, el conflicto se resudve con alguno d e los m ecanismos estudiados anteriorm ente: m ediante encuesta (software) o m ediante vectores (hardware).

Cuando se producen peticiones sim ultáneas p o r líneas distin tas el problem a se suele resolver m edian­te un codificador de prioridades dentro del PIC , d e m anera q u e se atienda siempre prim ero a la línea m ás prioritaria .

Los sistemas d e in terrupdones m ultinivd perm iten enm ascarar o d escap ad tar selectivamente las in- te rrupdones por determ inados niveles. P ara ello se utiliza un registro d e m áscara. En este registro existe un bit p ara cad a nivel d e prioridad, d e m anera q u e si este b it vale uno el nivel de interrupción correspon­diente es tá habilitado y si vale cero, e s tá inhabilitado.

Con este tipo d e enmascaramiento se suele implementar d anidamiento de interrupciones. Este anida­miento permite que mientras se ejecuta la RTI d e un determinado nivd d e prioridad se inhiban las interrup­dones por d mismo nivd o inferiores, pero se puedan atender peticiones de interrupdón de mayor prioridad.

Ejem plo 2 .1 6

T ra ta m ie n to d e in te r r u p c io n e s c o n e l P IC Í8 2 5 9 .

S u p o n g a m o s q u e te n e m o s en el c h ip s e t s u r o ICH de l s is tem a do s c o n tro la d o re s PIC ¡8259 co n e c ta d o s en cascada. El esquem a de con e x ió n de cada u n o de estos c o n tro la d o re s es el de la f ig u ra de la pág ina s ig u ie n te , m u y s im ila r de u n o s d ise ñ o s de PIC a o tros .

Las líneas IRQ0-IRQ7 so n las de p e tic ió n de in te rru p c ió n a las q u e se co n e c ta n lo s d is p o s itiv o s de E /S , de m a y o r a m e n o r p rio r id a d . IN T es la p e tic ió n de in te rru p c ió n q u e le llega al p rocesado r, ges tionada p o r el PIC e IN TA es el re c o n o c im ie n to de la in te rru p c ió n p o r p a rte de l p rocesador. La seña l CS n o es m ás q u e la seña l de c h ip se lec t para escritu ra s y le c tu ra s en lo s re g is tro s de l PIC (no tie n e in flu e n c ia so b re la seña l de INTA).

Page 140: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

( ADATOS

Las líneas C AS 2-C A S0 son las líneas de cascada, q u e se u tilizan c u a n d o ha y m ás de un PIC en el sistem a. A c túan c o m o sa lida en el 8259 m a e s tro y c o m o en trada en lo s 8259 esclavos. Es la señal EN la q u e in d ica si el PIC actúa c o m o m a e s tro o c o m o esc lavo c u a n d o te n e m o s va rio s encadenados.

Por ú lt im o , las seña les RD y W R p e rm ite n le e r de lo s re g is tro s de l PIC o e s c rib ir so b re e llos , s ie n d o la señal AO la q u e se lecc iona lo s re g is tro s so b re lo s q u e el p ro ce sa d o r realiza la ope ra c ió n de lec tu ra /escritu ra .

Una vez c o m p re n d id o el esquem a de co n e x ió n , vea m o s c ó m o se d iseña el con tro lado r.T odos lo s re g is tro s in te rn o s de l m ic ro c o n tro la d o r PIC son de o c h o b its . Los m ás im p o rta n te s son:

• IRR (In te rru p t R equest R egister). Cada u n o de lo s b its de este re g is tro está aso c ia d o co n una de las líneas de p e tic ió n de in te rru p c ió n . Estos b its a lm acenan las p e tic io n e s de in te rru p c ió n pendien tes.

• ISR (In -S e rv ice R eg iste r). D e n u e vo cada u n o de lo s b its se asocia co n una línea de p e tic ió n de in te rru p ­c ió n . Pero en este caso só lo se activa el b it q u e c o rre s p o n d e a la in te rru p c ió n q u e se está p ro ce sa n d o en este m o m e n to .

• IM R (In te rru p t M ask Register). R e g is tro de e n m a sca ra m ie n to de in te rru p c io n e s .

La secuencia de re c o n o c im ie n to de una in te rru p c ió n co n un ú n ic o PIC y en el m o d o de ope ra c ió n m ás se n c illo es la s igu ie n te :

1. Una o m ás líneas IRQ son activadas p o r lo s p e rifé r ic o s co n e c ta d o s al PIC y es to a c tiva lo s c o rre s p o n ­d ie n tes b its de l IRR.

2. El PIC ¡8259 eva lúa la p r io r id a d de estas in te rru p c io n e s (m e d ia n te un c o d if ic a d o r de p rio r id a d ) y so lic ita una in te rru p c ió n al p ro ce sa d o r a c tiva n d o la línea INT.

3. C uando la el p ro ce sa d o r re co n o ce la in te rru p c ió n envía la señal INTA.

Page 141: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

4. Entonces el PIC activa el b it co rre sp o n d ien te a la in te rru p c ió n de m a y o r p rio ridad (la q u e va a ser p ro ce ­sada) en el ISR y borra ese m is m o b it en el IRR. En este c ic lo , el ¡8259 aún n o con tro la el b u s de datos.

5. Cuando el p ro ce sa d o r envía un se g u n d o INTA, el ¡8259 depos ita en el bu s de da tos un v a lo r de 8 b its que ind ica el n ú m e ro de v e c to r de in te rru p c ió n (type c o d e = o ffe e t PIC + n ° línea de IRQ). El p rocesado r m ultip lica este v a lo r p o r 4 para b u sca r en esa d irecc ión de m em oria la d irecc ión de co m ienzo de la RTI.

6. El b it de la in te rru p c ió n en el ISR p e rm a n e ce a c tiv o hasta q u e el p ro ce sa d o r envíe el c o m a n d o EOI (End o f In te rru p t) al f in a l de la ru tin a q u e tra ta la in te rru p c ió n .

Con este esquem a se pueden a te nd e r p e tic io n e s de hasta o c h o d isp o s itivo s . C om o es to se queda c o r to en la m a y o r p a rte de lo s casos, se u tilizan d o s n ive les de co n tro la d o re s , en el p r im e ro te n e m o s al PIC m aestro , y en el se g u n d o al PIC esclavo . S ó lo la sa lida INT de l m a e s tro está conectada a la en trada INT de p e tic ió n de in te rru p c ió n de l p rocesador.

Para co n e c ta r lo s PIC en co n fig u ra c ió n de cascada se conecta la sa lida IN T de l esc lavo a la en trada IRQ2 del PIC m ae s tro y sus e n tradas CAS a las sa lidas CAS de l m aestro . A dem ás, la en trada EN debe ser c o h e re n te con la fu n c ió n de cada u n o de lo s m ic ro c o n tro la d o re s , d e b e va le r 0 para el esc lavo y 1 para el m aestro .

D ebem os te n e r en cuen ta q u e la c o n e x ió n de un PIC esc lavo al PIC m a e s tro o rig ina una ree s tru c tu ra c ió n de l esquem a de p rio r id a d e s de lo s n ive les de in te rru p c ió n de l c o m p u ta d o r: se in te rca la n o c h o n u e vos n ive le s e n tre lo s q u e ya tu v ie ra el m a e s tro co nec tados .

La secuenc ia de re c o n o c im ie n to de una p e tic ió n de in te rru p c ió n en las líneas de l m a e s tro es la m ism a que ya h e m o s e xp lica d o . Si la p e tic ió n de in te rru p c ió n es en una de las líneas de un esc lavo , en tonces:

1. El PIC esc lavo de tec ta la p e tic ió n de in te rru p c ió n p o r una de sus líneas y ac tiva la señal INT.2. El PIC m ae s tro de tecta la p e tic ió n de in te rru p c ió n p o r la línea a la q u e se co n ec ta ese esclavo . A c tiva el

co rre sp o n d ie n te b it de l re g is tro IRR y adem ás la señal INT.3. El p ro ce sa d o r re c ib e esta señal y envía el p r im e r p u ls o de IN TA (esta señal está co nec tada a to d o s los

P IC 's de l s is tem a , ta n to al m a e s tro c o m o a lo s esclavos).4. El PIC m a e s tro vue lca en las líneas CAS el n ú m e ro de id e n tif ic a c ió n de l PIC esc lavo q u e debe a tende r

la in te rru p c ió n (el q u e la o rig in ó ).5. Tanto el m a e s tro c o m o el esc lavo lim p ia n el b it de la in te rru p c ió n q u e se a tie n de en sus re g is tro s IRR y

ac tiva n esos b its en sus re g is tro s ISR.6. Con el segundo pu lso de INTA, el esclavo vuelca en el b u s de da tos el n ú m e ro de l vec to r de in terrupción.7. El p ro ce sa d o r deberá e n v ia r d o s co m a n d o s de EOI, u n o al m a e s tro y o tro al esc lavo , cu a n do f in a lic e

de e je cu ta r la RTI. Para q u e es to fu n c io n e así, la RTI debe saber en cada ca so si está a te n d ie n d o a una n te rru p c ió n ges tionada d ire c ta m e n te p o r el m ae s tro o a tra v é s de una pa re ja m aes tro -esc lavo . E sto es necesario para q u e envíe u n o o do s co m a n d o s EOI respec tivam en te .

Con esta co n fig u ra c ió n m a e s tro -e sc la vo la f le x ib ilid a d en el tra ta m ie n to de in te rru p c io n e s es e levada, p u d ie n d o tra b a ja r co n d is tin ta s fo rm a s de a n id a m ie n to y e n m a sca ra m ie n to , p e rm it ie n d o la ro ta c ió n de p r io r i­dades, etc.

Page 142: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

2.9.3. E/S con acceso directo a memoria

La gestión de E/S program ada con espera d e respuesta o p o r interrupciones resulta poco eficiente para dispositivos periféricos d e a lta velocidad, sobre todo si hay que transferir una g ran can tidad de información en la operación d e en trad a o salida. A dem ás, am bas técnicas requieren d e tiem po d e proce­sador q u e se podría invertir en realizar o tras tareas d u ran te la transferencia d e inform ación.

La técnica d e Acceso Directo a M em oria (D M A ) perm ite la transferencia d e da to s en tre un periférico y la m em oria principal sin intervención del procesador, salvo en la fase d e inicialización d e los parám e­tros d e la transferencia (figura 2.27).

CPU

DatosD irecciones

IRQS in c ro

A rb itra jeR/W

.Dir. M e m o ria

■o o« t -*-► N.° pa labras

- 1 * * S e n tid o

D M A C

t_ D M A -R E Q

D isp o s itivoE/S

D M A -A C K

R/W -IO-

M em oriaP rinc ipa l

F ig u r a 2 .2 7

|_________________________________ E /S b a s a d a en acce so d ire c to a m e m o r ia (D M A ).__________________________________ [

En este caso es d e nuevo necesario un controlador, el con tro lador d e D M A (D M A C), q u e descargue de trabajo al procesador en lo q u e se refiere a las tareas d e E/S. E ste con tro lador tam bién suele integrarse a i los chipsets o hubs del sistem a.

El con tro lador de D M A (DM AC) se encarga d e la transferencia d e d a to s en tre un periférico y la m em oria principal sin intervención del procesador. P or lo tan to debe ac tuar com o m aestro del bus de m em oria d u ran te la transferencia D M A y debe ser capaz de:

• Solicitar el uso del bus m ediante las señales y la lógica d e arb itra je necesarias.• Especificar la dirección d e m em oria sobre la que se realiza la transferencia.• G enerar las señales d e control del bus: tipo d e operación (lectura/escritura), señales d e sincroniza­

ción, etc.

Este con tro lador suele incluir un registro de dirección d e m em oria q u e alm acena la dirección inicial de m em oria para la transferencia y q u e se increm enta/decrem enta después d e transferir c ad a palabra. Además su d e haber un registro de número d e palabras para alm acenar el número de palabras a transferir y q u e se decrem enta después d e transferir cada palabra. Y p o r últim o, suele haber un registro d e sentido que indique el sentido d e la transferencia de in fo rm adón desde el punto d e vista d d procesador, lectura o escritura.

Page 143: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

N orm alm ente una transferencia p o r D M A se divide en tres fases:

1. Inicialización de la transferencia. El procesador envía al interfaz del periférico los parám etros de la transferencia: n.° d e bytes a transferir, tipo d e transferencia (lectura/escritura) y o tra inform a­ción d e control. Además, accede a los registros del D M A C para program ar los parám etros d e la transferencia: dirección inicial d e m em oria, número d e palabras q u e se van a a transferir y senti­do de la transferencia. El procesador regresa a sus tareas y ya no se preocupa m ás d e la evolución de la transferencia d e E/S.

2. Realización de la transferencia. C uando el periférico e s tá listo p a ra transm itir/rec ib ir lo in­d ic a al D M A C activando la señal D M A -R E Q . El D M A C solic ita e l con tro l del bus d e m e­m o ria m ed ian te las líneas d e a rb itra je . El D M A C recibe la concesión del bus y ac tiva la señal D M A -A C K p a ra ind icar a l periférico q u e puede in ic iar la transferencia . El D M A C debe generar y p ro cesa r las señales del bus adecuadas: d irección d e m em oria so b re la que se realiza la transferencia , señales d e sincronización d e la transferencia , señales d e lectura/ esc ritu ra , e tc . D espués d e tran sfe rir c a d a p a lab ra el D M A C debe ac tua lizar sus registros de- crem en tando el registro d e núm ero d e pa lab ras e increm entando /decrem entando el registro d e d irecciones d e m em oria.

3. Finalización de la transferencia. H D M A C libera el bus d e m a n o ria y solicita u n a interrupción para indicar al procesador la finalización d e la operación d e E/S solicitada.

U na operación d e E/S gestionada d e esta m anera m ediante D M A puede degradar el rendim iento del procesador si el D M A C hace uso intensivo del bus d e m em oria, ya q u e si el bus está ocupado en una transferencia D M A , el procesador no puede acceder a la m a n o ria principal.

Este problem a se reduce con el uso de la je rarqu ía d e m em oria, ya que la mayor parte del tiem po, el procesador accede a la m em oria caché y no necesita utilizar la m em oria principal.

Aún así, se distinguen d o s m odos d e transfero icia en D M A :

• Transferencia DM A modo ráfaga. El D M A C solicita el control del bus y u n a vez que lo obtiene no b libera hasta haber finalizado la transferencia de todo d bloque de da to s com pleto (cuando el registro d e número de palabras llega a cero). P or lo tan to , la transferenda se realiza d e form a rá ­pida, pero du ran te el tiem po q u e d u ra la transferencia el procesador no puede utilizar la m a n o ria p rindpal, lo que puede d eg radar el rendim iento del sistema.

• Transferencia DM A modo robo de ciclo. El D M A C so lid ta d control del bus y cuando lo obtiene, re realiza la transferenda d e una única palabra. Después d D M A C libera el bus y vuelve a solici­tar su contro l tan tas veces com o sea necesario hasta haber finalizado la transferenda del bloque com pleto palabra a palabra. D e esta m anera no se degrada el rendim ioito d d sistem a aunque la transferoicia ta rd a m ás tiem po en llevarse a cabo.

Sea cual sea el m odo d e transferencia escogido, es necesario trabajar con direcdones d e m em oria para utilizar este mecanismo d e E/S. Pero, ¿con qué tipo d e direcciones trabaja d D M A C, virtuales o flacas? D e nuevo existen d o s opciones d e diseño:

• DMA Virtual. El D M A C utiliza direcciones virtuales q u e deben ser trad u d d as a físicas an tes de realizar los accesos a m em oria principal.

• DMA Físico. En este caso se utilizan direcciones flacas y no es necesario este proceso d e traduc- d ó n . Pero es necesario que d sistem a operativo ubique en la m em oria principal las páginas im ­plicadas en la o p erad ó n d e E/S y que estén en m arcos consecutivos, porque si no, al increm entar/ decrem oitar la dirección de m em oria se term inará p o r pasar la frontera d e un marco de página y se accederá a datos incorrectos. A d o n ás estas páginas deben bloquearse, d e m anera que no se remplacen h asta que la transferencia D M A finalice.

Page 144: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 2 .1 7

A c c e s o d i r e c t o a m e m o r ia c o n e l D M A C ¡8 2 c 3 7 .

De nuevo vam os a estudiar un e jem p lo con un con tro lado r de D M A concreto. Éste es su esquem a de conexión:

Las señales DREQ0-DREQ3 son las de p e tic ió n de s e rv ic io D M A de lo s p e rifé r ico s , ya q u e este c o n tro la d o r es capaz de a te nd e r c u a tro cana les de acceso d ire c to a m e m o ria . Las seña les DACK0-DACK3 son las de c o n c e ­s ión de se rv ic io D M A para estos c u a tro canales.

La señal CS (C h ip S e lec t) es la q u e debe a c tiva r el p ro ce sa d o r para acce d er a lo s re g is tro s de l con tro lado r. CLK es la señal de re lo j co m ú n al p rocesador, la m e m o ria p rinc ipa l, el D M A C y lo s p e rifé rico s . Y RESET es la se­ña l de re in ic io de l c o n tro la d o r, q u e p o n e a c e ro to d o s lo s re g is tro s p ro g ra m a b le s p o r el p rocesador. EOP (End o f P rocess) es una señal b id ire c c io n a l co n d o s fu n c io n e s : la u tilizan lo s p e rifé r ic o s para te rm in a r una trans fe renc ia D M A y ta m b ié n el D M AC para in fo rm a r a lo s p e rifé r ic o s de l f in a l de una tran s fe ren c ia .

La señal HRQ (H o ld R equest) es la de p e tic ió n de c o n tro l de l bu s de m e m o ria (BUS REO) y la HLDA (H o ld A ck ) la de co n ce s ió n de c o n tro l de l bu s (BUS GNT). La señal READY es la señal q u e ac tiva n la m e m o ria p r in c i­pal o el p e rifé r ic o c u a n d o n o pueden rea liza r la tra n s fe ren c ia D M A en el t ie m p o m ín im o es ta b lec ido (p ro to c o lo sem is íncrono).

Las señales M E M R y M E M W son a c tiva d a s p o r el D M A C para in d ic a r el t ip o de tra n s fe ren c ia q u e se va a realizar, M EM R para una le c tu ra de m e m o ria y M E M W para una e scritu ra en m em o ria .

IOR e IO W son m u y s im ila re s p e ro t ie n e n do s fu n c io n e s . D u ran te la ¡n ic ia lizac ión de l c o n tro la d o r, co n estas señales in d ica el p ro ce sa d o r si va a le e r (IOR) o e s c rib ir (IOW ) en a lg u n o de lo s re g is tro s de l DM AC. D uran te in a tra n s fe re n c ia D M A , las ac tiva el D M AC para in d ic a r el t ip o de tra n s fe ren c ia d esde el p u n to de v is ta de l p e ­r ifé rico , IOR para una lec tu ra de l p e rifé r ic o e IO W para una escritu ra .

El re s to de señales tie n e n q u e ve r co n el c o n tro l de l d ire c c io n a m ie n to de m em oria .Una vez c o m p re n d id o el esquem a de c o n e x ió n de l c o n tro la d o r, es m ás se n c illo co m p re n d e r su estruc tu ra

in te rna , co m p u e s ta casi en te ra m en te p o r re g is tro s :

• R e g is tro base de d ire cc ió n (16 b its). A lm a ce n a la d irecc ión de m e m o ria in ic ia l para la tra n s fe ren c ia D M A . Este re g is tro es in ic ia liza d o p o r el p ro ce sa d o r y n o se m o d ific a d u ra n te to d a la tra n s fe re n c ia . T enem os un re g is tro de este t ip o para cada canal, p o r lo q u e son c u a tro en to ta l.

• R eg is tro base co n ta d o r de p a lab ras (16 b its ). A lm a ce n a el n ú m e ro de pa lab ras q u e se van a tra n s fe r ir (m enos una) y es in ic ia liza d o p o r el p ro ce sa d o r (ta m p o c o se m o d ific a n d u ra n te la tran s fe ren c ia ). Tam bién te n e m o s c u a tro re g is tro s de este t ip o , u n o para cada canal.

• R e g is tro de d ire cc ió n actua l (16 b its ). Cada cana l t ie n e un re g is tro de d ire cc ió n actua l q u e a lm acena la d irecc ión de m e m o ria de la s ig u ie n te pa lab ra a trans fe rir. Su c o n te n id o es in c re m e n ta d o /d e c re m e n ta d o después de cada tra n s fe ren c ia (según las d ire c c io n e s de m e m o ria sean c re c ien te s o decrec ien tes).

Page 145: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

• R eg is tro co n ta d o r de p a lab ras ac tua l (16 b its ). Cada canal t ie n e un re g is tro co n ta d o r de p a lab ras actua l, que a lm acena el n ú m e ro de by te s q u e quedan p o r tran s fe rir. Tras cada trans fe renc ia se decrem en ta y c u a n do llega a ce ro , se fina liza la tra n s fe ren c ia actual.

• R eg istro de pe tic ión (4 b its). S irve para rea lizar pe tic iones de D M A p o r so ftw a re . Este reg is tro es necesario para las transfe renc ias m em o ria -m e m o ria , pues to que una m em oria n o es capaz de g enera r una pe tic ión h a rdw are de D M A para com enzar una transfe rencia . Posee un b it para cada canal de D M A . Las pe tic iones p o r so ftw a re n o se pueden enm ascarar, aunque están su je tas a la b g ic a de eva luación de p rioridades.

• R eg is tro te m p o ra l (8 b its). Se em p lea para a lm acena r lo s by te s q u e se tra n s fie re n en las o p e rac iones m em o ria -m e m o ria . Tras c o m p le ta r el p ro ce so de tran s fe ren c ia , el p ro ce sa d o r pu e de a ve rig u a r la ú lt im a palabra tra n s fe r id a le ye n d o este reg is tro .

• R e g is tro de m áscara (4 b its ). Cada cana l t ie n e aso c ia d o un b it de m áscara en este re g is tro , q u e puede se r a c tiva d o para in h ib ir las so lic itu d e s de D M A a tra vé s de la línea DREQ. Este b it es a u to m á tica m e n te a c tiva d o cada vez q u e se p ro d u c e un EOP (al f in a l de la tran s fe ren c ia ). Los b its de m áscara pueden m o ­d ifica rse p o r se p a ra d o o to d o s a la vez.

• R eg istro de estado (8 bits). En lo s cua tro p rim e ros b its alm acena las pe tic iones de se rv ic io D M A de los cua tro canales y en tos cua tro s igu ientes, si se ha fina lizado la transferencia en a lguno de e llos (TC: Term inal Count).

• R e g is tro de co m a n d o s (8 b its ) y R e g is tro de m o d o (6 b its). R eg is tros q u e p e rm ite n al p ro ce sa d o r p ro g ra ­m a r el m o d o de o p e ra c ió n y el t ip o de trans fe renc ia .

Estos co n tro la d o re s p e rm iten tres m o d o s de transfe renc ia : m o d o s im p le , m o d o b lo q u e y m o d o dem anda, así co m o m u ltitu d de co n figu rac iones y o p tim izac iones d iferentes, la rea lización de transfe renc ias m e m o ria -m e m o ­ria, e tc. Para te rm in á ro s te e jem p lo , ve m o s c ó m o se realizaría una transfe rencia sencilla en m o d o b lo q u e :

1. El p ro ce sa d o r p ro g ra m a al D M A C y al p e rifé r ic o para la tra n s fe ren c ia co m p le ta de in fo rm a c ió n .2 El p e r ifé r ic o so lic ita el se rv ic io D M A c u a n d o está lis to , a c tiva n d o DREQ.3. El D M A C so lic ita el c o n tro l de l bu s a c tiva n d o HRQ.4. El p ro ce sa d o r c o n c e d e el uso de l b u s a c tiv a n d o HLDA.5. El D M A C ac tiva DACK para av isa r al p e rifé r ic o de q u e pu e de co m e n za r la tra n s fe re n c ia . Las señales

DREQ y DACK se desactivan .6. Se realiza la tra n s fe re n c ia de una pa lab ra . Esta tra n s fe ren c ia dura c o m o m ín im o tre s c ic lo s de re lo j. Si

el p e r ifé r ic o o la m e m o ria neces itan m ás t ie m p o , deben u tiliz a r la señal READY.7. Se actualizan lo s re g is tro s de d ire c c ió n y cuen ta de p a lab ras actua les.8. Se c o n tin ú a hasta q u e el re g is tro c o n ta d o r de p a lab ras llega a ce ro . E n tonces se ac tiva n la seña l EOP

y el b it TC (Term ina l C oun t) ade cua d o de l re g is tro de estado.

C om o el re g is tro de cuen ta de p a lab ras pu e de i r d esde FFFF hasta 0, p o d e m o s rea liza r tra n s fe re n c ia s de hasta 64 KB desde una m ism a d ire cc ió n in ic ia l.

Tam bién co n lo s c o n tro la d o re s de D M A te n e m o s la o p c ió n de tra b a ja r co n va rios c o n tro la d o re s en cascada si se neces itan m ás de c u a tro canales. S ue le se r h ab itua l tra b a ja r co n d o s co n tro la d o re s , la línea HRQ de l i82c37 h ijo se co n ec ta a la DREQO del i82c37 p a d re y la H LD A a la DACK. E sto p e rm ite q u e las p e tic io n e s en el h ijo se p rop a g u e n hasta el padre .

T en iendo en cuen ta q u e el cana l de l ¡82c37 p a d re es e m p le a d o só lo para d a r una de te rm in a da p rio r id a d , el ¡82c37 h ijo n o pu e de e m itir d irecc ion e s n i seña les de c o n tro l p o r sí m is m o : esto podría causa r c o n flic to s con las sa lidas de l cana l a c tivo en c o n tro la d o r h ijo . Por ta n to , el p a d re se lim ita en el cana l al q u e se co n ec ta el h ijo a co n tro la r DREQ, DACK, H LD A y H R Q , d e ja n d o in h ib id a s las dem ás señales.

Por último hay q u e aclarar q u e la utilización d e una jerarqu ía d e m em oria provoca que en m uchos casos existan com o m ínim o tres copias d e la misma inform ación en el sistema: en m em oria caché, en m em oria principal y en m em oria v irtual.

Esto im plica com plicaciones en el diseño del hardw are y del sistema operativo cuando se introduce este tipo d e gestión d e E/S que perm ite q u e un periférico y la m o n o n a principal se transfieran inform a­ción directam ente, ya q u e se debe asegurar que:

• Si se modifican bloques d e la m em oria principal con una operación d e en trad a (escritura en m em o­ria), deberán invalidarse en la m em oria caché los bloques afectados p o r la operación.

• Antes de una operación de salida (lectura de memoria principal), deberá actualizarse este nivel de la jerarquía desde los buffers de escritura d e la memoria caché, las memorias caché d e post-escritura, etc.

Page 146: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Resumen de decisiones de diseño de la jerarquía de memoria

M e m o r i a c a c h é

D e c is ió n A lte rn a t iv a s D e c is io n e s a s o c ia d a s

T a m a ñ o d e la m e m o r ia caché

T a m a ñ o d e l m a rc o /b lo q u e

N ú m e ro d e n iv e le s d e m e m o r ia caché

C o n te n id o s d e c a d a n iv e l de m e m o r ia c a ch é

M e m o r ia s u n if ic a d a s pa ra in s tru c c io n e s y d a to s

M e m o r ia s d iv id id a s

P o lít ic a d e e m p la z a m ie n to

D ire c ta

A s o c ia t iv a

A s o c ia t iv a p o r c o n ju n to s N ú m e ro d e v ía s (m a rc o s p o r c o n ju n to )

P o lít ic a d e re e m p la z a m ie n to

A le a to r ia

LRU

FIFO

O tras

P o lít ic a d e e s c r itu raE s c r itu ra D ire c ta

te s t -e s c r itu ra

T ra ta m ie n to d e lo s fa llo s d e e s c r itu ra

S in a s ig n a c ió n en e s c r itu ra

C on a s ig n a c ió n en e s c r itu ra

U t i l iz a c ió n d e u n b u ffe r d e e s c r itu ra

U t i l iz a c ió n d e m e jo ra s s e n c illa s

P a labra c r í t ic a p r im e ro

R e a rra n q u e rá p id o

P a ra le lis m o e n tre a cc e s o s y t ra n s fe re n c ia s , e n tre a cce so s a

v a rio s n iv e le s d e la je ra rq u ía , e tc .

M e m o r i a p r i n c i p a l

D e c is ió n A lte rn a t iv a s D e c is io n e s a s o c ia d a s

T a m a ñ o d e la m e m o r ia p r in c ip a l

T e c n o lo g ía d e lo s m ó d u lo s de m e m o r ia

C o n e x ió n d e lo s m ó d u lo s de m e m o r ia

P a ra le la ( t ip o DDR)

S e rie ( t ip o XDR )

T é c n ic a s d e d e te c c ió n y c o rre c c ió n d e e rro re s

P o lít ic a d e re e m p la z a m ie n to de p á g in a s /s e g m e n to s

LRU

FIFO

O tras

Page 147: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

M e m o r i a v ir t u a l

D e c is ió n A lte rn a t iv a s D e c is io n e s a s o c ia d a s

T a m a ñ o d e la m e m o r ia v ir tu a l

O rg a n iz a c ió n d e la m e m o r ia v ir tu a l

P ag inada

S e g m e n ta d a

P a g in a d a /s e g m e n ta d a

T ra d u c c ió n d e d ire c c ió n v i r t u a l a d ire c c ió n f ís ic a

P ag inada

D ire c ta A s o c ia tiv a

M ix ta P o r n iv e le s

S e g m e n ta d a D ire c ta

B u s e s de E/S

D e c is ió n A lte rn a t iv a s D e c is io n e s a s o c ia d a s

N ú m e ro m á x im o de d is p o s it iv o s

L o n g itu d m á x im a d e l b u s

N iv e le s d e te n s ió n

F re cu e n c ia d e fu n c io n a m ie n to

E s p e c if ic a c ió n d e c o n e c to re s

N ú m e ro d e lín e a s

D a to s

F u n c ió n d e la s lín e a s D ire c c io n e s

C o n tro l

T ip o d e líneasU n id ire c c io n a le s

B id ire c c io n a le s

U t i l iz a c ió n d e la s líneasD e d ic a d a s

M u ltip le x a d a s

P ro to c o lo d e tra n s fe re n c iaN ú m e ro d e tra n s fe re n c ia s

p o r c ic lo

S ín c ro n o

P ro to c o lo d e s in c ro n iz a c ió nA s in c ro n o

S e m is ín c ro n o

D e c ic lo p a r t id o

P ro to c o lo d e a rb it ra jeC e n tra liz a d o

D is tr ib u id o

J e ra rq u ía d e b u se s

Page 148: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

G e s t ió n E/S

D e c is ió n A lte rn a t iv a s D e c is io n e s a s o c ia d a s

E sp e ra de re s p u e s ta

T ip o d e m e c a n is m o d e g e s t ió n de E /S

In te rru p c io n e s N ú m e ro , u b ic a c ió n y t ip o de c o n tro la d o re s PIC

Id e n t if ic a c ió n d e fu e n te s d e in te ­r ru p c ió n (S W o H W )

A s ig n a c ió n de p r io r id a d e s A n id a m ie n to

A c c e s o D ire c to a M e m o r ia N ú m e ro , u b ic a c ió n y t ip o de c o n tro la d o re s D M A C

M o d o d e tra n s fe re n c ia (rá fa g a o ro b o d e c ic lo )

D ire c c io n a m ie n to (v ir tu a l o f í ­s ico )

BIBLIOGRAFÍA Y LECTURAS RECOMENDADAS

HAMACHER, C.; VRANESIC, Z. & ZAKY, S. (2001): Computer Organization (5.a ed.), McGraw Hill.HANDY, J. (1998): The cache memory book (2.a ed.), Morgan Kaufmann.JACOB, B.; SPENCER, NG. & WANG, D. (2007): Memory Systems: Cache, DRAM, Disk, Morgan Kaufmann. OMONDI, A. R. (1999): The Microarchitecture o f Pipelined and Superscalar Computers (1.a ed.), Springer. PARHAMI, B. (2007): Arquitectura de Computadoras. De los microprocesadores a las supercompu¡adoras (1.a ed.),

McGraw Hill.PATTERSON, D. A. & HENNESSY, J. L. (2008): Computer Organization and Design: The Hardware/Software Inter-

face (4.a ed.), Morgan Kaufmann.PRINCE B. (1996): Semiconductor Memories: A Handbook o f Design, Manufacture and Application, Wiley. SHARMA A. K. (2002): Advanced Semiconductor Memories: Architectures, Designs, and Applications, Wiley-IEEE

Press.SILBERSCHATZ, A.; GALVIN, P. B. & GAGNE, G. (2008): Operating Systems Concepts (8.a ed.), Wiley. STALLINGS, W. (2007): Organización y arquitectura de computadores (7.a ed.), Pearson-Prentice Hall. TANNENBAUM, A. S. (2005): Structured Computer Organization (5.ñ ed.), Prentice Hall.

Page 149: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

PROBLEMAS2.1. Discutir q u é aplicaciones reales d e ejecución habitual cum plen las siguientes características:

a) Apenas se puede aprovechar la localidad espacial.b) Apenas se puede aprovechar la localidad tem poral.c) Buen aprovecham iento d e la localidad espacial.d) Buen aprovecham iento d e la localidad tem poral.e) Buen aprovecham iento d e los dos tipos d e localidad.

2.2. U na com pu tadora tiene u n a m em oria virtual d e 4 GB, u n a m em oria principal d e 1 G B y una m em oria caché d e 128 m arcos d e bloque. El tam año d e página es d e 4 KB, el d e bloque es d e 64 palabras y la palabra son 32 bits. Con esta je rarqu ía d e m em oria:

a) Explicar d formato de la direcdón virtual y de la direcdón física (con todas sus interpretado- nes posibles) para una memoria caché directa, asodativa por conjuntos de 8 vías y asodativa.

b) Calcular en cada tipo de caché el espacio necesario para alm acenar da to s y p ara alm acenar etiquetas.

2.3. U na aplicación accede a las siguientes direcdones d e memoria: 0,1,2,3,4,13,12,15,14,10,9,32,56, 28,0,4,10. D iscutir qué fallos iniciales, d e conflicto y d e capacidad se producen al realizar estos accesos co n las siguientes organizadones d e m em oria caché:

a) 4 m arcos d e 4 palabras cada uno, em plazam iento directo.b) 4 m arcos d e 4 palabras cada uno, em plazam iento asociativo con reem plazam iento LRU.c) 8 m arcos de 2 palabras cada uno, em plazam iento asociativo p o r conjuntos d e 2 vías con

leem plazam iento LRU.

2.4. Se ejecuta el siguiente código a i un procesador que incluye un nivel d e m em oria caché con dos m arcos d e cuatro palabras y em plazam iento directo:

for (i=0;i++;i<8)temp=A(i)*B(i)sum =sum +tem p;

La d irecdón de inicio del vector A es d irA y la dirección d e in id o del vector B es dirB . L as varia­bles to n p y sum se alm acenan en registros in ternos del procesador.Evaluar los fallos de caché q u e se producen al ejecutar este código, discutir su dependencia con dirA y dirB , y proponer soluciones q u e ev ito i los fallos q u e se producen.

2.5. Nos estam os planteando introducir un nivel d e m em oria caché en u n a jerarqu ía d e m o n o ria con las siguientes características:

• El tiem po d e acceso a m o n o ria principal es 100 veces el tiem po d e acceso a m o n o ria caché.• Los bloques son d e 4 palabras.• La m o n o ria caché tiene u n a tasa d e fallos del 5%.• El 25% d e los accesos a m em oria son escrituras y el 75% restante son lecturas.

La m em oria caché podría to ie r una d e estas d o s organizaciones, en am bos casos con asignación o í escritura:

• A lternativa 1: Caché d e em plazam ioito d irecto y con escritu ra directa.• A lternativa 2: Caché d e em plazam iento asociativo y con post-escritura sabiendo q u e en m edia

el 20% d e los bloques son m odificados m ientras se encuen tra en la m em oria caché.

Page 150: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

a) Realizar un análisis cualitativo acerca d e cuál d e las dos alternativas sería m ás conveniente. ¿En q u é casos obtendríam os mejor rendim iento co n cada una d e las alternativas? ¿D ónde están las principales diferencias?

b) Realizar un análisis cuantitativo acerca d e cuál de las d o s alternativas sería m ás convenien­te. ¿Con cuál d e las dos alternativas se podría ob tener un speedup mayor respecto d e la jerarquía sin m em oria caché?

2.6. Se diseña u n a jerarqu ía d e m em oria con un único nivel d e m em oria caché, con instrucciones y datos separados. El procesador realiza 5* 106 referencias p o r segundo a datos (de las cuales d 80% son lecturas y d 20% son escrituras) y 107 referendas p o r segundo a instrucciones (obviamente, todas lecturas). L a m em oria caché d e instrucciones tiene un tiem po d e acceso d e 1.5 ns, una tasa de fallos del 8% y d tam año d e bloque es d e 32 palabras. L a m em oria caché d e datos tiene un tiempo de acceso d e 1.2 ns, una tasa d e fallos del 9% y un tam año de bloque d e 16 palabras. La latencia d e m em oria principal es d e 92 ns.

a) Calcular el tiem po m edio d e acceso a m em oria p a ra instrucciones y p a ra da to s si la caché es de escritura directa.

b) Calcular el ancho d e banda con m em oria principal consum ido con esta caché de escritura directa.

c) Calcular el tiem po medio d e acceso a m em oria para instrucciones y p ara datos si la caché es de post-escritura, sabiendo q u e el 18% d e los bloques son modificados m ientras se encuen­tran en la caché d e datos.

d) Calcular el ancho de b an d a consum ido con esta caché d e post-escritura.e) C om parar el tiempo medio d e acceso y el ancho d e banda consum ido para las dos políticas

de escritura y justificar los resultados obtenidos.f ) Si finalmente se incluye la m ejor alternativa de las dos en el procesador, sabiendo q u e su

CPI, sin tener en cuen ta la m emoria, es de 1 y que su frecuencia de funcionam iento es d e 2.7 G H z, calcular el CPI real teniendo a i cuen ta la je rarqu ía d e m em oria. Para ello es necesario saber que el 28% de las instrucciones son cargas d e m em oria y el 7% son alm acenam ientos.

2.7. Repetir el ejercicio an terio r utilizando la técnica d e palabra crítica prim ero. ¿Cuál es la ganancia obtenida?

2.8. Se diseña una jerarqu ía d e m em oria con d o s n ivdes d e caché y las siguientes características:

• Caché de nivd 1 d e em plazam iento d irecto y escritura d irecta, unificada, con un tiempo de acceso d e 1 ns, u n a ta sa de fallos del 11% y tam año d e bloque d e 16 palabras.

• Caché de nivel 2 asociativa p o r conjuntos d e 4 vías y de post-escritura, unificada, con u n tiem ­po d e acceso d e 9 ns, u n a tasa d e fallos del 6% y un tam año d e bloque d e 32 palabras.

• M em oria p rin d p a l con u n a la ten d a d e acceso d e 92 ns.• T iem pos d e transferencia d e in fo rm adón en tre niveles despreciables.

Sabiendo q u e el 75% d e los accesos a m em oria son lecturas y el 25% restante son escrituras,

a) Calcular d speedup q u e se puede conseguir en esta jerarquía d e m em oria utilizando la téc­nica d e palabra crítica prim ero en la caché d e nivel 1.

b) Calcular el speedup que se puede conseguir en esta je rarqu ía d e m em oria utilizando la técnica d e re-arranque rápido en la caché d e nivel 1 (en m edia siem pre habrá que esperar a traer hasta la m em oria caché de nivel 1 la m itad del bloque que resuelve el fallo p a ra que llegue la palabra q u e h a so lid tado el procesador).

c) Discutir los resultados obtenidos y la conveniencia de am bas soluciones teniendo en cuenta además de las ganancias calculadas, la complejidad hardware d e cada una d e las soluciones.

Page 151: Diseño y Evaluación de Arquitecturas de Computadoras

2. CONCEPTOS BÁSICOS DE M E M O R IA Y E/S

2.9. En el caso d e la caché d e escritura d irecta del problem a 2.7, escoger la mejor opción d e en tre estas dos p a ra m ejorar su rendim iento justificando la elección con valores de tiem po medio de acceso a m em oria:

a) Incluir en la je rarqu ía un buffer de escritura con un tiempo de acceso de 2 ns y q u e evita realizar las escrituras d irectas a m em oria principal un 84% d e las veces.

b) Convertir la m em oria en una caché sin asignación en escritura.

2.10. Se diseña una jerarqu ía d e m a n o ria con d o s niveles d e caché y las siguientes características:

• Caché d e nivel 1 de instrucciones con un tiempo d e acceso d e 1 ns, u n a tasa d e fallos del 5% y un tam año d e b loque de 32 palabras.

• Caché d e nivel 1 d e d a to s d e escritu ra d irecta, con un tio n p o de acceso d e 2 ns, u n a tasa de fallos del 8% y un tam año d e bloque d e 16 palabras.

• Caché d e nivel 2 unificada con post-escritura, con un tio n p o d e acceso d e 12 ns, u n a tasa de fallos del 6% y un tam año d e bloque d e 64 palabras. El 19% de los bloques son m odificados m ia itra s están en este nivel d e caché.

• M a n o ria principal con u n a latencia d e acceso d e 80 ns.• Conexión d e la m em oria principal con la m em oria caché d e nivel 2 que perm ite transferir 1

palabra en 0 .4 ns.• Conexión de la m em oria caché de nivel 2 con la m a n o ria caché d e nivel 1 q u e perm ite tran s­

ferir 1 palabra en 0.1 ns.

Con to dos estos da to s y sabiendo que se utiliza siempre la técnica d e palabra crítica primero:

a) C alcular d tiem po m edio d e acceso a m a n o ria p a ra instrucciones.b) Calcular el tiem po m edio de acceso a m em oria p a ra da to s sabiendo q u e d 85% d e los acce­

sos son lecturas y el 15% restante son escrituras.c) Si esta je rarqu ía se incluye en u n procesador con CPI ideal d e 1 y frecuencia d e funciona­

miento de 2 G H z, calcular d C PI teniendo en cuen ta los tiem pos d e acceso calculados en los d o s apartados anteriores. P ara d io to ie r en c u o ita que el 25.5% de las instrucciones son load, y el 4.5% son store.

2.11. S en la je rarqu ía d e m em oria del problem a an terio r se añade u n buffer d e escritura a la caché de d a to s del nivel 1 q u e perm ite realizar la escritu ra de u n a palabra a i 1 ns y q u e evita to ie r que realizar la escritura d irecta en el segundo nivel d e caché un 80% d e las ocasiones, calcular de nuevo el C PI del procesador teniendo en cu en ta a la je rarqu ía d e m emoria.

2.12. Se diseña una jerarqu ía d e m em oria con dos niveles d e caché que utilizan la técnica d e palabra crítica prim ero y con las siguientes características:

• Caché de n ivd 1 de escritura d irecta sin asignación en escritura, unificada, co n u n tiem po de acceso d e 1.2 ns, una ta sa d e fallos del 6% y tam año d e bloque d e 8 palabras.

• Caché d e nivd 2 d e post-escritura, unificada, con un tiempo d e acceso de 11 ns, una tasa de fallos del 10% y un tam año d e bloque d e 32 palabras. El 30% d e los bloques son m odificados m ia itra s están en este nivel d e la m em oria caché.

• M a n o ria p rin d p a l con u n a la ten d a d e acceso d e 90 ns.• T iem pos d e transfero icia d e in fo rm adón en tre niveles despreciables.

Con todos estos da to s calcular el tiem po m edio d e acceso a m em oria sabiendo q u e el 70% d e los accesos son lecturas y el 30% restante son escrituras.

Page 152: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

AUTOEVALUACIÓN _________________________________________1. ¿Qué tecnologías se utilizan en la actualidad para fabricar los diferentes niveles de una je ­

rarquía de memoria? ¿Por qué?

2. ¿Cómo se calcula el tiem po medio de acceso a memoria cuando se tiene una jerarquía de memoria con un nivel de caché, una memoria principal y una memoria virtual?

3. ¿Qué alternativas existen para el emplazamiento de datos en una memoria caché? ¿Cuáles son las ventajas e inconvenientes de cada una de ellas?

4. ¿Para qué se utiliza un buffer de escritura en una memoria caché de escritura directa? ¿Y en una memoria caché de post-escritura?

5. ¿En qué consiste la técnica de palabra crítica primero?

6. ¿Cuáles son las mejoras que han introducido las memorias DDR, DDR2 y DDR 3 respecto de las SDRAM?

7. ¿Qué alternativas existen para traducir la dirección virtual a dirección física en el caso de una memoria virtual paginada?

8. ¿Cómo se calcula el ancho de banda de un bus?

9. ¿Cuáles son las jerarquías de buses habituales en las computadoras personales actuales?

10. ¿Qué diferencias hay entre la gestión de E/S mediante interrupciones y acceso directo a memoria (DMA)?

Page 153: Diseño y Evaluación de Arquitecturas de Computadoras

Técnicas de aumento de prestaciones para procesadores

3.1. P la n ifica c ió n d in á m ica de in s tru cc io n e s3.2. P re d icc ió n d in á m ica de sa ltos3.3. E m is ió n m ú lt ip le de in s tru cc io n e s3.4. E specu lac ión3.5. M u ltith re a d in g

Page 154: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En el capítulo 1 d e este libro se h a propuesto u n a m etodología p a ra diseño d e procesadores R ISC cuya ú ltim a fase o e tapa consiste en optim izar d prim er diseño obtenido, capaz de ejecutar el repertorio de instrucciones escogido y con las técnicas d e diseño básicas estudiadas en ese prim er capítulo, ajustán­dose a las especificaciones d e área y coste, a la funcionalidad d d procesador, a las lim itaciones de calo r y potencia, etc.

El objetivo d e este capítulo es analizar todas las técnicas y herram ientas disponibles en la actualidad para llevar a cabo esta op tim izadón. El capítulo com ienza estudiando técnicas dinám icas p ara la resolu- d ó n d e riesgos de da to s y control en procesadores segmentados, la p lan ificadón dinám ica y la predicción dinám ica de saltos respectivamente. Estas técnicas son esendales para evitar las paradas en ru tas de datos m ultifundonales o bifurcadas.

El objetivo d e estas técnicas es conseguir el CPI ideal d e 1 que se persigue con la segm entación re­solviendo dentro del propio procesador los riesgos causados por los diferentes tipos de dependendas de datos y d e control, si es necesario, ejecutando las instrucciones fuera d d orden en el q u e aparecen en el código. Pero se puede in ten tar reducir el C PI por debajo d e 1 em pleando para ello técnicas d e emisión múltiple d e instrucciones, es decir, técnicas que perm itan en cad a ciclo comenzar, ejecutar y term inar m ás de u n a instrucción.

En este libro se introducen dos alternativas p a ra realizar es ta em isión múltiple: los procesadores VLIW y los procesadores superescalares. En el prim er caso, es esencial d trabajo realizado p o r el com pi­lador para conseguir el rendim iento deseado. E n el segundo caso, se suele com binar la em isión m últiple con especulación basada en hardware. Es d ed r, si se pretende aum entar el rendim iento del procesador em itiendo m ás d e una instrucción p o r ciclo, es necesario q u e el hardware tenga la capacidad de especular, de avanzar en la ejecución d e instrucdones q u e todavía no es seguro q u e se deban ejecutar ya q u e depen ­den d e predicciones anteriores, p a ra que pueda aprovechar así al máximo todos los recursos d e ejecución disponibles.

Todas estas técnicas se basan en explotar el paralelism o a nivel de instrucción (ILP), lim itado siempre por las características d e los códigos q u e se ejecutan. Por ello, para term inar d capítulo, se presenta el m ultithreading, q u e in ten ta superar estas lim itaciones explotando el paralelism o a nivel d e thread.

Planificación dinámica de instruccionesEn el capítu lo 1 se h a visto cóm o los riesgos d e da to s RAW pueden em peorar significativam ente

d rendim iento d e los procesadores segm entados m ultifuncionales y cóm o el adelan tam iento , la única técnica hardw are estu d iad a h a s ta el m om ento p a ra so lucionar estos riesgos d e datos, no puede ev itar la m ayor p a rte d e las p a rad as provocadas p o r estos riesgos. D e hecho, ni siquiera en procesadores unifuncionales m uy sencillos es ta técnica nos g aran tiza q u e no se p roduzcan p a rad as deb idas a riesgos de datos.

Resumiendo, con lo estudiado hasta ahora:

• S al decodificar u n a instrucción alguno d e sus operandos depende d e una instrucción q u e está actualm ente en ejecución en el procesador y esta dependencia provoca un riesgo, se in ten ta solu­cionar este riesgo co n u n cortocircuito o adelantam iento.

• S esto no es posible, se para el avance d e la instrucción hasta que los operandos que se necesitan estén disponibles.

• Además el com pilador y/o el desarro llador pueden hacer una planificación estática que ordene las instrucciones d e m anera q u e se eviten los riesgos orig inados por las dependencias.

La planificación d inám ica d e instrucdones in tenta red u d r al m áxim o el núm ero d e paradas del p ro ­cesador m odificando el orden d e las instrucciones en tiem po d e ejecución para aprovechar al máximo el

m

Page 155: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

paralelism o a nivel d e instrucción (ILP) y q u e los recursos del procesador estén desocupados d m enor tiempo posible.

Cuando se utilizan técnicas d e planificación dinám ica la e tap a F de búsqueda d e in stru cd ó n suele complicarse ligeramente, ya que se buscan instrucciones en la m em oria caché de instrucdones a la mayor vdocidad posible y se alm acenan, norm alm ente, predecodificadas, en u n a co la de instrucciones d e donde se pueden ir retirando para planificar cuáles se deben ejecutar a i el procesador en cada m om ento. La predecodificadón de instrucciones suele realizarse cuando las instrucciones pasan d e la caché de nivel 2 a la caché d e n ivd 1 para q u e luego la decodificadón sea m ás rápida. E sta predecodificadón suele añad ir en tre 3 y 8 bits d e inform ación a cada instrucción.

La parte d d procesador que se encarga dé las tareas asodadas a la etapa F su d e denom inarse Front-End, mientras que d núdeo de planificadón, ejecudón y escritura d e resultados su d e denom inarse Back-End.

La etapa D se suele d ividir a i d o s fases, en la prim era (que norm alm ente se sigue do iom inando D de decodificadón) se realiza la decodificación d e las instrucciones y se com prueban los riesgos, m ientras que a i la segunda se realiza la lectura d e operandos (LO).

Tras la e tap a de decodificación las instrucciones se su d en enviar a algún tipo de estruc tu ra hardware (norm alm ente denom inada ventana de instrucdones) donde esperan a poder ejecutarse. La lectura de operandos puede realizarse antes d e enviar las instrucciones a esta estructura, o icargada de realizar la planificación, o ya en la propia ventana d e instrucciones.

D e hecho la planificación d inám ica se basa a i buscar y decodificar las instrucdones en d orden se­cuencial en el q u e aparecoi en el código, pero en perm itir q u e la lectura de operandos y las etapas poste­riores se realicen fuera d e orden. Es decir, la a n is ió n d e instrucciones (E), q u e no es m ás q u e com probar que éstas tienen disponibles sus operandos y las unidades funcionales q u e necesitan p a ra ejecutarse, puede desordenarse p a ra que los riesgos d e da to s no obliguen a p a ra r el procesador.

La ejecución de instrucciones fuera d e orden conlleva la aparición d e riesgos asociados a dependen- d a s W AR y WAW incluso en el caso d d procesador segm entado unifuncional, po r lo q u e estos riesgos, que hasta aho ra no habían aparecido para este tipo de procesador cuando todas las instrucdones pasa­ban por las m ism as etapas, deberán resolverse tam bién d e alguna m anera.

Hay d o s tipos d e técnicas d e planificación dinám ica, las centralizadas y las distribuidas, según se o icargue d e realizar el reordenam iento una unidad hardware especializada o se distribuya la responsabili­dad d e la planificación o itre diferentes m ódulos. Es ded r, se distinguen dos tipos d e planificación según la vo itana d e instrucciones esté centralizada o distribuida. En cualquier caso, la planificación d e instruccio­nes aritm ético-lógicas su d e realizarse independientonente de la planificación de instrucciones d e acceso a m em oria, ya que para estas últimas, los algoritm os d e planificación tienen en cuen ta q u e la je rarqu ía de m onoria no es ideal, q u e la traducción d e dirección virtual a física puede ser una e tap a costosa, etc.

3.1.1. Planificación de instrucciones de acceso a memoria

Las instrucciones d e acceso a m em oria siem pre im plican tres etapas u n a vez q u e se han decodificado y leído sus operandos:

• Cálculo d e la d irecdón d e acceso a m onoria .• Traducción d e la dirección virtual obtenida a dirección física.• Acceso a la m em oria d e datos.

El cálculo de la dirección d e acceso a m em oria suele im plicar la realizadón de una sum a d e enteros ya que el m odo d e d irecdonam iento m ás com ún es el indirecto con desplazam iento.

En cuan to a la traducción d e d irecdón virtual a dirección física, se h an estudiado las diferentes a l­ternativas q u e existen en el capítulo 2. Y en este mismo capítulo tam bién se han in troduddo todos los conceptos necesarios para com prender cóm o se realiza el acceso a la m em oria de datos, que en el m ejor

Page 156: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

de los casos puede ser u n acierto en la caché d e d a to s d e nivel 1 y a i el peor d e los casos puede im plicar un acceso a m em oria principal (el acceso a m em oria v irtual ya implica un cam bio d e contexto).

Por lo tanto, de la m ism a form a que se bifurcan las instrucciones de com a flotante hacia unidades funcionales diferentes d u ran te la e tap a d e ejecución a i los procesadores segm entados multifuncionales, las instrucciones de acceso a m em oria se pueden bifurcar tam bién p o r o tro cam ino siempre y cuando se añada u n a nueva ALU o sum ador de en teros a la ru ta d e da to s para q u e puedan realizar el cálculo d e su dirección efectiva (figura 3.1).

---------------------------------------------------------------------------------------------------------------------------------------------------R uta d e d a to s d e un p ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n d in á m ic a

de in s tru c c io n e s .

La etapa X d e estas instrucciones d u ra rá m ás o m enos ciclos dependiendo d e los aciertos y fallos que se produzcan en la traducción de dirección v irtual a física y en el acceso a la m em oria d e datos.

A la ho ra d e decidir si es posible planificar las instrucciones d e acceso a m em oria, desordenando el orden secuencial en d q u e aparecen en los programas, lo habitual es no perm itirlo. Es decir, casi todas las arquitecturas con planificadón d inám ica obligan a m antener el orden d e los accesos a m o n o n a y d e esta m anera garantizan un m odelo d e consistenda d e m o n o ria fuerte. E sta decisión es fácil de justificar con la siguiente secuencia de instrucciones:

S.D F5,0(R10)L.D F 1,400(R7)

Si se perm ite que la instrucción d e carga se ejecute antes que la de alm acoiam iento, p o r ejemplo, porque el valor d e F5 no está todavía disponible para q u e se pueda ejecutar el alm acenam ioito , puede ocurrir que al calcular la dirección d e acceso a m em oria d e este alm acenam iento co in d d a co n la d e la carga, y haya un riesgo RAW no resuelto correctam oite. Al contrario que a i el capítulo 1, la s ituadón en

Page 157: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

la q u e 0+[R10]=400+[R7] puede generar un riesgo RAW a través d e la m o n o ria (ya que en un procesador más com plejo no todas las instrucciones pasan p o r las mismas etapas y de form a ordenada), p o r d io se sude obligar a q u e las instrucciones d e acceso a m em oria se ejecuten en orden.

Por o tro lado, si las direcciones d e acceso a m em oria son diferentes y este riesgo no existe, poder avan­zar en la ejecución d e la lectura d e m em oria aunque d alm acenam iento esté parado, p o r ejemplo, p o r un fallo del TLB en la traducción de dirección virtual a física o p o r un fallo d e la caché d e datos, m ejoraría bastante las prestaciones del procesador.

La ejecución d e los accesos a m em oria en desorden sólo suele perm itirse cuando el procesador incor­pora m ecanismos p a ra deshacer lo que se ha ejecutado incorrectam ente. Com o se verá un poco m ás ade­lante, esto ocurre en procesadores q u e perm iten la especulación, pero no en los q u e solam ente incorporan técnicas de p lan ificadón dinám ica.

3.1.2. Planificación dinámica de instrucciones centralizada

En este tipo d e técnica d e planificación se incluye en d procesador u n a estructu ra hardw are dedicada específicamente a contro lar la planificadón dinám ica d e instrucciones. E sta un idad suele denom inarse ventana d e instrucciones o p izarra (scoreboard).

La ventana d e instrucciones o p izarra perm ite que las instrucciones se ejecuten fuera d e orden siem­pre q u e tengan sus operandos disponibles y recursos sufidentes para su ejecución. Se encarga de p lan i­ficar dinám icam ente d orden a i d que deben ejecutarse las instrucdones resolviendo todos los riesgos (RAW, WAW y W AR) e in tentando m inim izar el número d e paradas en el procesador.

En el nanoM IPS se utiliza u n a estructu ra denom inada P izarra y to d as las instrucciones pasan por cuatro e tapas una vez q u e se re tiran d e la cola d e instrucdones (figura 3.2):

R u ta d e d a to s d e l n a n o M IP S s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n b a s a d a en P izarra.

Page 158: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

1. Decodificación/Emisión (E ). E sta es la últim a e tap a q u e debe ejecutarse en orden. L a instrucción se decodifica y se em ite si:

• Hay al m enos u n a en trada libre en la Pizarra.• La unidad funcional q u e necesita la instrucción p a ra ejecutarse es tá libre.• N inguna instrucción activa tiene com o registro destino el mismo que ella (riesgo WAW).

D e esta m anera se resuelven dinám icam ente los riesgos WAW y queda reservada la unidad fun­cional q u e la instrucción va a utilizar.

2. Lectura de operandos (LO). L a P iza rra com prueba la d ispon ib ilidad d e los o p eran d o s que necesita la instrucción teniendo en c u en ta q u e u n op eran d o e s tá d ispon ib le si n in g u n a ins­trucción q u e se haya em itido an te rio rm en te tiene q u e escrib ir es te operando . Si to d o s los o p eran d o s están disponibles, la P iza rra o rd en a a la un idad funcional q u e lea los operandos y q u e com ience la ejecución. Por lo ta n to los riesgos RAW se resuelven d inám icam ente en e s ta fase.

3. Ejecución (X). En la unidad funcional adecuada p a ra la instrucción y en tan to s ciclos com o sea necesario para que la operación se complete. L a unidad notifica a la P izarra q u e tiene el resulta­do listo cuando term ina.

4. Escritura de resultados (W ). L a P izarra com prueba si existen riesgos W AR. Si no existen, deja que se escriba directam ente el resultado producido p o r la u n idad funcional en el registro ade­cuado.

Cuando se utiliza planificación d inám ica en d nanoM IPS, se dejan d e utilizar algunas d e las m ejoras que se introdujeron en el diseño d e la ru ta d e da to s para d a r soporte a la segmentación y q u e ya no son tan necesarias o com plicarían dem asiado el diseño del planificador. P or ejemplo, en cada ciclo d e reloj se puede leer o escribir en el banco d e registros, pero ya no se establecen turnos, y los adelantam ientos no se utilizan, to dos los riesgos se resuelven m ediante paradas.

L a co m p ro b ac ió n d e riesgos RAW y W AR se hace en las e ta p a s d e lec tu ra d e o p e ran d o s y e s ­c r itu ra d e re su ltad o s respectivam ente. L a reso lución d e esto s riesgos se rea liza m edian te p a rad as en la p ro p ia in stru cc ió n , pero e sta s p a ra d a s no tien en p o r q u é a fec ta r a o tra s instrucciones. El p eo r caso re lac io n ad o con esto s riesgos se ría q u e u n a in strucc ión p a ra d a en la e ta p a LO p orque a lguno d e sus o p e ran d o s n o e s tá d isp o n ib le h u b ie ra reservado en su em isió n u n a u n id ad funcional q u e p u d ie ra e s ta r siendo u tilizad a p o r o tra in strucc ión p o s te rio r q u e sí tu v ie ra d ispon ib les sus operandos.

Por o tro lado, la com probación d e riesgos WAW se realiza en la e tap a d e em isión d e instrucciones y este tipo d e riesgo tam bién se resuelve m ediante paradas. Pero las paradas q u e se realizan p a ra resolver este tipo de riesgo sí que afectan a las instrucciones posteriores, ya q u e la em isión d e instrucciones se debe realizar en orden.

R ira im plem entar dinám icam ente esta planificación, d nanoM IPS incluye en la p izarra tres estruc­turas in ternas d e da to s (figura 3.3):

• Estado de las instrucciones. C ad a instrucción m antiene u n a en trad a actualizada en esta estructu ra con inform ación acerca d e la operación q u e debe realizar, la unidad funcional q u e h a reservado y la ú ltim a etapa d e ejecución q u e h a com pletado.

• Estado de las unidades funcionales. C ada unidad funcional m antiene u n a en trada actualizada en esta estructura. Estas en tradas indican si la unidad está ocupada, la operación q u e se está realizando y cuáles son los registros fuente (o la unidad funcional q u e va a escribir en ellos) y registro destino.

• Estado del banco de registros. C ad a registro m antiene u n a en trad a actualizada en la que alm acena la un idad funcional que tiene que escribir su resultado en él.

Page 159: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

Estado de las instrucciones

mstroedórt |' O p t t á í l ó t f | ' U F R e s e r v a dE tap a d é ]E jecuc ión

C o m p le ta d a

w—H I--- 1 II Él

I IO p e ra c ió n F u e n te i R eg .F u en te 2 F lag F u e n te 1 F la g F u e n te 2 UF F u e n te 1 U F F u e n te 2

Estado del banco de registros

Estado de las Unidades

FuncionalesAdd/Su b

M u lt /D iv

lo a d / S to re

F ig u r a 3 .3

Im p le m e n ta c ió n d e la P iza rra en e l n a n oM IP S .

Ejem plo 3.1

Planificación dinámica de instrucciones con el a lgoritm o de la Pizarra en el nanoMIPS(sin riesgos WAR o WAW).

S u p o n g a m o s q u e se e jecu ta el s ig u ie n te fra g m e n to de c ó d ig o en el nanoM IP S q u e u tiliza p la n ifica c ió n d inám ica basada en la P izarra co n tre s A LU s de e n te ro s con la tenc ia 1 c ic lo , tre s su m a d o re s /re s ta d o re s en com a f lo ta n te con la tenc ia 4 c ic lo s y 2 m u ltip lic a d o re s /d iv is o re s en com a flo ta n te co n la tenc ia de 8 c ic lo s para la m u ltip lic a c ió n y 10 para la d iv is ió n . N in g u n a de las u n id a de s en co m a f lo ta n te está segm entada.

A d e m á s , se supone q u e las in s tru cc io n e s de carga y a lm ace n a m ie n to s iguen el m is m o c a m in o q u e las in s tru cc io n e s de en te ro s , u tiliz a n d o las m ism a s A LU s y co n 1 c ic lo de la tencia .

In s tru c c ió n

L.D F1,0(R0) 1 2 3 4

L.D F2,100(R0) 2 3 4 5

A D D .D F3,F1,F2 36 RAW 7-10 11

SUB.D F4,F1,F2 4 7RE 8-11 1 2

M U L.D F5,F3,F4 5 I 3 R A W 14-21 22

DIV.D F6,F10,F1 6 8 RE 9-18 19

S.D F5,200(R0) 7 2 3 R A W 24 25

ADD.D F8,F6,F12 8 20RAW 21-24 2 6 *

M U L.D F13,F14,F15 1 9 " E 2 1 RE 2 2 - 2 9 30

S.D F8,400(R0) 20 27pAw 28 29

Page 160: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Este sería el d iagram a te m p o ra l de e jecuc ión de las in s tru cc io n e s sin te n e r en cuenta la e tapa de búsqueda de in s tru c c ió n q u e las de ja a lm acenadas en la co la de in s tru cc io n e s . Se p u e d e o b se rva r que:

• La e m is ió n d e in s tru c c io n e s s ie m p re se rea liza en o rd e n , e l re s to d e e ta p a s ya p u e d e n d e s o rd e ­na rse .

• En es te p r im e r e je m p lo s ó lo se h a n p ro d u c id o r ie s g o s de d a to s R A W y r ie s g o s e s tru c tu ra le s (RE), o b ie n p o r e l b a n c o de re g is tro s (en las e ta p a s LO y W ) o b ie n p o r las u n id a d e s fu n c io n a le s (en el c ic lo 9 la m u lt ip l ic a c ió n n o se p u e d e e m it ir p o rq u e n o t ie n e lib re la u n id a d fu n c io n a l q u e n e ce s ita , se e m ite en e l c ic lo 19 q u e es e l p r im e r c ic lo en e l q u e es tá d is p o n ib le un m u lt ip l ic a d o r /d iv is o r en co m a flo ta n te ) .

• La parada en la e m is ió n de una in s tru cc ió n a fecta a to d a s las in s tru cc io n e s p o s te r io re s p o rq u e la e m i­s ión debe m a n te n e rse en o rden .

• T od o s lo s r ie sgo s se han resu e lto co n paradas.

Y si p o r e je m p lo , no s p re g u n ta m o s p o r el es tado de las e s tru c tu ras in te rn a s de la P izarra al c o m e n za r el c ic lo 19, te n d ría m o s :

In s tru c c ió n O perac ión U F rese rvadaE tapa

de e jecuc ión c o m p le ta d a

M U L.D F5,F3,F4 M u lt M u lt/D iv 1 LO

DIV.D F6,F10,F1 D iv M u lt/D iv 2 X

S.D F5,200(R0) A lm a ce n a m ie n to E n t 1 D/E

A D D .D F8,F6,F12 A dd A d d /S u b 3 D/E

UF O cup o p Rd Rs1 Rs2 Flgsl Flgs2 UFs1 UFs2

E n t 1 SÍ A lm — F5 RO NO SÍ M u lt/D iv 1 —

E n t 2

E n t 3

A d d /S u b 1

A d d /S u b 2

A d d /S u b 3 SÍ A d d F8 F6 F12 NO SÍ M u lt/D iv 2 —

M u lt/D iv 1 s í M u lt F5 F3 F4 SÍ SÍ — —

M u lt/D iv 2 s í D iv F6 F10 F1 SÍ s í — —

. .. F5 F6 F7 F8 . .. Reg

SÍ SÍ SÍ O cup

M u lt/ D iv 1

M u lt/ D iv 2

A d d / S u b 3

UF

Page 161: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

Ejem plo 3 .2

Planificación dinámica de instrucciones con el a lgoritm o de la Pizarra en el nanoMIPS(con todo tipo de riesgos).

S upongam os q u e se e jecuta el s ig u ie n te fra g m e n to de có d ig o en el m is m o nanoM IP S de l e je m p lo anterior.

In s tru c c ió n D /E LO X W

L.D F1,0(R0) 1 2 3 4

L.D F2,100(R0) 2 3 4 5

DIV.D F3,F1,F2 3g R A W 7-16 17

A D D .D F4,F1,F3 4 1QRAW 19-22 23

SUB.D F1,F1,F2 5 7 * 8-11 1 9 W AR

M U L.D F1,F6,F7 2 Q w a w 2 1 22-29 30

ADD.D F8,F4,F3 21 2 4 RAW2 5 - 2 8 2 9

DIV.D F3,F6,F1 2 2 31RAW 32-41 42

S.D F3,200(R0) 2 34 3 R A W 44 4 5

S.D F8,64(R0) 24 3QRAW 31 32

Este sería el d iag ram a te m p o ra l de e jecuc ión de las in s tru cc io n e s sin te n e r en cuenta la e tapa de búsqueda de in s tru c c ió n q u e las de ja a lm acenadas en la co la de in s tru cc io n e s . Se p u e d e o b se rva r que:

• La e m is ió n de in s tru c c io n e s s ie m p re se rea liza en o rd e n , el re s to de e tapas y a pueden desordenarse .• En este e je m p lo se p roducen to d o t ip o de riesgos, to d o s e llos se resue lven con paradas. Se p ro d u ce un

r iesgo W AR p o r F1 en tre las in s trucc iones AD D .D y SUB.D. Por eso la in s tru cc ió n de resta n o pu e de esc rib ir su resu ltado en el reg is tro F1 hasta el c ic lo 19, una vez q u e la ins tru cc ió n de sum a haya le íd o sus operan- d o s en el c ic lo 18. En el caso de l r iesgo W A W q u e se p ro d u c e p o r F1 en tre la in s tru cc ió n SUB.D y la MUL.D, no pu e de e m itirse la segunda ins tru cc ió n hasta q u e la p rim era no ha fina lizado y ha escrito su resu ltado en el re g is tro F1. C om o esto o cu rre en el c ic lo 19 la m u ltip lica c ión no pu e de e m itirse hasta el c ic lo 20.

• La parada en la e m is ió n de una in s tru c c ió n a fecta a to d a s las in s tru c c io n e s p o s te r io re s p o rq u e la em is ión debe m an te n e rse en o rden .

En general, este tipo d e técnicas d e planificación se ven m uy lim itadas p o r los siguientes factores:

• La necesidad d e resolver los riesgos W AR y WAW m ediante paradas.• H número y el tipo de unidades funcionales disponibles en la ru ta d e datos.• El número d e en tradas en la ventana d e instrucciones o pizarra, que determ ina cuán tas instruc­

dones se pueden evaluar p a ra encon trar las secuencias adecuadas de instrucciones independientes que se puedan planificar y ejecutar aprovechando los recursos disponibles en el procesador.

Por eso la m ayor parte de los procesadores actuales utilizan técnicas d istribuidas com o las q u e se presentan en la sección siguiente.

3.1.3. Planificación dinámica de instrucciones distribuida

En este tipo d e planificación no existe una unidad hardw are centralizada q u e se encargue d e la or­denación dinám ica de instrucciones. L a ventana d e instrucdones se distribuye en tre varias estructuras hardware denom inadas consignas o estaciones d e reserva.

Page 162: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

C ada unidad funcional puede tener su prop ia estación d e reserva o se puede d iseñar la ru ta d e datos de m anera q u e varias estaciones d e reserva com partan la misma unidad funcional, organizando así las estaciones d e reserva según el tipo d e instrucción que pueden ejecutar: enteros, sum a/resta d e com a flo­tante, m ultiplicación/división d e com a flotante, etc.

D i este caso las instrucciones se alm acenan decodificadas en la cola d e instrucdones d e m anera que las etapas F y D son etapas p rd im inares a la planificación. L a ú ltim a e tap a que se realiza en orden es, de nuevo, la q u e se denom ina de emisión (E), en la q u e se retiran las instrucciones a i orden de la cola y se envían a la e s tad ó n d e reserva adecuada, si hay una disponible.

Si la única diferencia en tre la planificación d inám ica d e instrucdones centralizada y d istribuida fuera la ubicación d e la ventana d e instrucciones, el rendim iento de am bos tipos d e planificación sería muy similar.

Sin em bargo:

• Las estaciones d e reserva suelen incluir espacio p a ra alm acenar los operandos que están d isponi­bles cuando se em ite la instrucción, esto evita los riesgos W AR y las paradas a so d ad as a ellos.

• Las estaciones d e reserva pueden conectarse directam ente al bus q u e recoge los resultados d e las unidades funcionales, norm alm ente denom inado C D B o Com m on D a ta Bus. E sto im plem enta adelantam iento para resolver los riesgos d e datos RAW, evitando así algunas paradas.

• El Com m on D ata Bus lleva a so d ad o un sencillo hardware d e control que ordena las escrituras que re realizan definitivam ente en d banco d e registros, por lo q u e evita los riesgos WAW y las paradas asociadas a ellos.

Y aqu í en estos tres factores se encuentra la m ejora sustancial respecto a los algoritm os centralizados, la im plem entación por defecto d d adelantam iento p a ra resolver los riesgos RAW y el uso d e renom bra­miento dinám ico d e registros p a ra evitar los riesgos WAW y WAR.

Hay q u e tener en cuen ta que los riesgos W AR y WAW no son dependencias d e d a to s reales. Si los registros del procesador nunca se reutilizaran para alm acenar diferentes variables nunca se producirían estas dependencias d e da to s falsas. Com o sí existe reutilizadón, la m anera d e evitar estos riesgos es u ti­lizar renom bram iento de registros.

Si d renom bram iento se realiza d e m anera estática, es d com pilador d q u e se encarga d e gestionar la utilización y reutilización d e los registros p a ra evitar los riesgos. Pero a i el caso d d renom bram iento dinámico, se suden utilizar registros adicionales en d procesador, no visibles para el program ador, que puedan servir com o alm acenam iento tem poral. En m uchos casos estos registros se agrupan en un buffer de renom bram iento, pero cuando se realiza planificadón dinám ica co n estaciones de reserva, estos re­gistros adicionales están ubicados en las propias estaciones de reserva. D e esta m anera las estaciones de reserva buscan y alm acenan los operandos que necesitan las d ifero ites instrucciones d e m anera q u e no sea necesario leerlos directam ente de los registros. E sta técnica ju n to co n el control de escrituras, consigue evitar los riesgos W AR y WAW.

Cuando el nanoM IPS im plem oita planificación dinám ica d e instrucdones d istribu ida lo hace con el algoritm o de Tomasulo. E n este algoritm o las instrucciones pasan p o r tres etapas una vez que se retiran de la cola d e instrucdones (figura 3.4):

1. Emisión (E). Se retira la instrucción que está en la p a rte superior d e la cola de instrucciones. Si hay alguna estación d e reserva libre adecuada p ara esta in strucdón , se envía la instrucción ju n to con el valor de los operandos que ya estén disponibles. Si no hay estaciones de reserva vacías hay que p a ra r la em isión de instrucciones hasta q u e quede libre alguna, ya que la em isión es todavía a i orden. P or el contrario , si algún operando no está disponible, la instrucción se em ite y se queda a la espera en su estación d e reserva. P ara ello se registra en la estación d e reserva qué ins­tru cd ó n es la que va a producir este operando com o resultado. Este registro se realiza asociando etiquetas a las d ifero ites estaciones d e reserva.

Page 163: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

C D B

F ig u r a 3 .4

R u ta de d a to s d e l n a n o M IP S s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n T o m a s u lo (va r ia s e s ta c io n e s d e re s e rv a c o m p a r te n u n a ú n ic a u n id a d fu n c io n a l) .

2. E je cu c ió n (X ) . U n a instrucción se envía d e la estación d e reserva a la un idad funcional cu an ­d o ésta es tá libre y la instrucción ya tiene en la estación d e reserva sus operandos. L as ins­trucciones m onitorizan el C D B hasta q u e to dos sus operandos estén disponibles. C uando se cum pla esta condición , se puede p a sa r a e jecu tar la instrucción , d e esta m anera se solucionan lo s riesgos RAW. Si no está libre la u n idad funcional q u e se requiere, h ab rá q u e esperar hasta q u e se resuelva el riesgo estru c tu ra l. Si m ás d e u n a instrucción puede enviarse a la un idad funcional en el m ism o ciclo, se envía siem pre la q u e lleva m ás tiem po esperando en la estación d e reserva.

3. Escritura de resultado (W ). Se escriben los resu ltados d e las operaciones ju n to con las e ti­q u e ta s d e las estaciones d e reserva origen d e las instrucciones en el C D B p a ra q u e to d a s las estaciones d e reserva q u e estaban esperando p o r ese resu ltado lo puedan leer. L a estru c tu ra d e con tro l d e e sc ritu ras d e te rm in a cuáles d e los resu ltados tienen q u e escrib irse finalm ente en los registros.

Por lo tan to con este algoritm o se m antienen dos tipos de estructuras d e planificación (figura 3.5):

• Estaciones de reserva. C ada instrucción m antiene una en trad a actualizada en u n a estación d e re- sírva con inform ación acerca d e sus operandos fuente (la etiqueta asociada si todavía no están disponibles) y sus valores.

• Control de escrituras. Se m antiene inform ación actualizada sobre la e tiqueta d e la instrucción que va a producir el resultado que debe escribirse en cada registro. A unque en este libro se m uestra com o una estructu ra independiente, en m uchos casos se im plem enta den tro del propio banco de registros.

Page 164: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Estacionesde

Reserva

ZTfto Ri - Registro

V Ocupado

V Etiqueta

Control de Escrituras

o z h e : Registro

Ocupado

Etiqueta

F ig u r a 3 .5

Im p le m e n ta c ió n d e las e s ta c io n e s de re s e rv a y e l c o n tro l d e e s c r itu ra s en e l n a n oM IP S .

Si se com paran las dos alternativas de planificación en el nanoM IPS, las diferencias fundam entales entre el m étodo d e la P izarra y el algoritm o d e Tom asulo son principalm ente:

• La lógica d e detección y solución d e riesgos está centralizada en la P izarra en el prim er caso, mientras q u e en el segundo está d istribu ida en las estaciones d e reserva y p o r lo tanto, es especia­lizada. E sto hace que la P izarra consiga un m ejor aprovecham iento global d e todos los recursos disponibles.

• Cbn el m étodo d e la P izarra se resuelven los riesgos WAR y WAW m ediante paradas. Con T om asu­lo se resuelven alm acenando directam ente los valores d e los operandos en las estaciones de reserva y utilizando un hardw are d e control d e escrituras (renom bram iento dinám ico d e registros).

• En el caso d e Tom asulo, d CDB perm ite q u e las instrucdones q u e están esperando por resultados de o tras instrucciones m onitoricen el bus y los puedan leer en cuan to estén disponibles. Es decir, se implem enta directam ente d adelantam iento. En el caso de la Pizarra, los operandos se tienen que leer d e los registros o im plem entar el adelantam iento explícitamente.

• En la P izarra la escritu ra d e resultados se hace directam ente sobre el banco d e registros m ientras que con Tom asulo se hace prim ero en el CDB y luego se determ ina qué escrituras deben hacerse efectivas en el banco d e registros.

Ejem plo 3 .3

Planificación dinámica de instrucciones con el algoritm o de Tomasulo en el nanoMIPS con una unidad funcional para cada estación de reserva.

S ip o n g a m o s que se e jecuta el m is m o frag m e n to de c ó d ig o que en el e jem p lo 3.2 en el nanoM IP S q u e utiliza Tom asu lo co n tre s A LU s de en te ros co n la tenc ia 1 c ic lo , tre s sum adores /res tadores en com a flo ta n te co n la tencia 4 c ic lo s y 2 m u ltip lica do re s /d iv iso re s en com a flo ta n te co n la tencia de 8 c ic lo s para la m u ltip lica c ió n y 10 para la d iv is ión . N 'nguna de las un idades en com a flo ta n te está segm entada y se t ie n e una un idad fu n c io n a l para cada estación de reserva. Las estac iones de reserva se e tiquetan co m o 1, 2 y 3 las de en te ros, 4 , 5 y 6 las de su m a / resta en com a flo ta n te y 7 y 8 las de m u ltip lica c ión y d iv is ió n en com a flo ta n te .

A dem ás, se supone de n uevo que las in s trucc iones de carga y a lm acenam ien to s iguen el m is m o c a m in o que las ins trucc iones de en teros, u tilizando las m ism as ALUs y co n 1 c ic lo de la tencia.

Page 165: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

In s tru cc ió n E X wL.D F1,0(R0) 1 2 3

L.D F2,100(R0) 2 3 4

DIV.D F3,F1,F2 3 5raw-14 15

ADD.D F4,F1,F3 4 16RAW-19 20

SUB.D F1,F1,F2 5 6-9 10

MUL.D F1,F6,F7 6 7-14 16“

ADD.D F8,F4,F3 7 21raw_24 25

DIV.D F3,F6,F1 16RE 17-26 27

S.D F3,200(R0) 17 28RAW 29

S.D F8,64(R0) 18 2 6 RAW 28RF

Este sería el d iagram a te m p o ra l de e jecuc ión de las in s trucc iones s in te n e r en cuenta la e tapa de búsqueda que las deja a lm acenadas en la co la de ins trucc iones. Se pu e de o b se rva r que:

• La em is ión de in s trucc iones s ie m pre se realiza en o rden , e l res to de e tapas ya pueden desordenarse.• A u n q u e en este e jem p lo se p ro d u ce n to d o t ip o de riesgos, só lo b s es truc tu ra les y lo s RAW se resuelven

con paradas. Se p ro d u ce un r iesgo W A R p o r F1 en tre las in s tru cc io n e s AD D .D y SUB.D, pe ro queda re ­sue lto g racias al a lm acenam ien to de lo s va lores de lo s ope ra n d o s en las es tac iones de reserva. Cuando la ins trucc ión de sum a se e m ite en el c ic lo 4, el v a lo r q u e en ese m o m e n to ha y a lm acenado en F1 se guarda ju n to co n la ins tru cc ió n en su estación de reserva. Por b ta n to , n o hay n ingún p rob lem a p o rq u e una in s ­tru cc ió n p o s te r io r escriba en este reg is tro , la ins tru cc ió n pasará a e jecutarse s ie m pre con el v a lo r adecuado de su ope rando . En cu a n to al r iesgo W A W entre las in s tru cc io n e s de resta y m u ltip lica c ión , ta m p o c o se resue lve m e d ia n te paradas. Se deja q u e la in s tru cc ió n de m u ltip lic a c b n avance y escriba su resu ltado en el CDB. En este caso, lo s resu ltados de las in s trucc iones se escriben en el o rden co rrec to , p e ro si n o hub ie ra s ido así, el c o n tro l de escritu ras se hub ie ra enca rgado de q u e la escritu ra q u e quedara en F1 fuera el resu l­tado de la m u ltip lic a c b n , p o r lo q u e n o es necesario in tro d u c ir n inguna parada.

• La parada en la em is ión de la ins tru cc ió n de d iv is ió n hasta el c ic lo 16 p o r fa lta de estac ión de reserva afecta a to d as las in s trucc iones pos te rio res p o rq u e la e m is ió n debe m an tene rse en orden.

Y si p o r e je m p b , n o s p re g un tam os p o r el estado de las estac iones de reserva y de l c o n tro l de escritu ras al com enzar el c ic lo 19, tend ríam os:

Etiqueta \felor s1 Etiqueta s1 Valor s2 Etiqueta s2

1 — 7 [R0]

2 — 6 [R0]

3

4 [F1] [C D B jc ic lo 15

5

6 — 4 [C D B jc ic lo 15

7 [F6] (C D B jc ic lo 16

8

F3 F4 . . . F8 . . . Reg

SÍ SÍ SÍ O cup

7 4 6 Etiqueta

Page 166: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 3 .4

Planificación dinámica de instrucciones con el a lgoritm o de la Tomasulo en el nanoMIPS con varias estaciones de reserva com partiendo una única unidad funcional.

S upongam os que se ejecuta el m is m o fra g m e n to de có d ig o q u e en el e je m p lo a n te r io r p e ro con una ún ica un idad fu n c io na l de cada t ip o , ya q u e en el e je m p lo a n te r io r se pu e de o b se rva r q u e las u n id a de s func io na le s están desocupadas la m a y o r pa rte de l t ie m p o . De esta m anera se t ie n e n tres estac iones de reserva para opera ­c iones de en teros, tres para sum a y resta en com a flo ta n te y d o s para m u ltip lica c ió n y d iv is ió n en com a flo ta n te , pero cada g ru p o de estac iones com parte una única un idad fu n c io na l de cada tip o .

La p rinc ipa l d ife rencia co n el e je m p lo a n te r io re s q u e una ins tru cc ió n en una estac ión de reserva co n sus o p e ­randos d ispon ib les , te n d rá que c o m p ro b a r la d isp o n ib ilid a d de la un idad fu n c io na l antes de p a sa ra la etapa X.

El d iagram a te m p o ra l de e jecuc ión en este caso es el s igu ien te :

In s tru cc ió n E X W

L.D F1,0(R0) 1 2 3

L.D F2,100(R0) 2 3 4

DIV.D F3,F1,F2 3 5BAW.14 15

ADD.D F4,F1,F3 4 16RAW-19 20

SUB.D F1,F1,F2 5 6-9 10

MUL.D F1,F6,F7 6 15RE-22 23

ADD.D F8,F4,F3 7 21RAW-24 25

DIV.D F3,F6,F1 16RE 24RAW-33 34

S.D F3,200(R0) 17 35RAW 36

S.D F8,64(R0) 18 26raw 27

Es decir, casi no se nota la d ife rencia a pesa r de h a b e r red u c id o ta n to lo s recursos de e jecuc ión en la ru ta de datos, só lo ha h a b id o que p a ra r la in s tru cc ió n de m u ltip lica c ión que n o puede p a sa ra u tiliza r la un idad fu n c io na l de m u ltip lica c ión /d iv is ió n en com a flo ta n te hasta q u e la p rim e ra d iv is ió n n o te rm ina de e je cu ta r y p o r lo ta n to no com ienza su e jecuc ión hasta el c ic lo 15.

Si adem ás se segm entaran las un idades func iona les , las paradas p o r c o n flic to en la u tilizac ión de una de ellas se reducirían a un c ic lo en la m a y o r pa rte de tos casos. Esta segm entac ión es m u y h ab itua l cu a n do las un idades func iona les son co m p a rtid a s p o r varias estac iones de reserva.

Predicción dinámica de saltosEn la sección an terio r se han presentado técnicas q u e perm iten reordenar las instrucciones en tiempo

de ejecución p a ra evitar en todo lo posible las pa rad as provocadas por los riesgos d e datos RAW. Pero con las técnicas propuestas, ninguna instrucción puede em pezar su e tap a d e ejecución (la prim era que modifica realm ente el estado del procesador) hasta q u e no se resuelvan todas las instrucciones d e salto que le preceden. Y los riesgos d e control son m uy frecuentes, po r lo q u e es necesario disponer tam bién de técnicas dinám icas que perm itan avanzar con la ejecución d e instrucciones a pesar d e estos riesgos de control o las técnicas d e planificación estarán trem endam ente limitadas.

Todas estas técnicas se basan en predecir lo q u e va a pasar con los saltos, pero no con predicciones es­táticas com o las q u e se presentaron en el capítulo 1, a n o con predicciones dinám icas q u e puedan acertar

Page 167: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

sus predicciones en un porcentaje mayor, ya que la penalización por riesgo de control se reduce cuando la predicción se acierta. A lgunos estudios dem uestran q u e con predicciones estáticas se pueden acertar entre un 70 y u n 80% d e las predicciones d e salto, m ientras que los esquem as dinám icos increm entan los aciertos hasta el rango en tre el 80 y el 95%.

En lo que se refiere a la predicción dinám ica d e saltos, hay dos tipos d e decisiones que tom ar. La prim era, q u é tipo d e estructu ra hardw are se utiliza p a ra realizar este tipo d e predicción. La segunda, qué tipo d e predictor se utiliza para realizar las predicciones, es decir, q u é técnica se utiliza p ara predecir si un salto se va a to m ar o no y con q u é conjunto d e ceros y unos se va a alm acenar es ta predicción.

Sean cuales sean las estructuras y predictores escogidos, d e nuevo com o en el caso d e las predicciones estáticas no se debe perm itir que las instrucciones predichas m odifiquen el contenido d e la m o n o ria y del banco d e registros, a no ser q u e se incorporen en la ru ta d e datos m ecanism os que puedan deshacer estas modificaciones si las predicciones resultan ser fallidas.

Y d e la m ia ñ a m anera, cuanto antes se sepa q u e la instrucción es un salto, antes se pod rá com enzar a realizar su tratam iento y evitar así el m ayor número d e paradas. G racias a la predecodificadón, se puede saber que una instrucción es un salto en la e tap a F o en la cola d e instrucciones, norm alm ente no es ne­cesario esperar hasta la decodificadón en D.

3.2.1. Estructuras hardware para la predicción de salto

La estructu ra hardw are m ás sencilla asociada a la p red icdón dinám ica d e saltos es una pequeña ca ­ché a la q u e se accede en la fase F al mismo tiem po que se busca la instrucdón , por si ésta fuera un salto, en la que se alm acena un bloque d e b its q u e perm iten predecir el com portam iento del salto en su próxim a ejecudón (tom ado o no tom ado).

Esta m o n o ria se denom ina buffer d e predicción o tabla d e h istoria d e saltos y contiene una serie de bits q u e resumen el com portam iento del salto en ejecudones anteriores y q u e perm iten predecir cuál va a ser su com portam iento la próxim a vez q u e se ejecute (figura 3.6).

F ig u r a 3 .6

B u ffe r d e p re d ic c ió n d e sa lto .

Se indexa con la parte baja de la dirección d e las instrucdones d e salto, es decir, es una m em oria de em plazam iento d irecto en la q u e a cad a salto le corresponde aem pre la misma en trad a dependiendo de su d irecdón en la m em oria d e instrucdones. Com o sólo se utiliza la parte ba ja d e las d irecdones cabe la posibilidad de q u e varios saltos se indexen en el buffer con la m ism a etiqueta, d e m anera que van so­brescribiendo sus predicciones. Este fenóm eno suele denom inarse aliasing y hace q u e u n salto utilice una predicción q u e no es la suya.

Page 168: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

D e hedió , los fallos en las predicdones d e salto pueden deberse, principalm ente, a d o s factores: a que algunos saltos son impredecibles (porque no se tiene inform ación acerca d e su historia reciente, porque los da to s involucrados en la evaluación d e la condición son intrínsecam ente aleatorios, etc) y a los pro ­blemas de aliasing.

P ara q u e el aliasing o cu rra el m enor núm ero d e veces posible, el tam año del buffer d e predicción debe ser el adecuado. A ctualm ente, con un buffer d e 4096 en tradas prácticam ente nunca coinciden dos saltos en la m ism a en trada , evitando así los fallos q u e se deben a la utilización d e la predicción de otro salto q u e tiene la m ism a term inación en su dirección. D e esta m anera los fallos d e la predicción de saltos se deberán a q u e algunos saltos son difíciles d e predecir, pero no al tam año d e la estruc tu ra de predicción.

Cuando se decodifica una instrucción y resulta ser u n salto, se utilizan los bits d e predicción q u e se leyeron del buffer du ran te la e tap a F p a ra realizar la predicción del salto. Si se predice com o no tom ado, se continúa con la búsqueda secuencial d e instrucciones y si se predice com o tom ado, en cuan to se conoce la dirección destino d e salto se p asa a buscar esa instrucción.

Como ocurría con las predicciones estáticas estudiadas en el capítulo 1, si se acierta la predicción, se reduce la penalización p o r riesgo d e control. Sin em bargo, si se falla se debe corregir d pred ictor en el buffer para la siguiente ejecución del salto y se sufre u n a penalización p o r riesgo d e control igual o supe­rio r a la que se habría sufrido si no se hubiera realizado la predicción.

La m ejora global q u e se ob tendrá gracias al buffer d e predicción dependerá d e la frecuencia co n la que aparezcan las instruedones d e salto, d e la ta sa d e fallos d e las p red icdones y d e la penalización que suponga cada fallo d e predicción.

Sobre el prim er factor no se puede influir desde el diseño del procesador, pero á en los o tros dos. Para red u d r la tasa d e fallos en todo lo posible se debe aum entar d tam año del buffer d e predicción (hasta las 4096 entradas, p o r encim a de este valor no se n o ta rán m ejoras significativas) y utilizar los predictores de salto m ás adecuados, es decir, q u e fallen lo m enos posible para los códigos y aplicaciones que se ejecutan sobre la arquitectura. En cuanto a la penalizadón q u e supone cada fallo d e predicción, norm alm ente depende d d diseño d e la ru ta d e d a to s del procesador, pero tam bién se puede reducir incorporando al buffer los suficientes puertos d e lectura y escritu ra para poder corregir las predicdones q u e se h an fallado sin necesidad d e p ara r la ejecución d e instrucciones en d procesador. H ay que tener en cuenta q u e si el buffer sólo tiene un puerto d e acceso, en el ciclo en el q u e haya que hacer u n a corrección de un predictor que h a fallado su ú ltim a predicción no se pod rá com enzar u n a nueva instrucción ya q u e hab rá riesgo estructural en la e tap a F.

Ejem plo 3 .5

Utilización de un buffer de predicción de saltos en un procesador segmentado de 6 etapas y comparación con el m ejor esquema de predicción estática.

S u p o n g a m o s q u e te n e m o s un p ro c e s a d o r s e g m e n ta d o en 6 e tapas: F( D, IS , X , M y W. En es te p ro ce sa ­d o r las in s tru c c io n e s de s a lto c o n d ic io n a l ca lcu la n la d ire c c ió n d e s tin o de s a lto en la e tapa D y e va lúan la c o n d ic ió n y ca rgan el n u e v o PC en la e tapa X . V am os a c o m p a ra r el re n d im ie n to de la p re d ic c ió n está tica de s a lto (e je m p lo 1.7 de l c a p ítu lo 1) c o n un e sq u em a de p re d ic c ió n d in á m ic o b a sa do en la u tiliz a c ió n d e un b u ffe r de p re d ic c ió n de 4 0 9 6 e n tradas (p o r lo q u e es m u y im p ro b a b le q u e se p ro d u zca n casos de a lias ing de sa ltos).

En el caso de la u tiliza c ió n de un b u ffe r de p re d ic c ió n , s u p o n g a m o s q u e la p re d ic c ió n se o b tie n e d u ra n te la e tapa F (se accede al m is m o t ie m p o al b u ffe r de p re d ic c ió n y a la m e m o ria de in s tru cc io n e s ) y q u e las p re d ic ­c io n e s de este bu ffer, m u y sencillas, ac ie rta n el 8 0 % de las ocasiones.

T enem os:

Page 169: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

S alto NT, p re d ic c ió n NT F D IS X M W

P C +4 F D IS

P C +8 F D

PC + 12 F

S alto NT, p re d ic c ió n T F D IS X M W

D estino de sa lto — f o

D e s tin o + 4 fP C +4 F

S alto T, p re d ic c ió n T F D IS X M W

D estino de sa lto — F D

D e s tin o + 4 F

D e s tin o + 8

S alto T, p re d ic c ió n NT F D IS X M W

P C +4 f B +sP C +8 f o

P C +12 f f

D estino de sa lto F

En resum en , te n e m o s las s ig u ie n tes pena lizac iones:

S a lto NT, a c ie rto 0

S a lto NT, fa llo 3

S a lto T, a c ie rto 1S a lto T, fa llo 3

Por lo q u e si el 75% de lo s sa ltos co n d ic io n a le s se to m a n y el 25% de lo s sa ltos n o , te n e m o s q u e la pena­lizac ión m ed ia p o r sa lto co n d ic io n a l es: % fa llo s • 3 + % sa lto s to m a d o s-% a c ie rto s -1 = 0 .2 • 3 + 0 .75 - 0 . 8 - 1 = 1.2 c ic lo s , lo q u e m e jo ra lig e ra m e n te el re s u lta d o q u e se ob ten ía co n la p re d ic c ió n está tica de sa lto to m a d o (una pena lizac ión m ed ia de 1.5 c ic los).

Ejem plo 3 .6

Ejemplo de las diferencias entre un buffer de predicción de saltos con un puerto de acceso y con dos.

En el e je m p lo a n te r io r n o h e m o s te n id o en cuenta en n in g ú n m o m e n to el t ie m p o q u e lleva c o rre g ir las p re ­d icc iones eq u ivo cad a s en el b u ffe r de p re d ic c ió n . L o q u e se ha supuesto , im p líc ita m e n te , es q u e el b u ffe r tie n e dos p u e rto s de acceso . U no de le c tu ra , q u e p e rm ite o b te n e r las p re d ic c io n e s de cada sa lto en la e tapa F y o tro de e scritu ra q u e p e rm ite , al m is m o tie m p o , c o rre g ir las p re d ic c io n e s q u e se han c o m p ro b a d o erróneas.

Pero s i n o ex is te n es to s do s p u e rto s de acce so y el b u ffe r s ó lo d is p o n e de uno , la p e n a liza c ió n de los fa llo s a u m en ta en 1 c ic lo , q u e d e b e in v e rt irs e en c o r re g ir la p re d ic c ió n en e l b u ffe r:

S a lto NT, p re d ic c ió n T F D IS X M W

D e s tin o de sa lto — F B

D e s tin o + 4 F

P C + 4 ' co rre c c ió n del b u ffe r

F

Page 170: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

S a lto T, p re d ic c ió n NT F D IS X M W

P C + 4 F O +s

P C + 8 B

P C +12

D e s tin o de sa lto co rre c c ió n del b u ffe r

F

En lo s do s casos en lo s q u e el b u ffe r pu e de fa lla r es necesario d e ten e r la búsqueda de in s tru cc io n e s d u ra n ­te un c ic lo para p o d e r acce d er al b u ffe r s in r ie s g o e s truc tu ra l y c o rre g ir la p re d ic c ió n equ ivocada .

En re su m e n , te n e m o s las s ig u ie n tes pena lizac iones:

S a lto NT, a c ie rto 0

S a lto NT, fa llo 4

S a lto T, a c ie rto 1

S a lto T, fa llo 4

Rsr lo q u e aho ra la pen a liza c ión m ed ia p o r fa llo es 0 .2 • 4 + 0 .75 • 0 .8 -1 = 1.4 c ic lo s , p rá c tic a m e n te la m ism a q u e co n una p re d ic c ió n es tá tica d e s a lto to m a d o .

En el caso concreto d e la a rq u itec tu ra q u e se es tá tom ando com o ejem plo en este libro, en e l n an o ­M IPS, el buffer d e predicción d e saltos no resu lta m uy eficiente. E sto ocurre con to d as las arqu itec tu ras en las q u e se conoce la d irección destino d e salto al m ism o tiem po q u e el resu ltado d e la evaluación de la condición.

Si e l b u ffe r d e p red icc ió n p red ice q u e el sa lto no se to m a , no h ay n ingún re tra so p u es to que al c ic lo s ig u ien te se busca la in s tru cc ió n sigu ien te . Pero si el b u ffe r d e p red icc ió n p red ice q u e el sa lto se va a to m ar, no se p u ed e b u sca r la in s tru cc ió n d e s tin o d e sa lto h a s ta q u e n o se haya c a l­cu lad o la d irecc ió n d e e s ta in s tru cc ió n . Y u n a vez q u e se co n o zca e s ta in s tru cc ió n ya se conoce si e l sa lto se to m a rea lm en te o no, así q u e no tien e sen tid o c o n tin u a r u tiliz an d o la p red icc ión (figu ra 3 .7).

L a so lución e s tá en im p lem en tar algún m ecanism o q u e p e rm ita p redecir tam b ién la d irección d estin o d e sa lto . P a ra esto se u tiliza o tra e s tru c tu ra hardw are d en o m in ad a BTB (B ran ch T arget Buffer) o buffer d e p red icción destino d e sa lto . E s ta e s tru c tu ra p e rm ite resolver e l p ro b lem a de la p red icción d in ám ica d e sa lto s p a ra p rocesado res com o el n an o M IP S , en los q u e se conoce al m ism o tiem po la d irección d es tin o d e sa lto q u e el resu ltad o d e la evaluación d e la c o n d ic ió n y por lo ta n to no es posib le reduc ir las p a ra d a s p o r riesgo d e co n tro l rea lizan d o la p red icc ión d e salto tom ado .

El BTB es u n a caché q u e alm acena la dirección destino q u e tuvo cad a salto la ú ltim a vez q u e se tom ó (figura 3.8). El acceso al BTB se hace d u ra n te la e ta p a F d e las instrucciones, al m ism o tiem po que se busca la instrucción en la m em oria d e instrucciones, con su dirección se accede al BTB para saber si se tra ta d e u n a instrucción de salto. El BTB se indexa con las direcciones com pletas porque en este caso es m uy im portan te q u e no haya confusiones en tre los d iferentes saltos. En u n buffer de predicción sólo hay d o s opciones, predicción d e salto tom ado o no tom ado, p o r lo que si d o s saltos coinciden en la m ism a en tra d a del buffer, existe un 50% d e probabilidad d e q u e aún así se acierte la

Page 171: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

Acceso a buffer Resoluciónde predicción del salto

Salto

PC+4

Acceso a buffer de predicción

Resolución del salto

P M

P iW

Predicción de salto tom ado

No se puede buscar la instrucción destino de salto hasta que no se sabe la dirección destino. Y cuando ésta se calcula,

ya se sabe si se salta o no.

Fig u r a 3 .7

U tiliz a c ió n d e un b u f fe r d e p re d ic c ió n d e s a lto s en e l n a n o M IP S q u e re s u e lv e lo s s a lto s en la e ta p a M .

Dirección de Salto

Dirección de la instrucción de salto

1 1____________| J 11

BTB

Cola de Ins trucc iones d ccod ificadas

Fig u r a 3 .8

B TB (B ra n ch T a rg e t B u ffe r).

Page 172: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

predicción, pero la dirección destino d e salto cam bia con to d a probabilidad d e un salto a otro. Com o se indexa con direcciones com pletas, se tra ta d e u n a m em oria con em plazam iento asociativo en la que hay q u e recorrer to d as las en trad as p a ra en co n tra r la predicción del salto q u e se es tá buscando. Esto lim ita el tam año del BTB (cuan tas m ás en trad as tenga, m ás com paraciones hay q u e realizar y m ás lenta es es ta estructura).

Por lo tan to , p a ra las instrucciones d e salto se puede conocer:

• La predicción d inám ica del com portam iento del salto en su próxim a ejecución accediendo al buffer de predicción.

• La dirección d e la instrucción siguiente (calculada en la e tap a d e F sum ando 4 al PC) por si se predice q u e no se salta.

• La dirección de la instrucción destino de salto, q u e se h a obtenido en la e tap a F accediendo al BTB, por si se predice que se salta.

I^ro esto obliga a incluir en la ru ta d e datos, y a m antener actualizadas, dos estructuras diferentes de predicción.

La prim era solución p a ra ev itar esto sería alm acenar en el BTB sólo los saltos q u e se tom an. Esto es lógico, porque p a ra los saltos que no se tom an no es necesario alm acenar el destino, que es siem pre la instrucción siguiente.

Entonces, al encon trar una instrucción d e salto en el BTB, está im plícita la predicción d e que el salto se va a tom ar. E sta predicción im plícita es en realidad un predictor d e 1 b it, ya que sólo hay d o s a lternati­vas posibles para la predicción. Si se sa lta se alm acena el salto en el BTB y la próxim a vez se predecirá el salto com o tom ado (como si el p redictor valiera 1). Si no se sa lta no se alm acena en d BTB y se predecirá d salto com o no tom ado (como si el pred ictor valiera 0).

Resumiendo, con un BTB de este tipo, los pasos que se siguen después d e buscar una en trada con el PC d e la instrucción actual en el BTB en la e tap a F son:

• Si no se encuentra:

— Si la instrucción q u e se ejecuta resulta ser un salto que se tom a, se para la ejecución d e la ins­trucción que se había buscado, se busca la instrucción adecuada y se actualiza d BTB induyen- do u n a nueva en trada.

— Si no es u n salto o es u n salto q u e no se tom a se continúa con la ejecución norm alm ente.

• Si se encuentra:

— Si el salto se to m a y con el destino predicho, se continúa la ejecución norm alm ente.— Si el salto se tom a pero tiene o tro destino, se para la ejecudón d e la instrucción que se había

buscado, se busca la in strucdón adecuada y se actualiza el BTB.— Si el salto no se tom a, se para la ejecución d e la in stru cd ó n que se había buscado, se busca la

instrucción adecuada y se elim ina la en trad a del BTB

Como se verá en la sección siguiente, en m uchos casos es necesario m anejar predictores mucho m ás com plejos q u e éste d e 1 b it que se utiliza gracias a la predicción im plícita del BTB. En estos casos, la a l­ternativa para ev itar m antener y actualizar d o s estructuras diferentes es fundir am bas d e m anera q u e se puede alm acenar el predictor d e cada salto en el propio BTB. En este caso, se alm acenan todos los saltos a i el BTB, no sólo los que se tom an (figura 3.9).

Page 173: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

F ig u r a 3 .9

B u ffe r d e p re d ic c ió n + BTB

Ejem plo 3 .7

Utilización de un buffer de predicción de saltos junto con BTB en un procesadorsegmentado de 6 etapas

Supongamos que tenem os el m ism o procesador segmentado en 6 etapas: F, D, IS ,X , M y W que en el ejem plo 3.5.En este caso la estructura de predicción es un buffer de predicción con un BTB incorporado y la predicción se ob ­

tiene durante la etapa F (se accede al m ism o tiem po al buffer+BTB y a la m em oria de instrucciones). Esta estructura de predicción tiene dos puertos de acceso y sus predicciones aciertan de nuevo el 80% de las ocasiones en lo que se refiere a si el salto se tom a o no. Supondrem os que la d irección destino de salto predicha por el BTB siempre es acer­tada. Tenemos:

S a lto NT, p re d ic c ió n NT F D IS X M W

P C +4 F D IS

P C +8 F D

P C +12 F

S alto NT, p re d ic c ió n T F D IS X M W

D estino de sa lto F B 4S-

D e s tin o + 4 F BD e s tin o + 8 F >

P C +4 F

S alto T, p re d ic c ió n T F D IS X M W

D estino de sa lto F D IS

D e s tin o + 4 F D

D e s tin o + 8 F

S alto T, p re d ic c ió n NT F D IS X M W

P C +4 F O +S-

P C +8 F B

P C +12 F r

D estino de sa lto F

Page 174: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En resum en , te n e m o s las s ig u ie n tes pena lizac iones:

S a lto NT, a c ie rto 0

S a lto NT, fa llo 3

S a lto T, a c ie rto 0

S a lto T, fa llo 3

Ftor lo que te n e m o s una penalizac ión m ed ia p o r sa lto de 0 .2 • 3 = 0.6 cic los.

Ejem plo 3 .8

Comparación de esquemas de predicción en el nanoMIPS con ranura de 3 ciclos.

V am os a c o m p a ra r en este e je m p lo la p re d ic c ió n estática de sa lto n o to m a d o q u e realiza el nanoM IP S ( re ­co rd e m o s q u e la de sa lto to m a d o n o t ie n e se n tid o ya q u e se ca lcu la la d ire cc ió n d e s tin o de sa lto en la m ism a etapa en la q u e el sa lto evalúa la c o n d ic ió n y d e te rm in a si se salta o n o ), co n la u tiliza c ió n de un BTB co n la p re d icc ió n im p líc ita (só lo se a lm acenan en e l BTB lo s sa ltos q u e se p re d ice n c o m o to m a d o s ) al q u e se accede en la e tapa D.

Hasta q u e se accede al BTB en esta etapa, la ru ta de d a tos se c o m p o rta co n n o rm a lid a d b u sca n d o la in s ­tru c c ió n s ig u ie n te en la m e m o ria de in s tru cc io n e s , t ra b a jo q u e lu e g o se p o d rá a p ro ve ch a r o n o d e p en d ie n d o de la p re d ic c ió n realizada p o r el BTB. A d e m á s el BTB tie n e d o s p u e rto s de acceso, u n o de le c tu ra y o tro de escritu ra .

Pára rea liza r la c o m p a ra c ió n de a m b o s e squem as de p re d ic c ió n se d e te rm in a q u e en m e d ia , el 19% de las in s tru c c io n e s so n sa lto s co n d ic io n a le s . D e estas in s tru c c io n e s el 8 0 % so n sa lto s to m a d o s y adem ás sa b e m o s q u e el BTB ac ie rta su p re d ic c ió n el 8 8 % de las ve ce s . S u p o n d re m o s q u e las in s tru c c io n e s q u e no son sa lto s t ie n e n un CPI ig u a l a 1. Con la p re d ic c ió n es tá tica de s a lto n o to m a d o en e l nanoM IP S co n ranu ra de 3 c ic lo s :

S a lto NT F D X M W

P C +4 F D X

P C +8 F D

P C +12 F '

S a lto T F D X M W

P C +4 f B X

P C +8 f B

P C +12 f

D estino de sa lto F

En caso de u tiliza r un BTB:

S alto NT, p re d ic c ió n NT F D X M W

P C +4 F D X

P C +8 F D

P C +12 F 1

Page 175: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

S alto NT, p re d ic c ió n T F D X M W

P C +4 F

D estino de l sa lto F B

D e s tin o + 4 F 1P C +4 F

S alto T, p re d ic c ió n T F D X M W

P C +4 *D estino de l sa lto F D

D e s tin o + 4 F ’

D e s tin o + 8

S alto T, p re d ic c ió n NT F D X M W

P C +4 P O X

P C +8 F B

PC + 12 F 1D estino de sa lto F

Si ca lcu la m o s el CPI en cada u n o de lo s casos co n lo s d a tos de este e je m p lo :

• P re d icc ió n estática. Las p e n a lizac iones son las s ig u ie n tes :

S a lto NT 0

S a lto T 3

Por lo q u e el CPI es:

CPI = 1 + % sa lto s c o n d ic io n a le s • % to m a d o s • 3 = 1 + 0.19 • 0 .8 • 3 = 1.456

• P red icc ión d in á m ica co n BTB. Las p e n a lizac iones son las s ig u ie n tes :

S a lto NT, a c ie rto 0

S a lto NT, fa llo 3

S a lto T, a c ie rto 1

S a lto T, fa llo 3

Por lo q u e el CPI en este caso es:

CPI = 1 + % sa lto s co n d ic io n a le s • (% fa llo s • 3 + % a c ie r to s • % to m a d o s • 1) == 1 + 0 .19 • (0 .12 • 3 + 0 .88 • 0 .8 • 1) = 1.202

Es decir, la m ejora q u e ob tiene el esquem a d in á m ic o respecto al es tá tico es de l 21% (1.456/1.202 = 1.211).

Los saltos condicionales tom ados son, por norm a general, m ás frecuentes q u e los no tom ados. Por d io , para m ejorar el rendim iento de la predicción de saltos, se puede alm acenar en el BTB directam ente la instrucción destino d e salto en lugar de la dirección en la q u e se encuentra esta instrucción. D e esta m ane­ra si la instrucción es un salto que se tom a, el destino del salto se encon trará en d BTB y no será necesario buscarlo en la m em oria d e instrucciones, es decir, no se realiza la e tap a F p a ra el destino del salto.

Así no será necesario que el acceso al BTB se com plete en una única e tap a d e F, ya q u e la e tap a F de la instrucción destino de salto no se llega a realizar. E sto perm ite q u e el acceso sea un poco m ás lento de lo norm al, lo que se traduce en la posibilidad d e tener un BTB d e tam año algo mayor.

Page 176: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Además este tipo d e estructu ra que alm acena directam ente la instrucción destino d e salto m ejora mucho el rendim iento de los saltos incondicionales, perm itiendo que en este tipo d e salto d procesador siempre pueda ahorrarse la ejecución d e las e tapas d e la in strucdón d e salto a p artir d e F, ya que al fin y al cabo este tipo de instrucción lo único q u e hace es m odificar d valor del PC. E sta técnica suele denom inar­se branch folding (plegado d e saltos) e implica que si en F se accede al BTB y u n a in stru cd ó n está m ar­cada com o salto incondicional (in form adón que se obtiene fácilmente g rad as al código d e operación), se modifica el P C adecuadam ente y la instrucción q u e pasa a la e tap a D es directam ente la instrucción destino d d salto, q u e está a lm acenada en el propio BTB (figura 3.10).

B ú s q u e d a d e la in s t r u c c ió n |n s t r u c c ¡ó n d e s t i n o d e s a l t o b u s c a d a e n e l B T B d e s a l t o in c o n d ic io n a l y

a c c e s o a l B T B

F ig u r a 3 .1 0

B ra n ch fo ld in g .

Con este mismo objetivo, acelerar la búsqueda d e la instrucción destino d e salto, a i algunas arquitec­turas se h a propuesto no utilizar n i buffer de predicción ni BTB sino incluir directam ente en la m a n o ria caché d e instrucciones el predictor d e salto y u n índice o puntero sucesor, q u e no es m ás que la dirección de la in strucdón q u e debe ejecutarse tra s el salto (la siguiente si la predicción es de salto no tom ado o el destino d e salto si la predicción es d e salto tom ado).

Aunque este tipo de solución m ejora d rendim ioito cuando se aciertan predicciones de salto tom ado, d nanoM IPS no incorpora esta técnica por d o s motivos fundam entales. El prim ero, obliga a aum entar la com plejidad d e la m em oria caché d e instrucciones, añad io ido a los accesos para la búsqueda d e ins­trucción, o tros necesarios para m antener y actualizar los predictores de salto y los índices sucesores. Y d segundo, la u tilizadón de esta técnica no perm ite que se alm acene m ás d e un salto condicional por d o q u e de la caché d e instruedones (p a ra alm acenar así un único predictor e índice sucesor p o r b loque y no aum entar dem asiado el tam año d e la caché).

Por últim o, hay que m encionar o tras estructuras hardw are q u e puedoi incluirse en la ru ta d e datos para m ejorar el rendim ioito d e cierto tipo de saltos m uy concretos:

• Pila de dirección de retorno. L a m ayor parte d e los saltos cuya dirección destino d e salto se resuel­ve en tio n p o d e ejecución son reto rnos d e procedim ioito. A unque se puede utilizar el BTB para

Page 177: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

estos saltos, no es la técnica m ás adecuada, puesto q u e se puede llam ar al m ismo procedim iento desde distin tas zonas d e un program a y entonces las direcciones d e retorno (los destinos del salto) irán variando en cada ejecución d e la instrucción d e retom o. Si se im plem enta una pila en la que re alm acenan las direcciones desde las que se llam a a los procedimientos, siempre y cuando sea lo suficientemente profunda, cuando se realicen los re tom os se irán desapilando las direcciones ade­cuadas y se acertarán to d as las predicciones.

• Predictor de confianza de saltos. L a predicción d e confianza d e saltos no in ten ta predecir si un salto se va a tom ar o no, in ten ta predecir si la predicción de salto va a acertar o no. P or lo tan to , el objetivo d e esta estructu ra es estim ar la confianza q u e se puede tener en la predicción d e un salto y tener esta inform ación en cuen ta p a ra generar la predicción en saltos q u e sean m uy com plicados de acertar. N orm alm ente se tiene en cuen ta el historial d e la predicción en las últim as ejecuciones del salto, alm acenando un 0 si la predicción h a acertado y un 1 si la predicción ha fallado. Por ejemplo, á en el p red ictor d e confianza d e saltos se alm acena para un salto concreto la siguiente secuencia de ceros y unos, 11000111, significa q u e para este salto, se han fallado d o s predicciones, luego se han acertado tres y a continuación se han vuelto a fallar tres. E sta inform ación puede utilizarse para m ejorar la ta sa d e fallos d e ciertos predictores complejos.

3.2.2. Predictores de salto

Como se h a m encionado en la sección an terio r al explicar uno d e los diseños m ás sencillos p a ra el BTB, el predictor de saltos m ás fád l d e im plem entar consiste en un único bit q u e vale 1 si la ú ltim a vez se tom ó el salto y se predice q u e la próxim a vez se volverá a tom ar o 0 si no se saltó, y p o r tan to se predice que la próxim a vez no se tom ará tam poco.

Este esquem a tiene un problem a que reduce su rendim iento con los saltos que tienen un com p o rta ­miento excepcional. U n buen ejemplo es el d e un salto que se tom a siempre, por ejemplo, la instrucción de salto q u e hay al final d e un bucle, que se tom a en todos los casos excepto en la últim a iteración del bucle. Por lo tanto, d u ran te la e jecudón del bucle el predictor siem pre valdrá 1.

P ira la ú ltim a iteración se predice q u e se va a saltar y se falla. El b it d e predicción se pone a 0. La siguiente vez q u e se ejecuta la instrucción d e salto (prim era pasada del bucle o tra vez), se predice q u e no se va a saltar, y se falla d e nuevo. Es decir, u n a excepción en u n salto que siempre tiene el mismo com por­tam iento provoca dos fallos del predictor.

fó ra solucionar este problem a se utilizan m uy a menudo los esquem as d e d o s bits d e predicción. Con u n esquem a com o éste, u n a predicción debe fallar dos veces antes d e que se modifique, por lo que d predictor es m ás estable an te excepciones en saltos co n un com portam iento m uy m arcado. Com o se observa en la figura 3.11, cuando d pred ictor vale 11 o 10, la predicción es q u e d salto se tom a, y cuando d predictor vale 00 o 01, la predicción es que el salto no se tom a.

Cuando el predictor vale 11 y el salto se tom a, d ad e rto hace que no se modifiquen la predicción ni d predictor. Si p o r el contrario , d predictor falla porque d salto no se tom a, se pasa al valor 10 p a ra la siguiente ocasión. Pero este cam bio en el predictor no implica un cam bio en la predicción. Es ded r, con un único com portam iento excepcional d d salto, se m odifica el valor del predictor pero no la predicción.

D e esta m anera, si de verdad e ra un com portam iento excepcional y la siguiente vez que se ejecuta el salto se vuelve a tom ar, el predictor vuelve al valor 11 y sólo se h a fallado una vez. Si p o r segunda vez el salto no se tom a y la predicción se falla, el predictor pasa a valer 00 d e m anera q u e en la siguiente ocasión a se predice q u e d salto no se tom a. Pero esto sólo ocurre después de d o s ocasiones en las que se predice que se va a sa lta r y finalm ente no se salta.

El mismo cam ino se puede recorrer com enzando co n u n a predicción fuerte d e no tom ado en el e s ta ­do 00 del predictor.

En general, se pueden utilizar esquem as d e predicción d e n b its con diagram as d e tran sid ó n d e esta ­dos similares a l d e la figura 3.11. P ara realizar la p red icdón hay que fijarse siempre en el bit m ás signifi­cativo del predictor.

Page 178: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Salto Tom ado

a lto N o Tom ado.P red icc ión

Sa ltoT o m a d o

P red icc iónS alto

T o m a d o10a lto T om ado '

Sa lto T om ado Salto N o T om ado

P re d icc ió n Sa lto

N o T o m a d o 0 1

P red icc ión S a lto

N o T o m a d o 00

a lto N o Tom ado,

S a lto T om a d o 1

a lto N o T om ada

F ig u r a 3 .1 1

Estados de un predictor de dos bits.

Con estos esquem as d con tado r form ado p o r los bits de predicción puede tom ar valores entre 0 y 2a"1. Cuando el valor d d con tado r es m ayor q u e la m itad d e su valor máximo, el salto se predice com o tom ado y en d resto d e los casos se predice com o no tom ado. El co n tad o r puede m antener su valor, increm entarse o decrem entarse según se acierten o se fallen las predicciones.

Estudios re ladonados con los predictores d e n bits h an dem ostrado q u e d com portam iento de los predictores d e 2 b its es suficientemente bueno, por lo q u e estos predictores son los m ás utilizados.

Sin em bargo, estos pred ic to res no siem pre ob tienen ta sas d e fallos suficientem ente bajas. E sto se debe a q u e sólo utilizan in form ación acerca del p rop io salto (local) p a ra predecir lo q u e va a ocurrir en su próx im a ejecución. Pero en a lgunos p rogram as el co m p o rtam ien to d e unos saltos tiene que ver con el d e o tros, y con u n p red ic to r local d e los estu d iad o s h a s ta ah o ra , esto no puede tenerse en cuen ta .

Los predictores multinivel o correlados tienen en cuenta inform ación local (del salto para el q u e se realiza la predicción) y global (del resto d e saltos del program a). El predictor m ás u tilizado d e este tipo es el m ás sencillo, el (1,1).

En este caso, el predictor asociado a cad a salto es d e d o s bits, el prim ero es la predicción p a ra d salto si el últim o salto d d program a no se tom ó, el segundo es la predicdón p a ra el salto si el últim o salto del program a se tom ó. Por lo tan to este predictor se denom ina (1,1) p o rque utiliza el com portam iento del último salto p a ra escoger un pred ictor d e un b it p a ra el salto actual (figura 3.12).

Siempre q u e se utilicen predictores multinivel es necesario alm acenar el com portam iento d e los ú lti­mos saltos d d program a en un registro d e h istoria global d e saltos (G BH o G lobal B ranch H istory) que perm ita escoger el predictor q u e se debe utilizar en cada caso.

En general, un predictor m ultinivd (m,n) utiliza el com portam iento d e los m últim os saltos tom ados para escoger un predictor de n bits para el salto actual. Los predictores locales que se habían estudiado hasta ah o ra en esta sección serían (0,1) el d e 1 b it, y (0,2) el d e 2 bits.

Page 179: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

P re d ic to r m u lt in iv e l (1,1).

Ejem plo 3 .9

Ejemplo de utilización de un pred ictor multinivel (1,2).

V am os a co m p re n d e r co n un e je m p lo se n c illo el fu n c io n a m ie n to de estos p re d ic to re s m u ltin ive l. S u p o n g a m o s q u e e je cu ta m o s el s ig u ie n te p s e u d o c ó d ig o en un p ro ce sa d o r RISC:

c e ro s = 0fo r ( i= 0 ; i+ + ; i< 1 0 0 )

if v e c to r( i)= 0 c e ro s = c e ro s + 1;

e lsev e c to r( i)= v e c to r ( i)+ 10;

Si lo tra d u c im o s a ensam b lador, quedaría a lg o c o m o :

A D D R1,R0,R0A D D R10,R0,R0ADD I R2,R 0,#400

loop : LW R 5, v e c to r (R 10)BNEZ R5,else

ADD I R1,R1,#1

J fina l

else: A D D I R 5,R 5,#10SW R 5, v e c to r (R 10)

fina l: A D D I R10,R 10,#4

BNEQ R 10,R 2,loop

Page 180: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Es decir, te n e m o s do s sa ltos c o n d ic io n a le s y u n o in c o n d ic io n a l. S u p o n g a m o s q u e u tiliza m os un p re d ic to r (1,2), esto s ig n ifica q u e u tiliza m os la h is to ria de l ú lt im o sa lto para esco g er en tre p re d ic to re s loca les de 2 b its . El v a lo r in ic ia l de l GBH es 1, es dec ir, el ú lt im o sa lto q u e se ha e je cu tad o se ha to m a d o . Y p a rtim o s de la s ig u ie n te s ituac ión in ic ia l en el b u ffe r de p re d icc ió n :

E tiq u e ta d e sa lto P red icc ión si G B H = 0 P red icc ión si G BH = 1

. . .

BNEZ 00 10

J 01 11

BNEQ 00 11

Si com e n za m o s la e jecuc ión de l c ó d ig o e je m p lo co n un v e c to r q u e só lo a lm acena ce ro s :

• A l lle g a r a BNEZ la p rim e ra vez, GBH = 1, p o r lo ta n to se escoge para este sa lto la p re d ic c ió n de la co ­lum na 1: "1 0 ". C om o es un p re d ic to r lo ca l de d o s b its es to s ig n ifica q u e se p re d ic e q u e el sa lto se to m a . Pero c o m o v e c to r(1 )= 0 , el sa lto n o se to m a . Por lo ta n to , la p re d ic c ió n fa lla y ha y q u e ac tua liza r el b u ffe r de p re d icc ió n :

E tiq u e ta d e sa lto P red icc ión si G B H = 0 P red icc ión si G BH = 1

. . .

BNEZ 00 00

J 01 11

BNEQ 00 11

• A l lle g a r al sa lto J , G B H = 0 p o rq u e el ú lt im o sa lto n o se ha to m a d o . Por lo ta n to se escoge la p re d ic c ió n de la c o lu m n a 0: "0 1 " , y la p re d ic c ió n es q u e el sa lto n o se to m a . Pero es un sa lto in c o n d ic io n a l q u e se to m a , p o r lo ta n to , ha y q u e m o d if ic a r el p re d ic to r :

E tiq u e ta d e sa lto P red icc ión si G B H = 0 P red icc ión si G BH = 1

. . .

BNEZ 00 00

J 11 11

BNEQ 00 11

• A l lle g a r al sa lto BN E Q , G B H =1 p o rq u e el ú lt im o sa lto se ha to m a d o . A s í q u e se escoge le p re d ic c ió n de la c o lu m n a 1: "1 1 ". Es decir, la p re d ic c ió n es de sa lto to m a d o y ac ie rta , p o r lo q u e n o ha y q u e m o d if ic a r el b u ffe r de p re d icc ió n .

• A l lle g a r de n u e vo al sa lto BNEZ, G B H =1 p o rq u e el ú lt im o sa lto se ha to m a d o , así q u e se esco g e el p re ­d ic to r de la co lu m n a 1: "0 0 ". E sto im p lic a q u e la p re d ic c ió n es q u e n o se sa lta , y c o m o v e c to r(2 )= 0 , no se salta y esta p re d ic c ió n a c ie rta , así q u e n o h a y q u e c o rre g ir el buffer.

Y así suces ivam ente .

Ejem plo 3 .1 0

Ejemplo de utlización de un pred icto r (2,1).

R ep itam os el e je m p lo a n te r io r co n un p re d ic to r (2,1), es dec ir, un p re d ic to r q u e u tilic e la h is to ria de lo s dos ú lt im o s sa ltos para esco g er en tre p re d ic to re s loca les de 1 b it.

Page 181: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

GBH

[yo/oi/io/ii7

B u ffe r de Predicción de Salto

El v a lo r in ic ia l de l GBH es 11, es dec ir, lo s d o s ú lt im o s sa ltos q u e se han e je cu ta d o se han to m a d o . Y p a rt i­m o s de la s ig u ie n te s ituac ión in ic ia l en el b u ffe r de p re d ic c ió n :

Etiqueta de salto Pred. si GBH=00 Pred. si GBH=01 Pred. si GBH=10 Pred. si GBH=11. . .

BNEZ 0 1 0 1

J 1 1 1 0BNEQ 0 1 1 0

Si com e n za m o s la e jecuc ión de l c ó d ig o e je m p lo co n un v e c to r q u e só lo a lm acena ce ro s :

• A l lle g a r a BNEZ la p rim e ra vez, G B H = 1 1 , p o r lo ta n to se escoge para este sa lto la p re d ic c ió n de la co ­lum na 11: "1 " . C om o es un p re d ic to r lo ca l de 1 b it es to s ig n ifica q u e se p re d ic e q u e el sa lto se to m a . Pero c o m o v e c to r(1 )= 0 , el sa lto n o se to m a . Por lo ta n to , la p re d ic c ió n fa lla y h a y q u e actua liza r el b u ffe r de p re d ic c ió n :

Etiqueta de salto Pred. si GBH=00 Pred. si GBH=01 Pred. si GBH=10 Pred. si G BH =11. . .

BNEZ 0 1 0 0J 1 1 1 0

BNEQ 0 1 1 0

• A l lle g a r al sa lto J , GBH = 10 p o rq u e el p e n ú ltim o sa lto se to m ó y el ú lt im o n o se ha to m a d o . Por lo ta n to se escoge la p re d ic c ió n de la co lu m n a 10: "1 " , y la p re d icc ió n es q u e el sa lto se to m a p o r lo q u e te n e m o s un ac ie rto .

• A l lle g a r al sa lto BNEQ, GBH =01 p o rq u e el ú lt im o sa lto se ha to m a d o . A s í q u e se escoge le p re d ic c ió n de la c o lu m n a 01: "1 ". Es decir, la p re d ic c ió n es de sa lto to m a d o y ac ie rta , p o r lo q u e n o ha y q u e m o d if ic a r el b u ffe r de p re d icc ió n .

• A l lle g a r de n u e vo al sa lto BNEZ, G B H = 1 1 p o rq u e el ú lt im o sa lto se ha to m a d o , así q u e se escoge el p re d ic to r de la c o lu m n a 11: "0 ". E sto im p lica q u e la p re d ic c ió n es q u e n o se sa lta , y c o m o v e c to r(2 )= 0 , n o se salta y esta p re d ic c ió n a c ie rta , así q u e n o ha y q u e co rre g ir el bu ffer.

Y así suces ivam ente .

Page 182: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Tener en cuenta información global de todas las instrucciones de salto ejecutadas por u n programa puede mejorar la tasa de fallos de un predictor local que sólo tiene en cuenta información relacionada con el salto para d que se va a hacer la predicdón. Pero puede que esta mejora no sea sufidente para com pensar la utilizadón de un hardware m ás complejo o incluso que no exista mejora alguna dependiendo d d programa.

En general, los program as incluyen una mezcla de distintos tipos de saltos que pueden predecirse mejor o peor con los diferentes tipos de predictores. P or este motivo existen diferentes técnicas q u e permiten utili­zar dos o m ás esquemas d e predicdón dinám ica d e saltos para realizar la predicción final m ás adecuada.

Existen técnicas m uy com plejas basadas, p o r ejemplo, en la inform ación proporcionada por el p re­dictor d e confianza d e saltos o en fusionar las predicciones proporcionadas p o r d o s o m ás predictores. J^ro tam bién se pueden diseñar sencillos predictores adaptativos o de torneo con la capacidad de escoger entre d o s predictores según cuál se vaya a com portar m ejor p a ra un determ inado salto.

Ejem plo 3.11

Diseño de un p red ictor adaptativo que escoja entre un pred ictor local y uno global.

En el e je m p lo de la f ig u ra se pu e de esco g er en tre do s p re d ic to re s d ife ren tes , u n o lo ca l (p re d ic to r 1) y o tro g loba l (p re d ic to r 2). Los estados de l d iag ram a ind ica n q u é p re d ic to r se u tiliza en cada u n o de e llos.

En el d iag ram a de tra n s ic ió n de estados se ind ica si cada u n o de lo s p re d ic to re s ha a ce rta d o (1) o fa lla d o en la ú ltim a p re d ic c ió n (0). Por e je m p lo , la tra n s ic ió n 1/0 es la q u e o c u rre c u a n d o el p re d ic to r 1 ac ie rta y el p re d ic to r 2 fa lla .

S i se está u tiliz a n d o el p re d ic to r 1, m ie n tra s éste a c ie rte , da ig u a l lo q u e o cu rra co n el p re d ic to r 2. En el m o m e n to en el q u e el p re d ic to r 1 fa lle y el p re d ic to r 2 a c ie rte , se ca m b ia de es tado p e ro se s ig u e u tiliza n d o el p re d ic to r 1. S i en la s ig u ie n te p re d ic c ió n vu e lve a o c u rr ir lo m is m o , q u e el p re d ic to r 1 fa lla y el p re d ic to r 2 ac ie rta , e n ton ce s s í se pasa a un es tado en el q u e se u tiliza el p re d ic to r 2.

Se pu e de o b se rva r q u e se ha s e g u id o una po lítica s im ila r a la de lo s p re d ic to re s de d o s b its . Es decir, n o se cam bia de p re d ic to r a n o se r q u e fa lle en d o s p re d icc io n e s co n se cu tiva s , así se e lim in a n lo s p ro b le m a s q u e se puedan p ro d u c ir p o r c o m p o rta m ie n to s e xce p c io na le s de lo s sa ltos y de lo s p re d ic to re s .

Este se n c illo d iag ram a p e rm ite es tab lece r una co m p e tic ió n o to rn e o para u tiliza r en cada m o m e n to el p re ­d ic to r q u e ac ie rta en m ás ocasiones.

Page 183: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

PEI Emisión múltiple de instruccionesTodas las técnicas d e diseño d e procesadores estudiadas hasta este m om ento persiguen la consecu­

ción d e un C PI ideal igual a 1 en procesadores segm entados, a pesar d e la existencia de los d istin tos tipos de riesgos.

Sin em bargo este valor lím ite para el C PI viene impuesto, simplemente, por la em isión d e u n a única instrucción p o r ciclo d e reloj. Si el objetivo es reducir el valor del C PI por debajo d e 1, es imprescindible em itir m ás u n a instrucción p o r ciclo: emisión m últiple d e instrucciones.

Existen distin tos tipos d e arquitecturas q u e perm iten em itir m ás de u n a instrucción por ciclo. La diferencia principal en tre ellas e s tá en la m anera d e realizar la em isión d e instrucciones, d e resolver los riesgos y d e planificar el orden d e ejecución (tabla 3.1).

T a b l a 3 .1

A rq u ite c tu ra s q u e p e rm ite n la e m is ió n m ú lt ip le d e in s tru c c io n e s .

Arquitectura Em isión Detección de riesgos Planificación

V L IW E stá tica S o ftw a re E stá tica

S u p e re s c a la r e s tá tica D in á m ic a H a rd w a re E s tá tica c o n e je c u c ió n en o rd e n

S u p e re s c a la r d in á m ic a D in á m ic a H a rd w a re D in á m ic a , e s p e ra n d o a la re s o lu c ió n de lo s sa lto s

S u p e re s c a la r d in á m ic a c o n e s p e c u la c ió n

D in á m ic a H a rd w a re C o m p le ta m e n te d in á m ic a , es p o s i­b le e je c u ta r in s tru c c io n e s q u e d e ­f ie n d e n d e p re d ic c io n e s d e sa lto

3.3.1. VLIW

Los procesadores Very Long Instruction W ord (VLIW, Palabra de Instrucción M uy Larga), estuvie­ron unos años casi a i desuso pero han vuelto a estar d e actualidad porque han inspirado el diseño de arquitecturas com o la de los procesadores Itanium e Itanium 2 (arquitecturas EPIC ), q u e han resuelto la mayor parte d e los problem as que presentaban los antiguos diseños VLIW.

En este tipo d e arquitecturas d com pilador em paqueta un conjunto d e instrucciones q u e pueden eje­cutarse en p a ra ld o en u n a única instrucción m uy larga. Es decir, el com pilador especifica explícitam ente d parald ism o en cad a instrucción, no es u n a responsabilidad del procesador.

El com pilador debe tener en cuenta q u e no existan riesgos d e datos n i de control en tre las sub- instrucciones q u e se em paquetan ju n ta s y q u e haya recursos suficientes en el procesador para ejecutarlas todas a i paralelo. Si se supone u n procesador com o el d e la figura 3.13, co n cuatro tipos diferentes de unidades funcionales y recursos d e ejecución (por ejemplo, u n a A LU d e enteros, un sum ador/restador a i com a flotante, un m ultiplicador/divisor en com a flotante y las unidades d e carga y alm acenam iento), se deberán em paquetar siempre cuatro subinstrucciones jun tas, u n a d e cada tipo, en cad a palabra de instrucción m uy larga. Lo habitual es q u e estas subinstrucciones avancen de m anera sincronizada por la ru ta d e datos, d e m anera q u e si u n a se detiene se detengan tam bién las demás, com enzando así cada etapa de ejecución todas al m iañ o tiem po.

Como en este tipo d e arquitectura no son necesarias estructuras p a ra la planificación dinám ica de instrucciones (ni ventana de instrucciones n i estaciones d e reserva, la planificadón la realiza el com pi­lador al em paquetar las instrucdones), se pueden incluir m ás unidades funcionales para realizar opera-

Page 184: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

R uta d e d a to s d e un p ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l VLIW .

dones, d e m anera que el diseño es el d e un procesador segm entado sendllo pero con g ran can tidad de recursos d e ejecución. Adem ás es necesario incluir puertos adicionales d e lectura y escritura en el banco de registros, para q u e todas las subinstrucciones puedan leer sus operandos y escribir sus resultados en la e tap a adecuada.

R ira m antener to d as estas unidades fundonales del procesador ocupadas, el parald ism o inherente al código tiene q u e ser alto. Es habitual utilizar técnicas q u e lo aum enten com o d desenrollado de bucles y la reordenación del código. En algunos casos tam bién se modifica el diseño del procesador p a ra q u e ayu­de al com pilador a aum entar d parald ism o, por ejemplo, es habitual in d u ir instruedones que perm itan la u tilizadón d e predicados a i los repertorios d e este tipo d e procesadores.

El principal problem a d e este tipo d e arquitectura h a estado tradicionalm ente en el tam año de los códigos, ya q u e en cada instrucción suelen q uedar huecos al ser imposible em paquetar siempre sub­instrucciones q u e rd lenen palabras d e instrucción m uy largas p o r com pleto debido a los riesgos. Estos huecos ocupan espacio en la m em oria innecesariamente.

Además, existen problem as d e com patibilidad en tre diferentes arquitecturas. Incluso en tre diferentes implementaciones d e la m ism a arquitectura (una nueva unidad funcional o u n a latencia diferente p a ra alguna d e las unidades, por ejemplo), sería necesario recom pilar el código para planificar adecuadam ente las subinstrucciones.

Los procesadores V LIW han sido u n a buena opción para el diseño d e sistem as em potrados, ya que consiguen la em isión múltiple d e instrucciones con m enor consum o d e potencia q u e otro tipo d e diseños en los q u e la responsabilidad d e la planificación recae sobre el hardware. Pero no se han utilizado mucho

Page 185: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

en otro tipo d e sistemas, en los q u e se h a com probado que cuando un procesador V LIW puede conseguir un rendim iento alto, tam bién puede hacerio casi siem pre un procesador vectorial, con u n diseño del com ­pilador y del propio procesador b astan te m ás sencillo.

En este caso el diseño persigue aprovechar d e m anera eficiente d paralelism o d e da to s realizando d procesam iento sobre variables agrupadas en vectores, d e m anera que los operandos y los resultados sean siem pre vectores. E ste concepto se h a incorporado en casi todas las arquitecturas actuales q u e no son V LIW ni vectoriales pero que incluyen extensiones m ultim edia en los repertorios d e instrucdones, diseñadas p a ra aprovechar d paralelism o SIM D (Single Instruction M últiple D ata) trabajando co n vec­tores.

3.3.2. Superescalar estática

En la figura 3.14 se m uestra la evolución seguida h asta el m om ento en este libro. Se com enzó p o r un procesador secuencial en el capítulo 1, en este mismo capítulo se explicó cóm o convertido en un proce­sador segm entado y p o r últim o en un procesador segm entado m ultifuncional (en la figura se m uestran las cuatro bifurcaciones típicas que se han utilizado previamente: ALU de enteros, sum ador/restador a i com a flotante segm entado, m ultiplicador/divisor a i com a flotante segm entado y A L U /traducdón de d irecdón virtual a física y m em oria de d a to s para las instrucdones d e carga/alm acenam iento). En la fi­gura 3.15 se m uestra cóm o convertir este últim o procesador a i uno superescalar estático capaz d e o n itir dos instrucciones p o r ciclo.

E n un p rocesador superescalar típ ico se em iten en tre 1 y 8 instrucciones p o r ciclo. A dem ás, si la planificación es está tica , la em isión d e instrucciones debe realizarse en o rden y los riesgos se detectan y resuelven an tes d e la em isión. Por lo tan to , las instrucciones q u e se em iten sim ultáneam ente deben

P ro ce sa d o r P rocesadorS ecue nc ia l S e g m e n ta d o

S egm en ta doM u lt ifu n c io n a l

F ig u r a 3 .1 4---------------------------------------------------------------------------------------------------------------------------------E v o lu c ió n en la s té c n ic a s d e d is e ñ o d e l p ro c e s a d o r: p ro c e s a d o r s e c u e n c ia l, p ro c e s a d o r s e g m e n ta d o

y p ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l.

Page 186: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

ALU/

FP

F ig ura 3 .15 ---------------------------------------P ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l s u p e re s c a la r e s tá t ic o c o n e m is ió n

de d o s in s tru c c io n e s p o r c ic lo .

ser independ ien tes y satisfacer u n a serie d e restricciones. P or ejem plo, no se suele em itir en u n ciclo m ás d e u n a instrucción q u e necesite hacer u n a referencia a m em oria p a ra ev ita r riesgos e s tru c tu ­rales.

Como la em isión debe realizarse en orden, si en un bloque d e instrucciones se encuentran dependen­cias, sólo se podrán em itir las instrucciones anteriores a la prim era que presenta una dependencia. La ordenación que perm ite aprovechar el paralelism o en tre instrucciones debe ser realizada por el com pi­lador, ya q u e el procesador em ite y ejecuta las instrucciones en orden, simplemente com prueba q u e las instrucciones q u e se van a em itir en paralelo pueden ejecutarse en paralelo porque no hay riesgos que lo im pidan.

En general los diseños superescalares com plican las etapas F y D puesto que es necesaria la búsque­d a y decodificación d e m ás d e u n a instrucción p o r ciclo. Estas d o s e tapas deben realizar las siguientes tareas:

• Búsqueda d e instrucciones en m o n o ria y alm acenam iento tem poral.• Predecodificación d e instrucciones, com o mínimo, p a ra determ inar d tipo d e cada in strucdón e

identificar el cam ino q u e se va a seguir p o r la ru ta d e datos, los recursos q u e se van a utilizar, etc. Este paso perm ite adem ás realizar una identificación d e saltos tem prana.

• Predicdón dinám ica d e saltos.• Decodificación com pleta d e las instrucciones.• D etección de riesgos.

E sta ú ltim a ta rea es necesaria p a ra q u e se envíen a la ru ta d e da to s b loques d e instrucciones en los que ya se h a com probado q u e es posible la em isión m últiple po rque se cum plen to dos los requisitos.

Page 187: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

En el próxim o cap ítu lo se estud iarán técnicas que m ejoren el rendim iento d e la m em oria p a ra q u e sea posible buscar m ás d e u n a instrucción p o r ciclo. A dem ás d e estas técnicas, será necesario incluir en la ru ta d e da to s nuevos com paradores q u e perm itan realizar la detección d e riesgos en tre to d as las instrucciones.

En cuanto a la em isión d e instrucciones, la diferencia fundam ental con los procesadores segm entados multifuncionales que utilizan planificación d inám ica pero sólo em iten una instrucción por c id o está en que en el caso d e los procesadores superescalares serán necesarios m últiples puertos de lectura y escritura en el banco d e registros para q u e las instrucciones que se em itan en el mismo ciclo puedan leer sus ope­randos y escribir sus resultados al m ismo tiem po si así lo necesitan.

La em isión en d nanoM IPS superescalar estático es de dos instrucciones por d c lo . H ay dos a lterna­tivas p a ra parear instrucdones:

• Emitir u n a instrucción en tera (cargas, alm acenam ientos, saltos y aritm ético-lógicas con enteros) y una en com a flo tante al mismo tiem po.

• Emitir u n a in strucdón y estud iar si las dependendas perm iten em itir tam bién la siguiente.

Cari siempre se utiliza la prim era so ludón porque es mucho m ás sendlla . N o com plica apenas el hardware d e detección de riesgos, porque la única posibilidad d e riesgo d e datos entre una instrucción a l te ra y u n a d e com a flo tante aparece con las instrucciones d e carga y alm acenam iento de operandos de com a flotante (que son instrucciones enteras).

Por lo tan to , pareando instrucdones en teras y d e punto flotante, la detección d e riesgos en tre las instrucciones del paquete d e emisión es m uy sencilla, ya q u e sólo hay que com probar estas instrucdones. I^ ro com o las dos instrucciones que se em iten al mismo tiem po deben avanzar en paralelo por la ru ta de datos, se desaprovecha el hardware p a ra operaciones con enteros enorm em ente, ya que las operaciones en com a flotante ta rdan m ucho m ás en com pletar su e tap a d e ejecución (figura 3.16).

T ipo de instrucción

Entera

FP

Entera

M

M

M WFP

P P . p i p I »FP ^ P f * | 0 ^ P ■ »

Entera F D

r f r i ' ^w

w

F ig u r a 3 .1 6

D ia g ra m a d e e je c u c ió n d e l n a n o M IP S s u p e re s c a la r e s tá tic o c o n e m is ió n de d o s in s tru c c io n e s p o r c ic lo ,u n a d e e n te ro s y u n a d e c o m a f lo ta n te .

Page 188: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Resumiendo, las modificaciones m ás im portantes que se deben realizar en el nanoM IPS para obtener un diseño superescalar a p a rtir del segm entado son:

• M odificar la unidad d e búsqueda d e instrucciones para q u e puedan buscarse d o s instrucciones en cada ciclo.

• Segm entar las unidades funcionales d e F P y replicar las q u e sea necesario. Si no se hace esto, el cauce de F P se convierte rápidam ente en el cuello d e botella (debido a la g ran latencia d e este tipo de operaciones).

• A ñadir los cam inos p a ra los adelantam ientos necesarios para solucionar los nuevos riesgos de datos.

• Sería deseable añad ir un puerto extra de lectura/escritura en el banco d e registros d e F P para p o ­der em itir sim ultáneam ente las instrucciones d e carga y alm acenam iento d e valores en F P y una instrucción d e FP.

• R)r último, destacar que d tratam iento preciso d e excepciones puede com plicarse en el caso del nanoM IPS superescalar po rque hay el doble de instrucciones ejecutándose sim ultáneam ente en la m ta de datos, tratándose adem ás d e u n a mezcla d e instrucdones enteras y de FP. Sin em bargo, las técnicas utilizadas para im plem entar el m odo preciso son m uy similares a las del nanoM IPS dásico q u e se explicaron en el capítu lo 1.

El problem a es que, aunque se hagan estas m odificadones, sólo se consigue el rendim iento m áxim o si ociste u n a proporción determ inada d e instrucciones d e enteros y com a flotante en los códigos: el 50% de cada tipo (y aún a s , se desaprovecha d hardw are d e enteros). E n cuanto no se cum pla esta proporción ya no será posible em itir d o s instrucciones en todos los ciclos y algunas unidades funcionales d d procesador estarán infrautilizadas.

Además, al tener tan tas instrucdones ejecutándose sim ultáneam ente en la ru ta d e datos, las paradas por riesgos afectan a un núm ero mucho mayor d e instrucdones y em peoran todavía m ás el rendim iento que en el nanoM IPS q u e em ite u n a única instrucdón . Por eso se hace necesaria la u tilizadón d e técnicas de planificadón dinám ica que resuelvan los riesgos en tiempo d e ejecución y q u e adem ás perm itan al propio procesador reordenar las instrucdones d e la m anera m ás adecuada.

3.3.3. Superescalar dinámica

La planificación d inám ica es la técnica que perm ite obtener el m áxim o rendim iento en u n procesador con em isión m últiple de instrucciones. L a principal ventaja que ofrece es la reso ludón de riesgos d e datos sin necesidad d e un gran núm ero de ciclos d e parada.

L a idea sería ex tender los a lgoritm os d e planificación q u e se han estud iado al principio d e este capítulo, especialm ente los algoritm os d istribu idos com o Tom asulo (que son los q u e m enos paradas in troducen en la ru ta d e datos) p a ra q u e perm itan em itir d o s o m ás instrucciones arb itra rias p o r ciclo (figura 3.17).

La principal lim itadón está en que no se pueden em itir instrucciones q u e dependan d e saltos antes de que estos se resuelvan. Y recordem os q u e tam poco pueden desordenar la ejecución d e las instrucciones de acceso a m em oria.

Por eso los procesadores superescalares con planificación dinám ica siem pre perm iten com binar esta planificación d inám ica con la p red icción d e saltos y la ejecución d eso rdenada d e los accesos a m em oria, d e m anera q u e se pueda avanzar trabajo d e las instrucciones predichas m ientras se resuelven los saltos y los cálculos d e las d irecciones d e acceso a m em oria. E sta técnica se conoce com o especu­lación.

Page 189: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

— ___ !L *

K J ¡ = t z á

*

F ig u r a 3 .1 7-----------------------------------------------------------------------------------------------------------------------------------P ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n d in á m ic a y s u p e re s c a la r d in á m ic o c o n e m is ió n

de d o s in s tru c c io n e s p o r c ic lo .

EspeculaciónLa especulación perm ite ejecutar instrucciones que dependen d e las predicciones d e los saltos o de

los cálculos necesarios p a ra ob tener las direcciones d e acceso a m em oria. Se supone que estas predic­ciones son correctas y se continúa la ejecución norm alm ente. Por lo tan to esta técnica puede aprovechar mucho m ás q u e las estudiadas hasta aho ra el hardw are incluido a i el procesador, perm itiendo q u e la planificación d inám ica pueda escoger en tre to d as las instrucciones, incluidos los saltos y los accesos a m an o ria , y sin las lim itaciones q u e an tes im ponían estas instrucciones (figura 3.18). P ara ello es necesa­rio añ ad ir u n a nueva e ta p a a la ejecución d e instrucciones, denom inada d e term inación o com m it, en la que se com prueba si las instrucciones to iían q u e ejecutarse realm ente o no y si por tan to , deben escribir sus resultados en los registros y en m em oria o no.

Obviamente, es ta téo iica implica un coste, q u e puede ser sim plonente el haber ejecutado instruccio­nes innecesariam ente si a lguna d e las predicciones d e las que d ep o id ían ha resultado ser incorrecta (esto afecta especialm ente al consum o d e potencia del procesador), o incluso el tener q u e deshacer o com pen­sar las m odificaciones q u e estas instrucciones h an realizado cuando luego se com prueba que no deberían haberse ejecutado o q u e no se h a resuelto un riesgo RAW en tre u n a instrucción de alm acoiam iento y una de carga adecuadam ente (aunque esto se evita siempre q u e es posible porque implica go ie ra r y ejecutar nuevo código). Además, com o se verá un poco m ás adelante, la especulación obliga a m odificar d tra ta ­miento d e excepciones dentro del procesador.

En todos los procesadores q u e se basan en la especuladón se utiliza planificación dinám ica d is tri­buida, es ded r, basada en estaciones de reserva y a i el ra iom bram ien to de registros, ya que es d tipo de

B i

Page 190: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

E s tru c tu ra d e p la n if ic a c ió n d in á m ic a d is tr ib u id a

F ig u r a 3 .1 8

P ro c e s a d o r s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n d in á m ic a y e s p e c u la c ió n .

planificación que m ás reduce las paradas por riesgos d e datos, lo q u e es especialm ente im portan te cuando se diseña un procesador con emisión múltiple en el q u e se van a estar ejecutando tan tas instrucciones al mismo tiem po. Pero para so porta r la especulación hay que hacer una serie d e modificaciones en el h a rd ­ware que im plem enta este tipo d e planificación.

La prim era modificación afecta al CDB (Com m on D ata Bus). Es necesario separar d hardware que perm ite d adelantam iento d e operandos en tre instrucciones d d q u e se utiliza para escribir los resultados definitivos en el banco d e registros.

La idea fundam ental es q u e las instrucdones especuladas no puedan m odificar el estado del proce­sador. P ara conseguir esto, se perm ite ejecución fuera d e orden pero se obliga a q u e la te rm inadón d e las instrucciones sea en orden (es en esta term inación en la que se perm itirá escribir en el banco d e registros o en m emoria). E sta term inación o com m it se produce cuando se resudven los saltos previos y se conoce a ciencia c ierta la secuenda d e código q u e debe ejecutarse.

El hardw are que perm ite estas m odificadones se denom ina Buffer d e Reordenam iento (ROB). Se tra ta de una estructu ra que se encarga de alm acenar el resultado d e las instrucciones especuladas desde que finalizan su ejecudón hasta q u e se les perm ite term inar. D e esta m anera, el ROB se encarga d e es­

Page 191: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

cribir los resultados en el banco d e registros y en m em oria cuando se sabe q u e son definitivos porque las instrucciones han llegado a la e tap a d e term inación.

El tam año de la ventana d e instrucciones ya no está sólo lim itado p o r d número de estaciones de reserva, sino tam bién p o r el núm ero de en trad as en el ROB, ya q u e no se puede em itir u n a instrucción si no se le puede asociar una en trad a en este buffer.

En d nanoM IPS con especulación las etapas p o r las q u e pasan las instrucciones son cuatro, la p ri­m era y la cu a rta deben realizarse siempre en orden. Es com o si se añadiera a la planificación con el algo­ritm o d e Tom asulo un ROB y u n a e tap a de com m it (figura 3.19). Prim ero se supondrá q u e se em ite una instrucción por ciclo:

1. Emisión (E). Se retira la instrucción que está en la p a r te superior d e la cola de instrucciones. Si hay alguna e s tad ó n d e reserva adecuada p a ra esta in stru cd ó n libre y existe una en trad a libre en d ROB, se envía la instrucción ju n to con el valor de los operandos q u e ya estén disponibles. Si se produce riesgo estructural p o r alguno de los d o s recursos, la e s tad ó n de reserva o el ROB, hay que p a ra r la em isión d e instrucdones hasta que se resuelva. P or el contrario , si algún operando no está disponible, la instrucción se em ite y se queda a la espera en su estación de reserva. Para d io se registra en la estación d e reserva q u é instrucción es la q u e va a producir este operando como resultado. E ste registro se realiza con la en trad a en la q u e la instrucción q u e produce el operando está a lm acenada en el ROB.

Cola de Instrucciones decodificadas

Estaciones de Reserva

Datos Load D ir S to re

Datos Store

F ig u r a 3 .1 9

R u ta d e d a to s d e l n a n o M IP S s e g m e n ta d o m u lt i fu n c io n a l c o n p la n if ic a c ió n T o m a s u lo y e s p e c u la c ió n .

Page 192: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

2. Ejecución (X). U n a instrucción se envía de la estación d e reserva a la unidad funcional cuando ésta está libre y la instrucción ya tiene en la estación de reserva sus operandos. L as instrucciones m onitorizan el CDB hasta q u e todos sus operandos estén disponibles. C uando se cum pla esta condición, se puede pasar a ejecutar la instrucción, d e esta m anera se solucionan los riesgos RAW. Si no está libre la unidad funcional q u e se requiere, habrá q u e esperar hasta que se resuelva d riesgo estructural. Si m ás de una in strucdón puede enviarse a la unidad funcional en el mismo dc lo , se envía siem pre la q u e lleva m ás tiem po esperando en la estación d e reserva.

3. Escritura de resultado (W). Se escribe el resultado de la operación (junto con la e tiqueta que indica la en trad a correspondiente a la instrucción en el ROB) en d CD B. El ROB alm acena este resultado tem poralm ente y cualquier instrucción q u e estuviera esperando por este resultado en una estación d e reserva lo puede leer del CDB.

4. Terminación o Commit (C). En esta e tapa, q u e debe realizarse en orden, pueden ocurrir tres cosas diferentes:

a ) Que la instrucción se haya especulado correctam ente y haya q u e actualizar el valor que estaba alm acenado en el ROB en el banco d e registros. U na vez hecha esta actualización, se puede elim inar la in strucdón del ROB.

b) Que la in stru cd ó n se haya especulado correctam ente y sea u n alm acenam iento. E ntonces lo que hay q u e actualizar es la m em oria en lugar d d banco d e registros.

c) Que se haya realizado alguna predicción incorrecta y la instrucción no se h a debido eje­cutar. E n este caso se elim ina directam ente d d ROB sin realizar ninguna actualización. N orm alm ente después de una instrucción d e salto cuya predicción se h a fallado, se elim inan todas las en tradas del ROB y se com ienza d e nuevo buscando la instrucción correcta. Si el problem a es que no se ha resuelto un riesgo RAW en tre un alm acenam iento en m em oria y una carga, si la especuladón afectaba sólo a la lectura d e memoria, és ta se vudve a ejecutar. Si afectaba a o tras operadones q u e utilizaban el operando leído de m em oria, hab rá que repetirlas.

Cuando se utiliza especulación se m antienen los mismos d o s tipos d e estructuras d e planificación que con la planificación d e Tomasulo, las e s tadones d e reserva y el control de escrituras (figura 3.5), pero adem ás es necesario m antener la estruc tu ra d e ROB (figura 3.20) con un puntero que indique la prim era en trada libre q u e hay en esta estructu ra (como las instrucciones hacen el com m it en orden, es sencillo gestionar este puntero).

En algunos casos, se añaden nuevas colas d e instrucdones al procesador, d e m anera que cada vez que se realiza una predicción d e salto, las instrucciones predichas se van volcando a u n a cola de instrucdones diferente. Si la p red icdón d d salto falla, con esta separación d e instrucdones p o r colas es m ás fácil recu­perar d fallo y desechar las instrucciones dependientes d e esta predicción equivocada q u e se han buscado y q u e finalm ente no se van a ejecutar.

Si adem ás d e u tilizar especulación, el procesador es superescalar, las instrucciones pasan por estas mismas e tapas pero se em ite m ás d e u n a instrucción p o r dclo . Com o es d e esperar q u e term ine m ás de una instrucción por ciclo, se suele m odificar d CDB p a ra q u e perm ita m ás de u n a escritura sim ultánea de resultados en este caso.

En cualquiera d e los d o s casos, la resolución d e la especulación asociada a las predicciones de salto es relativam ente sencilla, pero p a ra resolver la especuladón de los accesos a m em oria es necesario utilizar instrucciones centinela.

La idea es co locar un cen tinela d e este tipo en la posición en la q u e se encuen tra la lectura d e m e­m oria especulativa q u e se perm ite q u e se ejecute an tes que algún alm acenam iento. C uando se ejecuta d load especulativo, se alm acena tem poralm ente la dirección de m em oria a la q u e se accede, d e m anera que se p u ed a co m p arar con la q u e utilizan los alm acenam ientos. Si no coinciden, la especulación es correcta.

Page 193: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

Valoriqueta fuente rntrada ROB fuente 1

f F0 r F1 ... RegistroOcupado

y Entrada ROB

Control de Escrituras

Estaciones de Reserva

F ig u r a 3 .2 0

Im p le m e n ta c ió n d e las e s ta c io n e s de re s e rv a , e l c o n tro l d e e s c r itu ra s y e l R O B en e l n a n o M IP Se s p e c u la tiv o .

í^ ro si alguna dirección d e u n store q u e aparece antes en el código coincide con la d d load, significa que la especulación h a fallado y que d load (y las instrucciones que dependen d e esta lectura d e m onoria) deben repetirse. ¿Cuándo? C uando se llegue a la in stru cd ó n centinela.

Ejem plo 3 .1 2

Planificación dinámica de instrucciones con el a lgoritm o de Tomasulo especulativo en el nanoMIPS con una unidad funcional para cada estación de reserva y emisión

de una instrucción p o r ciclo.

S upongam os q u e se e jecuta el s ig u ie n te fra g m e n to de có d ig o en el nanoM IP S (e jem p lo 1.11 de l cap ítu lo 1):

1 b uc le : L.D F1,0(R1)

2 L.D F2,0(R2)

3 M U L.D F10,F1,F2

4 ADD.D F4,F6,F10

5 ADD I R 1,R 1,#8

6 ADD I R 2,R 2,#8

7 S.D F4,0(R1)

8 BNE R1,R10,bucle

In ic ia lm en te R1 = R 2 = 0 y R 10=800 .

Page 194: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Este nanoM IP S tie n e t re s A L U s de en te ros co n la tencia 1 c ic lo , d o s su m a d o re s /re s ta d o re s en com a flo ta n te con la tenc ia 4 c ic lo s y 2 m u ltip lic a d o re s /d iv is o re s en com a f lo ta n te co n la tenc ia de 8 c ic lo s para la m u ltip lic a ­c ión y 10 para la d iv is ió n .

N inguna de las u n id a de s en co m a f lo ta n te está segm en tada y se t ie n e una u n id a d fu n c io n a l para cada es­ta c ió n de rese rva . Las estac iones de rese rva se e tique tan c o m o 1, 2 y 3 las de en te ro s , 4 y 5 las de sum a/res ta en co m a f lo ta n te y 6 y 7 las de m u ltip lic a c ió n y d iv is ió n en co m a flo ta n te .

Por s im p lic id a d , se su p o ne de n u e vo q u e las in s tru cc io n e s de ca rga y a lm a ce n a m ie n to s iguen el m is m o c a m in o q u e las in s tru cc io n e s de en te ro s , u tiliz a n d o las m ism a s A LU s y co n 1 c ic lo de la tencia .

En esta a rq u ite c tu ra se u tiliza una es tru c tu ra de t ip o b u ffe r de p re d ic c ió n co n BTB para rea liza r la p re d ic c ió n de lo s sa ltos , y en el caso de este có d ig o , la p re d ic c ió n es q u e el sa lto se to m a en to d a s las ocasiones. A d e m á s el ROB tie n e 10 en tradas. Este sería el d iag ram a de e je cu c ió n hasta q u e se resue lva la p rim e ra especu lac ión realizada:

In s tru c c ió n E X W C

L.D F1,0(R1) 1 2 3 4

L.D F2,0(R2) 2 3 4 5

M U L.D F10,F1,F2 3 5RAW-12 13 14

ADD.D F4,F6,F10 4 I 4 R A W . 1 7 18 19

ADDI R 1,R 1 ,#8 5 6 7 20

ADDI R 2,R 2 ,#8 6 7 8 21

S.D F4,0(R1) 7 1 q R a w 20 22

BNE R 1,R 10,bucle 8 9 10 23

L.D F1,0(R1) 9 10 11

L.D F2,0(R2) 1 1 * 12 1 4 *

M U L.D F10,F1,F2 12 15raw-22

ADD.D F4,F6,F10 13

ADDI R 1,R 1 ,#8 1 5 * 16 17

ADDI R 2,R 2,#8 2 0 * 21

S.D F4,0(R1) 21

BNE R 1,R 10,bucle 22

Este sería el d iagram a te m p o ra l de e jecuc ión de las in s tru cc io n e s sin te n e r en cuenta la e tapa de búsqueda de in s tru c c ió n q u e las de ja a lm acenadas en la co la de in s tru cc io n e s . Se p u e d e o b se rva r que:

• La p la n ific a c ió n se rea liza exac tam en te ig u a l q u e co n el a lg o r itm o de T om asu lo p e ro c u a n d o se llega a una in s tru c c ió n de sa lto , se p u e d e te n e r en cuen ta la p re d ic c ió n para ese sa lto y s e g u ir e je cu tan d o in s tru cc io n e s s ie m p re y c u a n d o lo s r ie sgo s e s tru c tu ra les lo p e rm itan .

• La etapa de te rm in a c ió n o c o m m it debe hace rse en o rd e n . P o r e je m p lo , la in s tru c c ió n A D D I R 1,R 1,#8 escribe sus resu lta d o s en el CDB en el c ic lo 7 p e ro n o pu e de te rm in a r hasta el c ic lo 20 (qu e es cu a n do libe ra su en trada en el ROB).

• La in s tru cc ió n L.D F2,0(R2) n o pu e de e m itirse en el c ic lo 10 p o rq u e n o t ie n e lib re una estac ión de reserva para e n te ro s (só lo ha y tre s y las tre s están ocu p ad a s en ese c ic lo ).

• La in s tru cc ió n A D D I n o se pu e de e m itir en el c ic lo 14 p o rq u e hay un r ie sg o e s truc tu ra l p o r el ROB, ya no quedan e n tradas lib res . Por lo ta n to , h a y q u e esperar hasta q u e queda una lib re en el c ic lo 15 para p o d e r co n tin u a r co n la e m is ió n . Lo m is m o o c u rre co n la s ig u ie n te in s tru c c ió n A D D I, q u e t ie n e q u e espe ra r a q u e qu e de una en trada lib re en el ROB en el c ic lo 20 para p o d e r e m itirse .

• Las e n tradas som b re a d as de l d iag ram a de e jecuc ión c o rre sp o n d e n a in s tru cc io n e s especu ladas , q u e se p lan ifican sin saber s e g u ro si deben e je cu ta rse o no . La fro n te ra para la especu lac ión está en el c ic lo 23,

Page 195: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

cu a n do la p rim e ra in s tru cc ió n de sa lto te rm in a y se sabe rea lm e n te si las in s tru cc io n e s q u e se han e je cu ­ta d o según la p re d ic c ió n para este sa lto deben segu ir avanzando o p o r el c o n tra r io , si deben desecharse p o rq u e la p re d ic c ió n estaba equ ivocada .

• El e fe c to de u tiliz a r especu lac ión co n este b u c le es casi el m is m o q u e el de h a ce r un d e se n ro lla d o so ft­w a re , só lo q u e en este caso, es el p ro p io p ro ce sa d o r el q u e se encarga de rea liza r to d a la ge s tió n desde el ha rd w a re . Se pu e de e n c o n tra r en un d e te rm in a d o c ic lo la m ism a in s tru cc ió n de d is tin ta s ite ra c io n e s de l b u c le e jecu tán d o se en el p rocesador.

Y si p o r e je m p lo , n o s p re g u n ta m o s p o r el estado de las estac iones de rese rva , el ROB y de l c o n tro l de e scritu ras al co m e n za r el c ic lo 19, te n d ría m o s :

Etiqueta Valor s1 Entrada ROB s1 Valor s2 Entrada ROB s2 Entrada ROB

1

2

3 [C D B jc ic lo 18 [R1] 7

4

5 [F6j — 1 2

6

7 [F1] [C D B jc ic lo 14 1

FO F1 F2 F3 F4 F10 Reg

SÍ SÍ SÍ SÍ O cup

9 10 2 1 EntradaROB

E n tra daE tiq u e ta e s ta c ió n

d e rese rvaUF E tapa

c o m p le ta d aD e s tin o DIR

V a lo r del re s u lta d o

1 7 M u lt/D iv E F 1 0 — —

2 5 A d d /S u b E F4 — —

3 — — W R1 — # #

4 — — W F4 — # #

5 — — W R1 — # #

6 — — W R2 — # #

7 3 A LU E — @@ —

8 — — W — — # #

9 — — W F1 @ @ # #

10 — — W F2 @ @ # #

D onde @ @ y # # expresan va lo re s n u m é ric o s co n c re to s q u e son las d irecc ion e s de acceso a m e m o ria y lo s resu lta d o s de o p e ra c io n e s a ritm é tic o -ló g ic a s respec tivam en te .

Page 196: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 3 .1 3

Planificación dinámica de instrucciones con el a lgoritm o de Tomasulo especulativo en el nanoMIPS con una unidad funcional para cada estación de reserva y emisión

de dos instrucciones p o r ciclo (implementación superescalar).

R ep itam os la e jecuc ión de l có d ig o de l e je m p lo a n te r io r en un d ise ñ o m ás e fic ie n te q u e pueda e m itir d o s in s tru cc io n e s p o r c ic lo , s ie m p re y c u a n d o n o ex is tan r ie s g o s e n tre e llas , y q u e adem ás co m p a rta la m ism a un idad fu n c io n a l para va ria s es tac iones de reserva. H ay q u e te n e r en cuen ta q u e en este d ise ñ o , adem ás de p o d e r e m itir d o s in s tru cc io n e s p o r c ic lo , el CDB a d m itirá do s escritu ras p o r c ic lo , el ROB p o d rá te rm in a r dos in s tru cc io n e s p o r c ic lo , e tc. Este sería el d iag ram a de e je cu c ió n en este caso :

In s tru cc ió n E X W C

L.D F1,0(R1) 1 2 3 4

L.D F2,0(R2) 2 3 4 5

M UL.D F10,F1,F2 3 5raw-12 13 14

ADD.D F4,F6,F10 4 1 4 R A W - 1 ? 18 19

ADDI R1,R1,#8 4 5 6 19

ADDI R2,R2,#8 5 6 7 20

S.D F4,0(R1) 6 1 9 R A W 20 21

BNE R1,R10,bucle 7 8 9 22

L.D F1,0(R1) 8 9 10

L.D F2,0(R2) 9 10 11

M UL.D F10,F1,F2 10 13^-20 21

ADD.D F4,F6,F10 11

ADDI R1,R1,#8 1 5 * 16 17

ADDI R2,R2,#8 2 0 * 21

S.D F4,0(R1) 21

C om o se pu e de observar, el h echo de c o m p a rtir las u n id a de s fu n c io n a le s só lo p ro vo ca una parada de un c ic lo p o r r ie sg o es tru c tu ra l e n tre las do s m u ltip lic a c io n e s en co m a f lo ta n te (qu e se podría e v ita r se g m e n ta n d o las u n id a de s fu n c io n a le s ). Por lo dem ás, y a pesar de re d u c ir ta n to lo s re c u rs o s h a rd w a re d isp o n ib les , el re n ­d im ie n to de la e jecuc ión n o ha s u fr id o n in g ú n cam b io .

En cu a n to a la em is ión de do s in s tru cc io n e s p o r c ic lo , lo s r ie sgo s e s tru c tu ra les y de d a tos en tre las d ife re n ­tes in s tru cc io n e s , han im p e d id o q u e se pueda a p ro ve ch a r en la m a y o r pa rte de lo s c ic lo s . Este es un p ro b le m a m u y c o m ú n ; a u n qu e el h a rd w a re in c lu id o en el p ro ce sa d o r sea capaz de e m itir m ás de una in s tru c c ió n p o r c ic lo , las d e p endenc ias en tre las in s tru cc io n e s lim ita n m u c h o la e xp lo tac ión de l p a ra le lism o a n ive l de in s tru c ­c ión .

Por últim o, es necesario estud iar detenidam ente la posibilidad d e hacer un tratam iento d e excepcio­nes preciso en un procesador q u e utilice especulación.

Page 197: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

En general, hay q u e evitar q u e las instrucciones especuladas produzcan excepciones q u e afecten a los resultados del p rogram a y a su com portam iento, ya que m ientras están especuladas, no se sabe seguro si tienen q u e ejecutarse o no.

Existen diferentes alternativas p a ra el tratam iento d e excepciones en procesadores especulativos, es­tos son sólo d o s ejemplos:

• Las excepciones q u e provocan las instrucciones especuladas se com prueban m ediante código ex­plícito (norm alm ente instrucciones de check o test que com prueban las causas típicas d e excepción para cad a tipo de instrucción). Si estas excepciones provocan la finalización d d program a, se igno­ran, en caso contrario , se tra tan .

• Se añaden bits d e veneno (poison bits) a los registros del banco d e registros, d e m anera q u e si una instrucción especulada provoca u n a excepción, és ta se ignora pero se pone a 1 d poison b it del registro en el q u e escribe su resultado. Si o tra instrucción tiene com o operando fuente este registro, se tra ta la excepdón antes d e q u e el valor envenenado se utilice.

En el caso del nanoM IPS el tratam iento d e excepciones se realiza gracias al buffer d e reordenam ien­to, utilizando u n a técnica similar a la del vector d e estados que se explicó en el capítulo 1 y aprovechando que las instrucdones están obligadas a realizar el com m it en orden. P ara d io se añade nueva inform ación a cada en trada d d ROB, q u e indica si la instrucción h a provocado u n a excepdón en alguna d e sus etapas, de la m ism a m anera q u e se alm acenaba esta in form adón en el vector d e estados q u e acom pañaba a la instrucción p o r la ru ta d e datos.

MultithreadingLas técnicas de diseño estudiadas hasta el m om ento se lim itan a buscar d parald ism o en tre instruc­

d o n es en un único hilo o thread de ejecución. Pero si no es posible explotar d paralelism o a nivel de instrucción (ILP) den tro de este thread, la ganancia ob ten ida utilizando estas técnicas será m uy pobre, a pesar d e su g ran consum o en recursos hardw are y en potencia.

U na posible solución es el m ultithreading, que perm ite explotar el paralelism o en tre instrucciones que pertenecen a diferentes hilos d e ejecución. Es ded r, se va un paso m ás allá in tentando aprovechar d paralelism o a nivel d e hilo (Thread level paralld ism , TLP) adem ás del ILP. H ay que recordar q u e un thread o hilo d e ejecución tiene su propia pila y con tado r d e program a pero com parte el código, las va­riables globales y los archivos abiertos con el resto d e th reads del mismo proceso. P or eso los cam bios de contexto en tre th reads son m ás sencillos. E n general, los th reads son m ás ligeros q u e los procesos, y se pueden crear y destru ir m ás rápidam ente.

E sta técnica d e m ultithreading suele com binarse con todas las estudiadas anteriorm ente, m ejorando así el rendim iento d e los procesadores superescalares con especulación. L a principal diferencia es que para u tilizar es ta técnica se involucra directam ente al sistema operativo y al com pilador.

El m ultihtreading consiste en ejecutar al mismo tiem po d o s o m ás th reads de u n program a, perm i­tiendo q u e cada uno de estos threads sea planificado d e la m anera m ás conveniente en el procesador, es decir, aprovechando al m áxim o todos los recursos disponibles. Es equivalente a tener dos o m ás procesa­dores lógicos o virtuales en lugar d e uno sólo (figura 3.21).

D e m om ento la mayor p a rte d e los diseños que h a incorporado esta técnica han perm itido ejecutar sim ultáneam ente instrucciones d e 2 th reads diferentes. El SM T (Symmetric M ultiThreading) o H yper- threading consiste en perm itir que se em itan en d mismo d c lo instrucdones q u e pertenecen a dos hilos de ejecución o th reads diferentes. Por el contrario , el C M T (Coarse M ultiThreading) no perm ite q u e se lancen instrucciones d e th reads diferentes en el mismo ciclo. En cada ciclo o son d e u n thread o son de otro. Es decir, aunque se ejecuten varios th reads en paralelo, lo hacen turnándose en la emisión d e ins-

m

Page 198: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

2 P ro c e sa d o re s V ir tu a le s

/ M em oria d e In s tru cc io n es

F r o i

F ig u r a 3 .2 1

M u ltith re a d in g .

trucciones en cada ciclo. E sta técnica evita tener q u e recom pilar las aplicaciones cuando se ejecutan en procesadores diferentes (figura 3.22).

En cualquier caso, ¿cómo com parten los diferentes th reads los recursos del procesador? Existen tres tipos d e recursos:

• Recurso replicado. C ada thread tiene d suyo propio, es el caso del con tado r d e program a, los regis­tros de contro l o la pila.

• Recurso repartido. Existe un único recurso que se divide d e m anera estática en tre todos los threads, es decir, inicialm ente se establece un reparto q u e no se puede m odificar en tiem po d e ejecución. Suele ser el caso del buffer d e reordenam iento, la cola d e planificación d e instrucdones, etc, en los que se reparten las en tradas p ara cad a thread.

• Recurso compartido. Existe un único recurso q u e se com parte d e m anera d inám ica en tre to dos los threads según la planificación que se haga en tiempo de ejecurión y sus necesidades. Es d caso de las unidades d e ejecución, los registros d e propósito general y las m em orias caché.

La existencia d e los recursos com partidos es la que m ejora el rendim iento d e los procesadores supe- rescalares tradicionales ya que perm ite aprovechar recursos que de o tra m anera no se utilizarían. Aunque por o tro lado lim ita la ganancia ob ten ida ya q u e realm ente sólo se tiene un procesador. Por ejem plo, con 2 threads (2 procesadores virtuales), se puede increm entar d rendim iento del p rocesador a i u n 25 o 30%, pero no en un 100%.

2 T h re a d s

N úcleo d e E jecución

Page 199: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

Las dos instrucciones que se pueden e m itir po r ciclo

’ iH —ík iH HH m —2 MUi l ilip ppp Wfc,3 111 m iü4 n ippi nmi =1m

_________?■ ÍÜ üü * S. m imf 1_______ mu

■__________I 1m su VVVAV

SUPERESCALAR SMT

F ig u r a 3 .2 2

CMT

D ife re n c ia s e n tre un p ro c e s a d o r s u p e re s c a la r q u e e m ite d o s in s tru c c io n e s p o r c ic lo , un p ro c e s a d o r co nS M T y u n o c o n CMT.

Page 200: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQUITECTURAS DE CO M PUTADO RAS

Resumen de decisiones de diseño de técnicas de aumento de prestaciones para procesadores

P l a n i f i c a c i ó n d i n á m i c a d e i n s t r u c c i o n e s

Decisión A lternativas D ecisiones asociad as

E ta p a s de ejecución de una instrucción

Ubicación de la lógica de planificación

C e n tra liza d a T am a ñ o y d is e ñ o d e la v e n ta n a de in s tru c c io n e s

D is tr ib u id a N ú m e ro y d is e ñ o d e las e s ta c io n e s d e re s e rv a

C o m p a r t ic ió n d e las u n id a d e s fu n c io n a le s p o r d ife re n te s

e s ta c io n e s d e re s e rv a

Resolución de riesgos W A R y W AW

Paradas R e n o m b ra m ie n to d e re g is tro s

E jecución de los accesos a m em oria

En o rd e n F ue ra d e o rd e n

P r e d i c c i ó n d i n á m i c a d e s a l t o s

Decisión Alternativas D ecisiones asociad as

B u ffe r d e p re d ic c ió n N ú m e ro d e e n tra d a s N ú m e ro d e p u e r to s d e acce so

Estructura hardw are

BTB N ú m e ro d e p u e r to s d e acce so A lm a c e n a m ie n to d e la d ire c c ió n

d e s tin o d e s a lto o d e la in s tru c c ió n d e s t in o d e sa lto

E s tru c tu ra s u n if ic a d a s u o tra s e s tru c tu ra s

B u ffe r d e p re d ic c ió n + B T B ín d ice s u c e s o r en la m e m o r ia de in s tru c c io n e s , p ila de d ire c c ió n

de re to rn o , b u f fe r p a ra la p re d ic c ió n d e la c o n fia n z a d e lo s

s a lto s , e tc

P re d ic c ió n im p líc ita

P re d ic c ió n lo c a l N ú m e ro d e b its

P re d ic c ió n g lo b a l L o n g itu d d e l G BH y n ú m e ro de b its p a ra la p re d ic c ió n lo ca l

Tipo de predictorP re d ic c ió n h íb r id a A lg o r itm o d e fu s ió n de

p re d ic c io n e s U tiliz a c ió n d e in fo rm a c ió n

a c e rc a d e la c o n fia n z a d e las p re d ic c io n e s

P re d ic c ió n a d a p ta tiv a N ú m e ro y t ip o de p re d ic to re s p o s ib le s

A lg o r itm o d e a d a p ta c ió n (o d e to rn e o )

Page 201: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

E m i s i ó n m ú l t i p l e d e i n s t r u c c i o n e s y e s p e c u l a c i ó n

Decisión Alternativas D ecisiones asociad as

E s tá tica (VLIW ) N ú m e ro d e s u b in s tru c c io n e s p o r V L IW

R e la c ió n d e l p ro c e s a d o r c o n el c o m p ila d o r

T é c n ic a s S W p a ra a u m e n ta r el ILP

Tipo de em isión D in á m ic a (s u p e re s c a la re s ) P la n if ic a c ió n e s tá tic a o d in á m ic a P o lít ic a d e e m is ió n

D in á m ic a c o n e s p e c u la c ió n P o lític a d e te rm in a c ió n o c o m m it D is e ñ o d e l ROB

M e c a n is m o s d e re s o lu c ió n d e la e s p e c u la c ió n d e s a lto s y a cce so s

a m e m o r ia T ra ta m ie n to d e e x c e p c io n e s

P a r a l e l i s m o a n i v e l d e t h r e a d

Decisión Alternativas D ecisiones asociad as

Núm ero de threads que pueden ejecutarse en paralelo

Posibilidad de em isión de instrucciones de diferentes th read s en el m ism o ciclo

Sí (S M T) N o (C M T)

En a m b o s c a s o s : q u é re c u rs o s se re p lic a n , re p a r te n y

c o m p a rte n P o líticas d e c o m p a r t ic ió n

BIBLIOGRAFIA Y LECTURAS RECOMENDADASFARGUHAR, E. & BUNCE, P. J. (1994): The M IP S Programmer's H andbook (1.a ed.), M organ Kaufmann. HENNESSY, J. L. & PATTERSON, D. A. (2007): Computer Architecture: A Quantitative Approach (4.a ed.), Morgan

Kaufmann.HWANG, K. (1992): Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw Hill. KANE, G. & H EIN R IN C H , J. (1991): M IP S R IS C Architecture (2.a ed.), Prentice Hall.O M O ND I, A. R. (1999): The Microarchitecture o f Pipelined and Superscalar Computers (1.a ed.), Springer. ORTEGA, J.; ANGUITA, M. & PRIETO, A. (2005): Arquitectura de Computadores, Thomson.PARHAM I, B. (2007): Arquitectura de Computadoras. De los microprocesadores a las supercomputadoras (1.a ed.),

McGraw Hill.SHEN, J. P. & LIPASTI, M. (2006): Arquitectura de Computadores. Fundatnentos de los procesadores superescalares

(1.a ed.), McGraw Hill.SHIVA, S. G. (2005): Advanced Computer Architectures, CRC Press.SILC, J.; ROBIC, B. & U N G ER ER , T. (1999): Processor Architecture. From Dataflow to Superscalar and Beyond,

Springer.SIMA, D.; FOUNTAIN, T. & KARSUK, P. (1997): Advanced Computer Architectures: A Design Space

Approach., Addison Wesley.

Page 202: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

PROBLEMAS3.1. Se ejecuta el siguiente fragm ento d e código en un procesador nanoM IPS que utiliza planifica­

ción basada en el algoritm o d e la P izarra (centralizada) y q u e tiene d o s A LU s d e a lte ro s (laten­cia 1 ciclo), dos sum adores/restadores en co m a flotante (latencia 4 ciclos), dos m ultiplicadores en com a flotante (latencia 7 ciclos) y un divisor en com a flotante (latencia 20 ciclos). N inguna de estas unidades funcionales está segm entada. M ostrar el d iagram a d e ejecución d e este código y el estado d e las estructuras hardware utilizadas p a ra la planificación dinám ica al term inar el ciclo16.

L.D F2,0(R1)M U L.D F4,F2 ,F0DIV.D F1,F2,F8A D D .D F6,F4,F6S.D 0(R2), F6A D D .D F7,F0,F6SUB.D F6,F5,F3

3.2. M ostrar d d iagram a d e ejecución del mismo código del ejercicio 3.1 con una planificación de Tomasulo con tres estaciones de reserva p a ra operaciones con enteros, tres e stadones d e reserva para sum a y resta en com a flotante, una estación de reserva para m ultip licadón en com a flotante y u n a para división en com a flotante. Suponer q u e cada estación d e reserva tiene su propia un i­dad fundonal, con las latencias especificadas en el ejercicio anterior, y q u e n inguna de ellas está segmentada. M ostrar adem ás el estado d e las estructuras hardware utilizadas para la planifica- d ó n al term inar el ciclo 11.

3.3. Repetir el ejercicio 3.2 a sólo hay una unidad funcional de cada tipo com partida por las estacio­nes d e reserva, pero todas las unidades funcionales de com a flotante están segmentadas.

3.4. C om parar el d iagram a de ejecudón del siguiente fragm ento d e código en los d o s siguientes dise­ños del nanoM IPS:

a) Planificación b asada en la Pizarra. C uatro unidades de enteros, dos d e sum a/resta en com a flotante y dos d e multiplicación/división. Latencias d e 1 ,4 y 9 d c lo s respectivamente. U n i­dades fundonales sin segmentar.

b) Planificación basada en Tomasulo. Cuatro estaciones d e reserva d e enteros, d o s d e sum a/ resta a i com a flotante y dos d e multiplicación/división. U n a unidad funcional d e cada tipo, todas ellas segm entadas. M ism as la to ic ias que en el apartado a.

M U L.D F 3,F 1 ,F 0DIV.D F4,F3 ,F8DIV.D F6,F3 ,F2ADD.D F 8,F 2 ,F 0ADD.D F 8,F 1 ,F 7SUB.D F7,F3,F1M U L.D F6,F5 ,F9S.D F6,100(R4)

3.5. Un procesador está segm entado en 7 etapas: IF, ID , IS, EX 1, EX 2, M E M y WB. En este proce­sador las instrucciones de salto condicional calculan la dirección destino d e salto en la e tap a ID

Page 203: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

y evalúan la condición y cargan el nuevo P C en la e tap a EX1. C om parar el rendim iento d e la predicción estática d e salto no tom ado con la d e u n BTB que utiliza un predictor d e 1 b it, ob te­niendo la predicción y la dirección destino d e salto al final d e la fase ID . Los saltos q u e no se to ­man no se alm acenan en d BTB. P ara realizar la com paradón d e am bos esquem as de predicción re utiliza una carga típica en la que el 18% de las instrucciones son saltos condicionales. D e estas instrucciones el 85% son saltos tom ados. Además, la ta sa d e fallos del BTB es del 16%. C alcular d CPI del procesador con cada uno de los esquemas, suponiendo que d CPI d e las instrucciones sin tener en cuen ta los riesgos d e contro l es 1.

3 .6 . Se d iseña un p ro cesad o r segm entado con 6 e tapas: F, S, X I, M , X2 y WB. L a dirección destino d e sa lto se ob tiene en la fase X I y la cond ición se evalúa en la e ta p a X2. M o stra r el d iag ram a tem poral d e u n a instrucción d e sa lto en to d o s los casos posib les p a ra e s ta s dos alternativas:

a) Se utiliza un buffer d e predicción de saltos con un predictor local d e 2 bits q u e obtiene la predicción en la fase F. E ste buffer tiene u n a tasa d e fallos del 10%.

b) Se utiliza u n a estructu ra buffer+BTB que obtiene sus resultados en la fase S con u n a tasa de fallos del 15% porque se basa en un predictor local d e 1 bit.

P ira realizar la com paración en tre los d o s esquemas, calcular el C PI d d procesador con cada uno d e ellos, suponiendo q u e el CPI de las instrucdones sin tener en cuenta los riesgos de co n ­trol es 1. El 14% d e las instrucciones son saltos condicionales y de estos saltos, e l 75% son saltos tomados.

3.7. Se ejecuta la secuencia de código en un procesador de tipo nanoM IPS:

for (i=0;i++;i<5)R = A (i)-B (i); if R < 0

c=c++;

C om parar el rendim iento d e los siguientes tres esquem as d e predicción:

a) Predicción estática d e salto no tom ado.b) Predicción estática basada en el desplazam iento del salto: si es negativo, se predice q u e el

salto se tom a, si es positivo, se predice que el salto no se tom a.c ) Predicción d inám ica con buffer d e predicción+B T B y un p red ic to r d e 1 b it, cuyo valor

inicial es 0 (suponer q u e la predicción d e la d irección destino d e salto se ac ie rta siem-pre).

P ira realizar esta com paración, tener en cuen ta q u e en las tres prim eras iteraciones A(i)>B(i) y en que en las dos siguientes, A(i)>B(i). Además, la penalización por salto cuando se ac ierta la predicción es d e 0 ciclos, y cuando se falla es d e 3 ciclos.

3.8. Se ejecuta la siguiente secuencia d e código en un procesador de tipo M IPS que realiza predicción dinám ica d e saltos con una estruc tu ra d e buffer d e predicción u n ida a un BTB:

for (i=0;i++;i<5) if A(i) * B(i)

A(i)=B(i);

Page 204: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Q ue traducido al repertorio d e instrucciones del procesador queda:

ADD R1,R0,R0ADDI R2,R0,#20

loop: LW R5A(R1)LW R6,B(R1)BEQ R 5,R 6, finalSW R6,A(R1)

final: ADDI R1,R1,#4BNEQ R1 ,R2,loop

Los vectores A y B son los siguientes:

A = (1 2 3 5)B = ( 1 2 4 9 )

a) Si se utiliza un predictor (1,1), con un valor inicial del G B H de 0 ( es decir, el último salto que se h a ejecutado no se h a tom ado) y partim os d e la siguiente situación inicial en el buffer de predicción, explicar cóm o se van realizando las predicciones y cóm o se va actualizando esta estructu ra al ejecutar el código propuesto sobre los vectores A y B:

Etiqueta de salto Predicción s i GBH =0 Predicción s i GBH = 1

. . .

BEQ 1 1

B N E Q 1 0

. . .

b) Repetir el apartado anterior si se utiliza un predictor (1,2), co n un valor inicial del G B H de 0 y el siguiente estado inicial del buffer:

Etiqueta de salto Predicción s i G BH = 0 Predicción s i GBH = 1

. . .

BEQ 10 01

BN E Q 11 01

. . .

c) C om parar las d o s opciones estud iadas y escoger u n a d e d ía s teniendo en cuen ta el tam año del buffer, la com plejidad de gestión y actualización, la tasa d e fallos, d e . Justificar adecua­dam ente la decisión.

3.9. Se ejecuta el siguiente fragm ento d e código:

loop: L .DA D D .DS.DAD D IBNE

F0,0(R1)F4,F0 ,F2F4,0(R1)R 1,R 1,#8R l,R 2 ,lo o p

S la latencia d e la sum a a i com a flotante es d e cuatro ciclos, ¿cuántas instruedones se emiten por delo?

Page 205: Diseño y Evaluación de Arquitecturas de Computadoras

3. TÉCNICAS DE AU M EN TO DE PRESTACIONES PARA PROCESADORES

a) Si se tiene un procesador V LIW que em paqueta dos referencias a memoria, dos operaciones en F P y una operación en tera en cada ciclo. M ostrar cóm o se em paquetan las instrucciones de este bucle (desenrollando el bucle tan tas veces com o haga falta) para aprovechar al m áxi­mo los recursos del procesador y q u e no haya ningún ciclo en d que esté com pletam ente desocupado.

b) Si se ejecuta una iteración del bucle en el nanoM IPS superescalar estático.c) Si se ejecuta una iteración del bucle en el nanoM IPS superescalar dinám ico con em isión de

4 instrucciones por ciclo y cuatro estaciones de reserva p ara enteros, cuatro p a ra sum a/resta en com a flotante y d o s p a ra m uítiplicadón/división.

3.10. Se ejecuta d siguiente código a i u n nanoM IPS especulativo que dispone d e un BTB q u e obtiene sus predicciones al final d e la fase d e em isión y u n a un idad funcional de cad a tipo, con todas las unidades funcionales de com a flotante segmentadas. L as latencias d e estas unidades funcionales son de 1 ciclo para la ALU d e a lteros, 4 ciclos para el sum ador/restador a i F P y 10 d c lo s para d m ultiplicar/divisor en FP. Además, se dispone d e un número ilim itado d e o itra d a s en el buffer de reordoiam iento y de 2 estaciones d e reserva para operaciones a lte ras , 3 para sum a y resta en F P y 2 p a ra m ultiplicadón y división en FP.

M U L.D F2,F4,F8ADD.D F4,F4,F10SUB.D F6,F2 ,F4BLTZ F6,saltoADD.D F2,F4,F10M U L.D F6,F8 ,F4M U L.D F6,F6,F2M U L.D F6,F6,F6SUB.D F6,F6,F8ADD.D F6,F6,F6SUB.D F2,F6 ,F4DIV.D F4,F2,F2S.D F4,8(R0)

Si los valores iniciales d e los registros son los siguientes:

1 F0 F2 F4 F6 F8 F1° I0 3 1 5 10 2

a) Suponiendo q u e el BTB predice que la instrucción d e salto no salta, m ostrar d d iagram a de ejecudón d e este código.

b) M ostrar el estado d e las estaciones d e reserva, del buffer d e reordenam iento y del control de escrituras al final d d ciclo en el q u e la instrucción SUB.D F 2 ,F 6 ,F 4 realiza su term ina- d ó n .

3.11. M ostrar d d iagram a d e ejecución del código del ejerdcio 3.10 si se rediseña d procesador para perm itir em isión m últiple de d o s instrucciones p o r ciclo y adem ás, a i un in to ito d e ser m ás rea­listas, contam os con u n número lim itado de en tradas en el ROB, en este caso 12 entradas.

Page 206: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

AUTOEVALUACIÓN _________________________________________1 . ¿Cuáles son las diferencias entre la planificación dinámica de instrucciones centralizada y

distribuida?

2. ¿Qué es una estación de reserva?

3. ¿Qué diferencias hay entre un buffer de predicción de saltos y un BTB?

4 . ¿Por qué no tiene mucho sentido utilizar un buffer de predicción como estructura hardware para la predicción dinámica de saltos en el nanoMIPS?

5. ¿En qué consiste la técnica de Branch Folding?

6. ¿Cómo funciona un predictor de saltos multinivel (2,2)?

7. ¿Cómo se diseña un procesador VLIW? ¿Cuál es el principal objetivo que se persigue?

8. ¿En qué consiste la especulación basada en hardware?

9. ¿Qué es el buffer de reordenamiento?

1 0 . ¿Qué diferencias hay entre el Coarse MultiThreading (CMT) y el Symmetric MultiThreading (SMT)?

Page 207: Diseño y Evaluación de Arquitecturas de Computadoras

Técnicas de aumento de prestaciones para

memoria y E/S

C o n t e n i d o s4.1 . Técn icas de o p tim iza c ió n para la m e m o ria caché4.2 . Técn icas de o p tim iza c ió n para la m e m o ria p rin c ip a l4 .3 . Técn icas de o p tim iz a c ió n co n ju n ta para to d o s lo s n ive les

de la je ra rq u ía : v is ió n g lo b a l de la je ra rqu ía de m e m o ria4.4 . Técn icas de o p tim iza c ió n para lo s buses de E/S4.5 . Técn icas de o p tim iza c ió n para lo s d is p o s it iv o s de E/S4.6 . Técn icas de o p tim iza c ió n para la g e s tió n de E/S

7

Page 208: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Como se h a estudiado en el capítulo 2, la introducción d e u n a jerarqu ía de m em oria en prácticam ente todas las arquitecturas d e com putadoras actuales pretende conseguir u n a estructu ra d e m em oria con un coste por byte d e inform ación casi tan bajo com o el d e la m em oria m ás b a ra ta d e la jerarquía, pero con latencia com parable a la del nivel m ás rápido. P ara d io la m em oria se organiza en niveles, cuan to m ás cercanos al procesador, m ás pequeños, rápidos y caros.

Si el procesador que accede a esta m em oria incorpora optim izadones com o las estudiadas en el c a ­pítulo 3, es m uy posible que los accesos a m em oria se conviertan en el cuello d e b o td la d d sistem a, ya que esta m em oria no es capaz d e alim entar d e instrucciones y/o d e da to s a un procesador tan po ten te a un ritm o suficiente.

La la ten d a d e u n a m em oria suele e s ta r lim itada por la tecnología u tilizada para fabricarla. Por este motivo las m ejoras en la latencia d e u n a m o n o ria suelen im plicar m ejoras o cam bios en la tecnología. Sin em bargo, el ancho d e banda suele estar lim itado p o r el coste, p o r lo q u e sí que es posible m ejorarlo m ediante técnicas d e diseño optim izadas.

En este capítulo se presentan estas técnicas d e diseño, p a ra la m o n o ria caché y la m em oria principal, que perm iten sacar el máximo partido d e la je rarqu ía d e m em oria d e un sistem a, y q u e aplicadas a una m onoria básica com o la p reso itad a en el capítulo 2 de este libro, conseguirán d rendim iento deseado para la arquitectura.

D e la m ia ñ a form a, en este capítulo se estudian las técnicas que perm iten que el sistema de E/S esté al m ismo nivel de rendim iento que un procesador y u n a jerarqu ía de m em oria optim izados.

P ira obtener el ro id im iento deseado del sistema d e E/S hay q u e to ie r en cuenta, no sólo el funcio­nam iento d e los dispositivos de E/S, sino tam bién la form a en la que estos dispositivos se conectan a la com putadora y la form a en la q u e se gestionan las transferoicias d e inform ación. P or eso se dividen las técnicas d e optim ización del s istona d e E/S en tres grandes bloques: las que perm iten m ejorar el rendi­miento d e los buses incluidos en este sistema, las que perm iten m ejorar las prestaciones d e los dispositivos de E/S y p o r últim o, las que perm iten optim izar la gestión del sistem a d e E/S.

Técnicas de optimización para la memoria caché

Si se analiza la expresión del tiem po m edio d e acceso a m em oria propuesta en el capítu lo 2:

t = taciertoMC + T F • p F

A partir d e e sta expresión parece obvio q u e cualquier optim ización q u e pretenda m ejorar el rendi­miento d e la m em oria caché debe ir o rio itad a a reducir alguno de estos tres aspectos: la penalización por fallo, la tasa d e fallos o el tiem po d e acceso a la m o n o ria caché.

4.1.1. Reducción de la penalización por fallo

Como se estudió en el capítulo 2, prácticam ente to d as las jerarquías d e m em oria actuales incorporan m ás de un nivel d e m em oria caché p a ra reducir en todo lo posible la polarización por fallo.

D e esta form a, cuando el prim er nivel d e m em oria caché, q u e es el m ás cercano al procesador, tenga un fallo, la resolución de este fallo no obligará a salir del ch ip y buscar y traer un bloque com pleto desde la m o n o ria principal, sino que todavía existirá la posibilidad d e resolver el fallo desde otro nivel d e la m onoria caché, co n u n a penalización p o r fallo m ucho menor.

Esta técnica d e diseño basada en la utilización d e cachés multinivel hoy en d ía no se considera una optim ización, ya q u e se incorpora por defecto en casi todas las arquitecturas, al igual que ocurría con técnicas com o la d e la palabra crítica prim ro o rearranque rápido.

cu

Page 209: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

Sin em bargo existen o tras técnicas m ás específicas q u e pueden ayudar a reducir todavía m ás esta penalización por fallo.

4 .1 .1 .1 . F a l l o s p r i o r i t a r i o s

Esta técnica perm ite resolver los fallos sin que se hayan resuelto todas las escrituras pendientes antes, ya que éstas son muy costosas y aum entarían m ucho la penalización p o r fallo.

En el caso d e u n a caché con escritura directa, los problem as surgen cuando se utiliza un buffer de escritura, ya que la palabra q u e h a producido el fallo puede no estar actualizada en el siguiente nivel de m onoria pero sí en este buffer.

La solución más sencilla sería esperar a que se vaciara el buffer de escritura para resolver d fallo. Así se aseguraría que el siguiente nivd de la jerarquía d e m onoria está actualizado y resudve el fallo correctamente.

I^ro esto a u m o ita mucho la penalizadón p o r fallo, ya q u e habría que esperar u n volcado com pleto del buffer antes d e poder traer el bloque necesario. P ara d a r prioridad al fallo, primero se com prueba si la palabra q u e ha p ro d u d d o d fallo se encuentra en el buffer. Si no es así, se continúa resolviendo el fallo sin necesidad d e realizar el volcado del buffer.

Si la palabra que h a provocado d fallo se encuentra en el buffer, puede diseñarse la je rarqu ía d e d i­ferentes m aneras. P or ejemplo, puede actualizarse en el siguiente nivel sólo esta palabra an tes de resolver d fallo. Pero si hay localidad e sp ad a l en los códigos, puede que esto resuelva el problem a sólo tem poral­mente, porque a co n tinuadón se pediría o tra palabra del m iañ o b loque Por eso suele volcarse todo el buffer en el siguiente nivel an tes de resolver el fallo.

En el caso d e la caché con post-escritura el problem a surge cuando al producirse d fallo se debe re­em plazar un bloque sucio. E a o im plica llevar el bloque sucio al siguiente nivd antes d e traer a la caché d necesario p a ra resolver el fallo.

En este caso es el propio buffer d e escritura el que ayuda a d a r prioridad a los fallos, ya que el bloque sudo se escribe en este buffer (lo que es mucho m ás rápido q u e escribirlo en el siguiente n ivd), luego se trae el bloque que se necesita para resolver d fallo, y el procesador ya puede com enzar a trabajar. Es decir, es necesario utilizar u n buffer d e escritura para im plem entar esta técnica en el caso d e las cachés con post-escritura. C uando el buffer se llene, o cuando se necesite alguno d e sus bloques para resolver un fallo, o en tiem pos d e inactividad, se vuelca el contenido del buffer en el siguiente nivel p a ra q u e la jerarquía quede actualizada.

Obviamente, aunque la técnica se suela rd ac io n ar con los fallos de lectura (a veces incluso se denom i­na d a r prioridad a los fallos de lectura), en una caché d e post-escritura con asignación en escritura (que es lo m ás habitual), tam bién se proporciona la m ism a prioridad a los fallos de escritura, q u e se resuelven exactam ente igual que los d e lectura.

Ejem plo 4 .1

Ejemplo de fallos prioritarios para la reducción de la penalización por fallo.

U tilizam os de n u e vo el e je m p lo 2.6 de la je ra rqu ía de m e m o ria de l c a p ítu lo 2, en este caso , co n la caché de pos t-escritu ra . S in n in g u na o p tim iza c ió n te n íam o s el m is m o c o m p o rta m ie n to para las le c tu ras y las e sc ri­tu ras :

*M EM - ta c ie rto + T F ' p F

Con una penalizac ión p o r fa llo , s u p o n ie n d o q u e se pueden so lapa r lo s accesos a m e m o ria p rinc ipa l co n las tran s fe ren c ia s de in fo rm a c ió n p o r el bus:

p F = 16 • (la ten d a MP) + % su c io s • 16 • (latericiaMP) = 16 • (1 + % sucios) • fatenc¡aMP = 16 • 1.1 • 85 = 1496 ns

Page 210: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Por lo que:Ímem = tacierto + TF p F = 4 + 0 .12 • 1496 = 183.52 ns

Si su p o n e m o s q u e se u tiliza pa labra c rítica p r im e ro y sa b ie n do q u e só lo el 10% de lo s b lo q u e s son m o d i­fica d o s d u ra n te su p e rm anenc ia en la m e m o ria caché , te n e m o s :

p F = 1 • [latericiaMP + tbus) + % su c io s • 16 • [latericiaMP) = 1 • (85 + 0.5) + 0.1 • 16 • 85 = 221.5 ns

Por lo que:

= r « M , + TF p F = 4 + 0 .12 • 221.5 = 30.58 ns

A h o ra , para d a r p r io r id a d a lo s fa llo s , in c lu im o s en esta je ra rq u ía de m e m o ria un b u ffe r de e scritu ra en el q u e p o d e m o s v o lc a r lo s b lo q u e s su c io s c u a n d o tie n e n q u e ser ree m p la za d os para re so lve r un fa llo de cachó. V o lca r un b lo q u e s u c io c o m p le to a este b u ffe r su p o ne una pena lizac ión de 15 ns y adem ás este b u ffe rde e scritu ra p e rm ite el v o lc a d o de lo s b lo q u e s su c io s un 95% de las ocas iones . Es dec ir, el 5% de las veces que se in ten ta v o lc a r un b lo q u e suc io a este b u ffe r para d a r p rio r id a d a lo s fa llo s , el b u ffe r está lle n o u o cu p a d o con ta reas de g e s tió n , p o r lo q u e el v o lc a d o debe hace rse a m e m o ria p rinc ipa l.

La penalizac ión p o r fa llo es en es te caso:

p F = 1 • [la tenciaMP + + % su c io s • ((1 - TFBE) • twlcadoBE + TFBE • 16 • (la tencia mp)) = 1 • (85 + 0.5) ++ 0.1 • (0 .95 • 15 + 0 .05 • 16 • 85) = 93.72 ns

Por lo que:+ T F - p F = 4 + 0 .1 2 -9 3 .7 2 = 15.24 ns

Es dec ir, co n se g u im o s un sp e e d u p de 12.04 g rac ias a la u tiliza c ió n de las té c n ic a s de pa lab ra crítica p r im e ro y de fa llo s p r io r ita r io s (1 8 3 .5 2 /1 5 .2 4 = 12.04).

4 .1 .1 .2. O p t i m i z a c i o n e s d e l b u f f e r d e e s c r i t u r a

Cuando un buffer d e escritu ra se llena, sea en una caché d e escritura d irecta o en u n a caché d e p ost­escritura, se debe volcar su contenido al siguiente nivel d e la je rarqu ía d e m em oria.

En m uchos casos, este volcado del contenido del buffer se sum a a la penalización por fallo, p o r lo que cualquier optim ización a i la utilización del buffer puede hacer que esta poialización dism inuya.

U n g’em plo claro son las técnicas d e write-merging, que ayudan a optim izar la utilización del buffer de escritura en el caso d e las cachés d e escritura d irecta, q u e van escribiendo en él palabra a palabra.

U n buffer de escritu ra se organiza com o u n a m em oria caché. Por lo tan to está dividido en marcos, y cada uno de ellos lleva asociada una etiqueta que indica q u é bloque está ubicado en ese m arco en un m om ento concreto.

Si el buffer d e escritura no está optim izado, cada escritura del procesador en el buffer ocupará la p ri­m era palabra d e u n m arco del buffer. Pero el resto de palabras del m arco quedarán desocupadas.

Por lo tan to , se desaprovechará mucho espacio del buffer, q u e se llenará m ucho m ás rápido y obligará a hacer volcados con m ás frecuencia d e la rea lm oite necesaria.

Sin em bargo, la localidad espacial hace que en m uchos casos las escrituras se hagan a palabras co n ­secutivas d e un m iañ o bloque. La técnica del write-merging perm ite contro lar si esto es así. D e m anera que cuando se realizan escrituras consecutivas a palabras d e u n mismo bloque, en el buffer d e escritura se pueden escribir consecutivam aite en el mismo m arco (figura 4.1).

Esto perm ite aprovechar m ejor el espacio disponible y reducir el número d e volcados del buffer.

4 .1 .1 .3 . C a c h é d e v í c t i m a s

E sta caché es una m em oria pequeña y com pletam ente asociativa en la que se a lm acoian los últim os Moques reem plazados p o r si se puede aprovechar la localidad tem poral (figura 4.2).

Page 211: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

Dirección de Escritura

100 Mem[100]

108 Mem[108] m m. . .

124 Mem[124] t— 1 ■— mrección deEscritura V V V V

p 1 M em [100] pi | te m [1 0 8 l|^ ^ T | ^ m [ 1 1 6 ] 1 Mem[124]

P ww k U iW 0 1■■ 0

V, wr o f ■ ! 0

Sin W rite Merging

Con Write Merging

F ig u r a 4 .1

O p t im iz a c ió n d e l b u f f e r d e e s c r it u r a c o n w r i te - m e r g in g .

De esta m anera, cuando se produce un fallo, antes d e ir al siguiente nivel de la jerarquía de m em oria a buscar el bloque necesario, se busca en la caché de víctimas. Si d bloque se encuentra allí, se reem plazará mucho m ás rápido, por tratarse d e u n a m onoria pequeña y rápida. Y la localidad tem poral hace que sea probable que el bloque buscado se haya reemplazado recientemente y esté todavía en la caché d e víctimas.

A sociativa 2 vías

M em oriaPrincipal

Bloquesreemplazados

Caché d e v íc tim a s

F ig u r a 4 .2

C a c h é d e v íc t im a s .

Page 212: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Esta técnica reduce considerablem ente la penalización por fallo en casi todas las arquitecturas, au n ­que esta m ejora es crítica en los casos en los q u e se producen fallos por conflicto en cachés con em plaza­miento directo.

Ejem plo 4 .2

Ejemplo de utilización de una caché de víctimas para la reducción de la penalización p o r fallo.

S igam os o p tim iza n d o la je ra rqu ía de m e m o ria de l e je m p lo 4.1. S u p o n g a m o s q u e es tam os tra b a ja n d o con la cachó de pos t-e sc ritu ra , a la que , re c o rd e m o s , ya hab íam os in c o rp o ra d o las té cn ica s de pa lab ra crítica p r i­m e ro y de fa llo s p r io r ita r io s hasta co n s e g u ir un t ie m p o m e d io de acceso de m e m o ria de 15.24 ns.

V am os a in c o rp o ra r a esta je ra rq u ía una cachó de v íc tim a s , es decir, una m e m o ria cachó co m p le ta m e n te asocia tiva q u e a lm ace n e lo s ú lt im o s b lo q u e s ree m p la za d os en la m e m o ria cachó. Esta nueva estruc tu ra HW con s ig u e re so lve r lo s fa llo s de m e m o ria cachó en un 28% de las ocas iones (es decir, el 72% de las ve ce s , s igue s iendo nece sario a cu d ir a la m e m o ria p rin c ip a l para re so lve r el fa llo ), y cu a n do lo hace , ta rd a 19 ns en reso lve r el fa llo (tfy).

En este caso , la pena lizac ión p o r fa llo quedaría :

p F = (1 - T F ^ • tc v + T F c • [latencia MP + tbus) + % su c io s • ((1 - TFBE) • twlcadoBE + TFBE • 16 • (latericiaMP)) == 0 .28 • 19 + 0 .72 • (85 + 0.5) + 0.1 • (0.95 • 15 + 0 .05 • 16 • 85) = 75.10 ns

Por lo que:

= ( « m , + TF ■ p F = 4 + 0 .12 • 75.10 = 13.01 ns

Es decir, co n s e g u im o s un sp e e d u p de 14.11 g ra c ia s a la u tiliza c ió n de las té cn ica s de pa labra c rítica p r im e ­ro, de fa llo s p r io r ita r io s y de cachó de v íc tim a s (183.52/13.01 = 14.11).

4 .1 .1 .4 . C a c h é n o b l o q u e a n t e

Hay q u e tener en cuen ta que en el caso d e procesadores segm entados q u e perm itan term inación fuera de orden, una instrucción puede pararse debido a un fallo d e memoria, pero esto no im plica que se paren las siguientes.

R ira que se puedan seguir ejecutando instrucciones que no producen fallos d e m em oria, es necesario que la m em oria caché sea no bloqueante, es decir, que pueda atender a los accesos a m em oria q u e son aciertos m ientras se resuelve el fallo d e u n a instrucción.

Cuando se utiliza este tipo d e m em oria, la evaluación del rendim iento del procesador es m ás com ­plicada, ya q u e u n fallo d e m em oria no implica necesariam ente u n a parada. Se debe tener en cuen ta cuánto tiem po del que la m em oria caché ha tardado en resolver el fallo h a estado p arado d procesador realm ente y cuánto d e este tiem po h a quedado oculto porque se h a solapado con la ejecución d e o tras instrucciones.

Es ded r, esta técnica no reduce realm ente la penalización por fallo, q u e sigue siendo la misma, pero a que perm ite realizar trabajo útil du ran te p a rte de esta penalización, p o r lo q u e la penalización efectiva que se perdbe, puede llegar a ser mucho m enor.

4.1.2. Reducción de la tasa de fallos

En el capítulo 2 se estudió cóm o el aum ento del tam año d e la m em oria caché, del tam año d e bloque y d e la asociatividad puede reducir la tasa d e fallos d e la m em oria caché A unque tam bién se analizó que en todos los casos estas m ejoras im plicaban al mismo tiem po q u e la m em oria caché fuera m ás lenta o que la penalización por fallo fuera mayor.

Page 213: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

A continuación se presentan técnicas específicas p a ra reducir la tasa d e fallos m ás allá d e estas nor­m as básicas d e diseño a la h o ra d e escoger la m ejor organización p a ra la m em oria caché.

4 .1 .2 .1 . C a c h é p r e d ic t iv a

Este tipo de m em oria caché in ten ta m antener la velocidad d e una caché directa, pero introduciendo algún tipo d e asociatividad para reducir los fallos p o r conflicto típicos d e estas memorias. L as cachés predictivas suelen ser asociativas por conjuntos en las que siempre se busca prim ero en uno d e los m arcos del conjunto. Es decir, se predice en qué m arco e s ta rá el bloque q u e se busca.

Esta predicción se realiza con algún tipo d e operación con los bits q u e com ponen la dirección del blo­que buscado. Si esta predicción falla, se busca en el resto d e m arcos d d conjunto, ya que al ser la m em oria asociativa p o r conjuntos, el bloque podría estar ubicado en cualquiera de ellos.

D e esta m anera, si se acierta con la pred icdón inicial, la caché se ha com portado com o si fuera d i­recta en cuan to al tiem po d e acceso (sólo se h a realizado la co m p arad ó n d e una etiqueta) pero, si esta predicción falla, se h a com portado com o una m em oria asociativa p o r conjuntos a i cuan to a la tasa de fallos (figura 4.3).

T ra d u c c ió n D V ->D F

A cie rto contacfcrto como en de una

caché directa

FALLOPredicción

A io c i j lK j 4

M em oria CachéProcesador

E tique tabloque

Conjunto en el que se ubica

e l bloque buscado

El índice nos dice que el bloque

debería estar en el con junto 0 .

Además se predice que su marco

preferido es el 1, po r lo que se busca

p rim ero en ese marco.

Primer marco en el que se busca

gracias a la predicción

A cie rto contacerto como en de una caché asociativa por

conjuntos

FALLO -> Siguiente Nivel de la Jerarquía

Fig u r a 4 .3

C aché p re d ic t iv a .

4 .1 .2 .2 . C a c h é p s e u d o s o a c ia t iv a

Este tipo de m o n o n a d e nuevo in ten ta aprovechar las ventajas d e u n a caché directa en cuanto al tia n p o d e acceso y d e una caché con m ás asociatividad a i cu an to a la tasa d e fallos.

En el caso d e u n a caché pseudoasociativa, la m em oria es directa. Es decir, cada bloque d e inform a­ción puede ubicarse en u n único marco d e la m em oria caché Pero cuando se produce u n fallo, antes de buscar el bloque en d sigu iaite nivel d e m em oria, se busca el bloque a i otro marco d e la caché (en su segundo posible em plazam ioito).

Page 214: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Por ejem plo, se invierte el bit m ás significativo del cam po índice de la dirección y se busca en ese m ar­co. Es decir, en cuan to a la tasa de fallos es com o si la m em oria fuera asociativa por con jun tos de 2 vías, ya que siem pre existen d o s posibilidades p a ra ubicar un bloque den tro de la caché.

I^ro en cuan to al tiem po d e acceso, com o prim ero se com para una única etiqueta, en los aciertos es una caché com pletam ente d irecta (figura 4.4).

Procesador

DV

___ tH'XU____Memoria Caché

Etiquetabloque

buscado

Trad u cc ió n D V ->DF

3/7

índice = 3 (1* Ubicación) índice = 7 (2* Ubicación)

Acierto contxwno como en de una

caché directa

i a

Primer marco en el que se busca

(índice de 1*^ ubicación)

Segundo marco en el que se busca

(índice de 2* ubicación)

Acierto con TF deuna caché

asociativa por conjuntos de 2 vías

T iFALLO -» Siguiente Nivel

de la Jerarquía

F ig u r a 4 .4

C aché p s e u d o a s o c ia tiv a .

Ejem plo 4 .3

Ejemplo de caché predictiva.

C om encem os ahora a in tro d u c ir en la je ra rq u ía té cn ica s q u e no s p e rm ita n re d u c ir la tasa de fa llo s de la m em oria caché.

Hasta ahora n o no s hab ía m o s p re o cu p a d o p o r la o rgan izac ión de la caché q u e se inc lu ía en la je ra rq u ía de m em oria . Se tra ta de una m e m o ria co n e m p la za m ie n to d ire c to , ya sabem os q u e co n t ie m p o de acceso de 4 ns y tasa de fa llo s de un 12% .

Esta m e m o ria pu e de c o n v e rtirs e en una caché p re d ic tiv a , d iseñándo la c o m o una m e m o ria asocia tiva p o r c o n ju n to s de 4 vías. D e esta fo rm a , c u a n d o se busca un b lo q u e en la caché , p r im e ro se busca en un m a rc o co n c re to de l c o n ju n to q u e le co rre sp o n de . Esta p re d ic c ió n se realiza co n lo s d o s b its ú lt im o s de la e tique ta ( ju s to an tes de l índ ice).

La p re d icc ió n ac ie rta en un 60% de lo s casos, p o r lo q u e en to d o s estos casos se realiza una ún ica c o m ­pa rac ión de e tiq u e ta q u e p e rm ite m a n te n e r el t ie m p o de acce so de 4 ns. En lo s casos res ta n te s , es necesario rea lizar tre s co m p a ra c io n e s de e tiq u e ta m ás, p o r lo q u e fin a lm e n te el t ie m p o de acce so es de 5 ns. Pero g rac ias a es te a u m e n to de a so c ia tiv id a d , q u e p e rm ite pasa r de una cachó d ire c ta a una asoc ia tiva p o r c o n ju n to s de 4 vías , la tasa de fa llo s se re d u ce a un 9% .

Page 215: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

Ftor lo ta n to te n e m o s exac tam en te la m ism a pena lizac ión p o r fa llo q u e en el ú lt im o e je m p lo :

p F = (1 - T F c ) • tc v + T F cj • [latericiaMP + tbus) + % su c io s • ((1 - TFBE) • tw/CBdo BE + TFBE • 16 • (la tenciaMP)) == 0 .28 • 19 + 0 .72 • (85 + 0.5) + 0.1 • (0.95 • 15 + 0 .05 • 16 • 85) = 75.10 ns

Pero en es te caso se m o d ific a n lo s t ie m p o de a c ie rto y la tasa de fa llo s , p o r lo que:

tMEM = tacertó + TF p F = (0 .6 • 4 + 0 .4 • 5) + 0 .09 • 75 .10 = 1 1 .1 6 ns

Es dec ir, co n se gu im o s un sp e e d u p de 16.44 g rac ias a la u tilizac ión de las té cn ica s de pa labra crítica p r im e ­ro, de fa llo s p rio r ita r io s , cachó de v íc tim a s y cachó p re d ic tiva (183 .52 /11.16=16.44).

Ejem plo 4 .4

Ejemplo de caché pseudoasociativa.

En este e je m p lo v a m o s a u tiliza r una cachó p se udoasoc ia tiva en lu g a r de una p re d ic tiva .De esta m anera , c u a n d o se busca un b lo q u e en la cachó, p r im e ro se busca en un m a rc o c o n c re to p o rq u e

se co m p o rta c o m o una cachó d irec ta . S i la cachó ac ie rta , aqu í te rm in a la búsqueda y es to o c u rre un 8 8 % de las veces. S i fa lla , se in v ie rte n to d o s lo s b its de l ín d ice y se busca en la loca lizac ión q u e ind ica este índ ice in ­v e rtid o . Es dec ir, h a y una segunda c o m p a ra c ió n de e tiq u e ta p o rq u e es p o s ib le una segunda u b ica c ió n para el b lo q u e d e n tro de la caché.

El t ie m p o de acceso s ig u e s iendo de 4 ns c u a n d o se realiza una ún ica c o m p a ra c ió n (c o m o cu a n do la cachó es d irec ta ). En lo s casos res tan tes, es necesario rea liza r una c o m p a ra c ió n m ás, p o r lo q u e f in a lm e n te el t ie m p o de acceso es de 4 .5 ns. Pero g ra c ia s a este a u m e n to de a so c ia tiv id a d , q u e p e rm ite pasar de una cachó d irec ta a una asocia tiva p o r c o n ju n to s de 2 v ías (ha y d o s u b ica c io n e s p o s ib le s para cada b lo q u e ), la tasa de fa llo s se reduce a un 10% .

Por lo ta n to te n e m o s exac tam en te la m ism a penalizac ión p o r fa llo q u e en el ú lt im o e je m p lo :

p F = (1 - TFfy) • tc v + TFf y • [la tenciaMP + tbus) + % su c io s • ((1 - TFBE) • twlcad0 BE + TFBE • 16 • (la tenciaMP)) == 0 .28 • 19 + 0 .72 • (85 + 0.5) + 0.1 • (0.95 • 15 + 0 .05 • 16 • 85) = 75.10 ns

Pero de n u e v o se m o d ific a n lo s t ie m p o s de a c ie rto y la tasa de fa llo s , p o r lo que :

tMEM = t ^ + TF • p F = (0.88 • 4 + 0 .12 • 4.5) + 0 .10 • 75.10 = 11.57 ns

Es decir, co n s e g u im o s un sp e e d u p de 15.86 g ra c ia s a la u tiliza c ió n de las té cn ica s de pa labra c rítica p r im e ­ro , de fa llo s p rio r ita r io s , cachó de v íc tim as y cachó p se udoasoc ia tiva (183 .52 /11.57 = 15.86).

C om parando este e je m p lo co n el rea lizado para la caché p re d ic tiv a , se observa q u e la tasa de fa llo s se m e jo ra en m a y o r m ed id a co n la cachó p re d ic tiva q u e co n la pseudoasoc ia tiva . E sto se d e b e a q u e la caché p re d ic tiva a u m en ta m ás la a so c ia tiv id a d de la cachó y e s to re d u ce en m a y o r m ed id a lo s fa llo s p o r c o n flic to . Por o tro lado , en el caso de la cachó p re d ic tiv a , el m a y o r n ú m e ro de co m p a ra c io n es hace q u e el t ie m p o de acceso a la cachó a u m e n te m ás q u e para la cachó pseudoasoc ia tiva .

A s í q u e se o b te n d rá m e jo r re n d im ie n to co n una a lte rna tiva u o tra d e p e n d ie n d o de c ó m o se com p e n se n las va riac ion e s de estos do s fa c to re s : t ie m p o de acceso y tasa de fa llos .

4 .1 .2 .3 . T é c n i c a s d e p r e b ú s q u e d a

Esta técnica consiste en traer a la m o n o ria caché, o a un buffer cercano, bloques d e m o n o ria q u e to ­davía no han sido referenciados por d procesador. Se tra ta d e traer a la m o n o ria caché, o a u n a estructu ra cercana, los bloques q u e se predice q u e el procesador va a necesitar antes d e q u e provoquen un fallo.

Cuando la prebúsqueda es por hardware, suden im plem entarse técnicas d e prebúsqueda por fallo, de m anera q u e cada vez q u e se produce u n fallo, se busca el bloque q u e lo h a provocado y el siguiente (siguiendo el principio d e localidad esp ad a l, es probable que el procesador lo p ida a continuación).

Page 216: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

í^ ro en algunos casos, para evitar las modificaciones q u e deben hacerse en el hardw are p a ra imple- m entar la prebúsqueda, ésta se hace por software, de m anera que es el com pilador o el propio d esab o lla ­d o r el encargado d e predecir los bloques q u e van a referenciarse.

Sea im plem entada p o r hardw are o p o r software, esta técnica se basa en la utilización del ancho de banda d e m em oria que de o tra m anera se desaprovecharía, pero si no se im plem enta correctam ente puede interferir con la resolución d e los fallos y reducir d rendim iento de la je rarqu ía d e m em oria, por lo tan to hay q u e ser extrem adam ente cuidadosos en su im plem entación.

En algunos casos se utilizan estructuras hardware denom inadas buffets de prebúsqueda en las que se alm acenan los bloques prebuscados p a ra que no reemplacen en la m em oria caché a bloques q u e el procesador sí h a solicitado realmente.

4.1.3. Reducción del tiempo de accesoCon lo estudiado hasta d m om ento acerca d e la organización d e u n a m em oria caché básica, sabemos

que las cachés pequeñas y sencillas (con poca asociatividad y p o r lo tanto, con pocas com paraciones de etiquetas en cad a acceso) son las m ás rápidas.

Pero d e nuevo existen técnicas espeáficas p a ra m ejorar este aspecto concreto del rendim iento d e una m onoria caché.

4 .1 .3 .1 . E v i t a r l \ t r a d u c c i ó n d e d i r e c c i o n e s v i r t u a l e s a d i r e c c i o n e s f í s i c a s

Cuando el procesador realiza u n acceso a m em oria, es necesario tra d u d r la d irecdón virtual q u e ge­nera a una dirección física con la que acceder a la m em oria caché y a la m em oria p rindpa l (en la figura 4.5 se m uestra un ejemplo en el q u e la traducción se realiza con un TLB y la m em oria virtual es paginada).

D V N.° P ág ina V irtu a l PO

TLB

' iN .° M aree

F ig u r a 4 .5

M e m o r ia c a ch é a c c e d id a c o n d ire c c io n e s fís ica s .

P ira ahorrarse es ta trad u ed ó n , cuyo tiem po se sum a al tiempo d e acceso a la m em oria caché, pueden utilizarse m em orias caché direccionadas co n las direcciones virtuales, sin el paso previo de traducción a d irecdón física. L a traducción sólo se hace cuando hay u n fallo q u e hace necesario para su resolución un acceso a un nivel d e la m em oria q u e es accedido con direcciones físicas (figura 4.6).

Page 217: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

M e m o r ia c a ch é a c c e d id a c o n d ire c c io n e s v ir tu a le s .

E sta técnica presenta d o s inconvenientes fundam entales:

• Cuando se realiza un cam bio d e contexto (se pasa a ejecutar un nuevo proceso), las direcciones virtuales se refieren a o tras direcciones físicas, p o r lo que hay q u e b o rra r d contenido de la caché y com enzar desde cero. E sto no perm ite aprovechar óptim am ente el p rindp io d e localidad en al­gunos casos.

• Además, es posible q u e haya m ás d e una d irecdón virtual q u e se refiera a la m ism a dirección física (aliaang o colisión). E sto puede llevar a tener d o s copias d e la m ism a inform ación en la caché y a problem as d e coherencia.

E stos p rob lem as tienen d iversas soluciones, ta n to hardw are com o softw are. D esde el pun to de vista q u e m ás nos in teresa en este libro, el hardw are, las a lternativas m ás ex tend idas p a ra reducir los tiem pos q u e se em plean en la trad u cc ió n d e d irecciones son soluciones in term ed ias en tre el acceso co n d irecciones físicas y e l acceso co n direcciones virtuales, tam b ién llam adas cachés d e dirección h íbrida:

• Memoria caché accedida con direcdones físicas pero realizando la traducdón de dirección en parale­lo. Como se puede observar en la figura 4.7, ya que las operaciones m ás frecuentes son las lecturas de memoria, m ientras se hace la traducción d e dirección virtual a física, se puede extraer el índice directam ente d e la dirección virtual. C on este índice, puede accederse a m em oria caché y leer todas las e tiquetas y bloques d e los m arcos en los q u e podría ubicarse el bloque q u e se es tá buscando. C uando ya se h a traducido la d irecdón virtual a física, ya se tiene la e tiqueta del b loque buscado y se puede seleccionar ese bloque d e en tre los que se hab ían leído o detec tar que se h a producido un fallo. P ara que se pueda utilizar es ta técnica (figura 4.8), es necesario q u e pueda extraerse d índice directam ente de la dirección virtual (tiene q u e estar dentro del Page Offset (PO), q u e es la p a rte de la dirección virtual q u e no se m odifica al hacer la traducción a dirección física) y que la operación en m em oria sea una lectura (obviam ente no se puede escribir en m o n o ria y m odificar un contenido sin saber antes si se tra ta del bloque adecuado).

Page 218: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

N? Página V ir tu a l M P PO

A

N9 M a rc o de M P | ETIQ ET| DATOS

MP -FALLO 1 ACIERTO

F ig u r a 4 .7

M e m o r ia c a ch é a c c e d id a c o n d ire c c io n e s fís ic a s p e ro re a liz a n d o la t ra d u c c ió nde d ire c c ió n en p a ra le lo .

N.° de Página V irtua l Page Off¡set

E tiqueta 1 f .. 1 B lock 1 ln d lce 1 O ffse t

i i

F ig u r a 4 .8

C o rre s p o n d e n c ia e n tre d ire c c ió n v ir tu a l y f ís ic a n e c e s a r ia p a ra p o d e r a p lic a r la té c n ic a d e tra d u c c ió nen p a ra le lo .

M em oria caché accedida con d irecciones virtuales pero con etiquetas fís icas (físicam ente accedi­d a , pero virtualm ente indexada). Si no cabe la posibilidad d e u tilizar la técnica an te rio r porque d índice no se puede ex traer d e la dirección virtual, se utiliza u n índice q u e provenga d e la dirección v irtual. Sin em bargo, p a ra ev ita r los p roblem as asociados a las cachés accedidas con direcciones virtuales, p a ra ex traer la e tiq u e ta se sigue u tilizando la d irección física. P or lo tan to esta a lternativa es m ix ta y em plea las d o s direcciones p a ra com pletar un acceso a m em oria caché (figura 4.9).

Page 219: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

DV N2 Página Virtual ____/ PO

Caché

NS M a rco de MP PO ETIQ JETA DATOS

¿n aMP W FALLO ACIERTO DATOS

F ig u r a 4 .9

M e m o r ia c a ch é fís ic a m e n te a c c e d id a p e ro v ir tu a lm e n te ¡n d e xa d a .

Ejem plo 4 .5

Ejemplo del efecto de un TLB no ideal en el tiem po medio de acceso a memoria con una caché accedida con direcciones físicas.

Hasta ahora n o h e m o s te n id o en cuenta en n in g ú n e je m p lo el t ie m p o q u e se in v ie rte en tra d u c ir la d ire c ­c ión v ir tu a l generada p o r el p ro ce sa d o r a la d irecc ión fís ica necesaria para acce d er a la m e m o ria cachó. Es c o m o si h u b ié ra m o s su p u es to un TLB idea l q u e s ie m pre es capaz de rea liza r esta tra d u c c ió n en un t ie m p o desprec iab le .

En el e je m p lo de un n ive l de m e m o ria caché q u e h e m o s ve n id o u tiliz a n d o en el c a p ítu lo 2 y en és te es c o m o si h u b ié ra m o s su p u es to lo s igu ien te :

U = tr + lacerto + TF • P F

= 0 .con tw-w:En este e je m p lo v a m o s a ser a lg o m ás rea lis tas y v a m o s a su p o n e r q u e el T LB n o es id e a l, es dec ir, q u e en

a lgunas ocas iones n o pu e de rea lizar la tra d u c c ió n y p o r lo ta n to es necesario re c u rr ir a la m e m o ria p rinc ipa l para ob tene rla .

S u p o n g a m o s q u e el TLB tie n e una tasa de fa llo s de l 4 % , y q u e c u a n d o fa lla , el 90% de las veces basta con un acceso a m e m o ria p rinc ipa l m ie n tra s q u e el 10% res ta n te son necesarios d o s accesos para o b te n e r la tra d u cc ió n . Y el acceso al TLB se rea liza en 1 ns.

Ten iendo en cuen ta estos d a tos , el t ie m p o m e d io de acceso a m e m o ria sería:

Con:Í d v -* d f — ^acceso t l b + TF T L B • p F t l b — ^ + 0 .4 • p F j i b — 1 + 0 .04 • 93.5 — 4 .74 ns

p F nB = 0.9 • latericia MP + 0.1 • 2 • latericia MP = 0 .9 • 85 + 0.1 • 2 • 85 = 93.5 ns

Por lo q u e en rea lida d el t ie m p o m e d io de acceso a m e m o ria en el e je m p lo co n pa lab ra crítica p rim e ro , fa llo s p rio r ita r io s , cachó de v íc tim a s y c a ch é p seudoasoc ia tiva sería:

Page 220: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

tMEM = tDV DF + + TF • p F = 4 .74 + (0.85 • 4 + 0.15 • 4.5) + 0 .10 • 75.10 = 16.32 ns

Por eso es ta n im p o rta n te a p lica r té c n ic a s de o p tim iza c ió n q u e p e rm ita n re d u c ir el im p a c to de la tra d u c c ió n de d ire c c ió n en el t ie m p o de acceso a m em o ria .

Ejem plo 4 .6

Ejemplo del efecto de un TLB no ideal en el tiem po medio de acceso a memoria con una caché accedida con direcciones virtuales.

A u n q u e la m e m o ria cachó u t ilic e d irecc ion e s v ir tu a le s para su acceso , s i se es rea lis ta co n el re n d im ie n to de l TLB, éste s ig u e te n ie n d o e fe c to en el t ie m p o m e d io de acceso a m em o ria .

S u p o n g a m o s e xa c tam e n te el m is m o TLB q u e en el e je m p lo a n te r io r ( t ie m p o de acce so de 1 ns, tasa de fa llos de l 4 % , y en lo s fa llo s , el 90% de las veces basta co n un acceso a m e m o ria p rin c ip a l m ie n tra s q u e el 10% restan te son necesarios do s accesos para o b te n e r la tra d u cc ió n ).

Si la cachó es acced ida co n d ire c c io n e s v ir tu a le s y ac ie rta , n o se llega a h a ce r la tra d u c c ió n de d ire c c ió n v ir­tu a l a fís ica . Pero si la cachó fa lla , h a y q u e h a ce r la tra d u c c ió n a d ire cc ió n fís ica an tes de sa lir a la m em oria p r in ­c ipa l a re so lve r el fa llo , p o r lo ta n to el re n d im ie n to de l TLB a fec ta , en este caso , a la pena lizac ión p o r fa llo .

El t ie m p o m e d io de acceso a m e m o ria sería en el e je m p lo con pa labra c rítica p rim e ro , fa llo s p rio r ita r io s , cachó de v íc t im a s y cachó pseudoasoc ia tiva :

*MEM = facierto + T F ’ p F

Y hay q u e re ca lcu la r la pena lizac ión p o r fa llo te n ie n d o en cuenta el t ie m p o q u e se ta rda en tra d u c ir de d irecc ión v ir tu a l a fís ica :

PF = tDV_>DF + ( 1 " TFcv) ' tcv + T F cv ' [latericiaMP + + % su c io s • ((1 - TFBE) • twlcadoBE+ TFBE • 1 6 • [la­tericia v p )) = 0 .28 • 19 + 0.72 • (85 + 0.5) + 0.1 • (0 .95 • 15 + 0 .05 • 16 • 85) = 79.84 ns

Con:

*DV->DF = txcesoTLB + TFnB ' p F nB = 4 .74 nS

Por lo que.

tMEM = tuerto + TF • p F = (0.85 • 4 + 0 .15 • 4.5) + 0 .10 • 79.84 = 12.06 ns

En este caso , te n e r en cuen ta q u e el TLB n o es idea l em peora lig e ra m e n te el t ie m p o de acceso a m em o ria , pe ro n o ta n to c o m o co n una cachó acced ida co n d ire c c io n e s fís icas, ya q u e el t ie m p o de tra d u c c ió n de d ire c ­c ión só lo se su fre cu a n do ha y un fa llo . S in e m b a rg o , ya se han c o m e n ta d o lo s p rin c ip a le s in c o n v e n ie n te s de acceder con d ire c c io n e s v ir tu a le s a la m e m o ria cachó.

4.1 .3 .2 . C a c h é s s e g m e n t a d a s

La técnica d e segmentación no sólo se utiliza para m ejorar el rendim iento d e los procesadores, sino tam bién de o tros com ponentes d e la com putadora com o puede ser la m em oria caché.

Como ocurría con el procesador, en realidad esta técnica no reduce el tiem po d e acceso d e u n único acceso a m em oria, pero al perm itir solapar la ejecución d e diferentes accesos, reduce d tiem po m edio observado p o r el procesador.

Cada acceso pasa a realizarse en m ás d e u n ciclo de reloj, pero estos ciclos pueden ser m ás cortos. Y en cada uno d e d io s se ejecuta u n a d e las etapas en las que puede dividirse el acceso a la m o n o ria caché: trad u cd ó n de d irecdón virtual a física, decodificación y acceso a fila, decodificadón y acceso a colum na, com paración d e etiqueta, etc.

Page 221: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

4.1 .3 .3 . C A C H ÉS DE TRAZAS

E stá técnica d e optim ización es exclusiva d e cachés de instrucciones, y no sólo reduce el tiem po de acceso sino q u e tam bién reduce la tasa d e fallos.

En este tipo d e caché no se alm acenan instrucciones individuales, sino q u e se alm acenan trazas com ­pletas d e instrucciones. U n a traza no es m ás que una secuencia d e instrucciones en d orden en el que se predice q u e van a ser buscadas (esto incluye los saltos, las llam adas a procedim ientos ...).

A m enudo se alm acenan diferentes secuencias para un mismo fragm ento de código, m ientras se van resolviendo las predicciones d e los saltos, po r lo q u e en estos casos se desaprovecha espado alm acenando instrucciones replicadas.

Pero cada vez que se accede a la caché d e trazas se recupera u n conjunto d e instrucciones en lugar de una sola (por eso se reduce d tiem po d e acceso). Además, com o las instrucciones recuperadas e stán en d orden en el q u e el procesador las va a so lid tar, se reduce la tasa d e fallos. Y p o r últim o, se optim iza la utilización del espacio d e la caché ya que no se alm acenan en ella instruedones que se predice q u e no se van a ejecutar.

Ejem plo 4 .7

Diseño de una jerarquía de mem oria con dos niveles de caché (el prim er nivel de escritura directa y el segundo nivel de post-escritura) completamente optimizada.

S u p o ngam os ahora q u e te n e m o s el m is m o e je m p lo de je ra rq u ía de m e m o ria q u e en el c a p ítu lo 2, el e je m ­p lo 2.7.

La cachó de n ive l 1 t ie n e un ta m a ñ o de b lo q u e de 8 pa labras, un t ie m p o de acce so de 1 ns y una tasa de fa llo s de l 5% . La caché de n ive l 2 t ie n e un ta m a ñ o de b lo q u e de 16 pa lab ras , un t ie m p o de acceso de 9 ns y una tasa de fa llo s de l 9% .

A d e m á s la cachó de n ive l 1 u tiliza escritu ra d ire c ta y la cachó de n ive l 2 u tiliza pos t-e sc ritu ra , co n un 26% de b lo q u e s q u e son m o d if ic a d o s m ie n tra s están u b ica d o s en ella.

La trans fe renc ia de una pa labra e n tre m e m o ria p rinc ipa l y la cachó de n ive l 2 su p o ne 0.5 ns y la tra n s fe ­rencia de una pa lab ra en tre la m e m o ria cachó de n ive l 2 y la de n ive l 1 su p o ne 0.1 ns. La la tenc ia de acce so a m em oria p rin c ip a l es de 85 ns.

Con to d o s es to s d a tos sab íam os que:

tMEM = %0/e c tu ra • tMEM (lec tu ra ) + % escr itu ra • tMEM (escritu ra ) = 0 .7 • 66.69 + 0.3 • 75.69 = 69.39 ns

Y este t ie m p o es in to le ra b le para un p ro ce sa d o r ac tua l. Pero ahora q u e sabem os c ó m o se ap lica n las d i­fe re n te s té cn ica s de o p tim iz a c ió n de m e m o ria cachó , p o d e m o s ve r hasta q u é p u n to n o s sería p o s ib le re d u c ir este t ie m p o m e d io de acceso.

V am os a in c o rp o ra r las s igu ien tes m o d if ic a c io n e s y o p tim iza c io n e s a esta je ra rqu ía de m e m o ria in ic ia l:

• A ñ a d im o s un b u ffe r de escritu ra para el n ive l 1 de caché. Este b u ffe r p e rm ite rea liza r las escritu ras d ire c ­ta s en un t ie m p o de 1.5 ns en un 90% de las ocasiones.

• A d e m á s el n ive l 1 de caché se tra n s fo rm a en una m e m o ria q u e fu n c io n a s in as ignac ión en escritu ra .• U tiliza m o s la té cn ica de pa labra crítica p r im e ro en la caché de n ive l 1.• En el n ive l 2 de caché , d a m o s p r io r id a d a lo s fa llo s co n un b u ffe r de e scritu ra q u e p e rm ite v o lc a r los

b lo q u e s su c io s el 92% de las veces en un t ie m p o de 18 ns.• Tam bién se añade a este n ive l una cachó de v íc tim a s q u e el 31% de las ocas iones p e rm ite re so lve r los

fa llo s en 16 ns.• Se re d u ce la tasa de fa llo s de la caché de n ive l 1 de l 5% al 4 % c o n v irtié n d o la en una caché pseudoaso -

c ia tiva s in q u e esto te n ga re p e rcu s io n e s s ig n ifica tiva s en su t ie m p o de acceso.• Se re d u ce la tasa de fa llo s de l n ive l 2 de l 9% al 7% u tiliza n d o para e llo té cn ica s de p re búsqueda h a rd ­

w are.

Page 222: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Con to d o esto, te n e m o s :

Ímem [lectura) = + TFLÍ • pF n

tMEM [escritura) = (1 - T F n ) + (1 - TFBEJ • tBE1 + TFBE1 • txigrroL2) + TFL1 • tL2

En a m b o s casos la pena lizac ión p o r fa llo de l n ive l 1 es la m ism a , co n la técn ica de pa lab ra crítica p rim e ro :

P F L\ = ^¿2 + tbusL\L2

El t ie m p o m e d io de acce so a la cachó de n ive l 2 (ya q u e c u a n d o la cachó de n ive l 1 fa lla y se busca el b lo ­q u e en la cachó de n ive l 2 , ésta pu e de ace rta r o fa lla r) , se ca lcu la de la m ism a m anera :

t¡.2 = tgcfgrtoL2 + FF 12 ' P FL2

Y c o m o la cachó de n ive l 2 es de pos t-e sc ritu ra :

p F L2 = (1 “ TFcv) • tcv + TFcv ' 16 • HatenciaMP) + 0.26 • ((1 - TFBE2) • twlcad0 BE2 + TFBE2 • 16 • patenciaMP))RDr lo ta n to :

pF L2 = (1 -0 .6 9 ) • 16 + 0 .69 • 16 • 8 5 + 0 .26 • ((1 - 0.08) • 18 + 0 .08 • 16 • 85 ) = 9 75 .95 ns

tL2 = 9 + 0 .07 • 975.95 = 77 .32 ns

p F n = 77 .32 + 0.1 = 77 .42 ns

Y lo s t ie m p o s m e d io s para le c tu ra y e scritu ra quedan :

tMEM [lectura) = 1 + 0 .04 • 77.42 = 4.1 ns

tMEM[escritura) = (1 - 0.04) (1 + (1 - 0 .1 ) • 1.5 + 0.1 • 9) + 0.04 • 77.32 = 6.21 ns

En m e d ia , si de n u e v o te n e m o s q u e un 7 0 % de lo s accesos son le c tu ra s y un 30% son e scritu ras :

tMEM = % /ec tu ra • tMEM[Jectura) + % escritu ra • tMEM[escritura) = 0 .7 • 4.1 + 0 .3 -6 .2 1 = 4 .73 ns

Este t ie m p o m e d io de acceso a m e m o ria sí q u e es razonab le para una a rq u ite c tu ra ac tua l p e ro es q u e con to d a s las té c n ic a s de o p tim iza c ió n ap licadas se ha co n s e g u id o un sp e e d u p de casi 15 re s p e c to de l d is e ñ o sin o p tim iza r (69 .39 /4 .73 = 14.67).

A d e m á s ha y q u e te n e r en cuen ta q u e es te t ie m p o m e d io se ha co n se gu id o , de m o m e n to , o p tim iz a n d o só lo la m e m o ria cachó, pe ro q u e cu a lq u ie r op tim iza c ió n q u e p o d a m o s rea liza r so b re la m e m o ria p rin c ip a l (p ró x im a sección) in flu irá d ire c ta m e n te en la pena lizac ión p o r fa llo de la cachó de n ive l 2 y p e rm itirá re d u c ir to d av ía m ás este t ie m p o m e d io de acceso.

Técnicas de optimización para la memoria principalLa m em oria principal es el nivel de la je rarqu ía d e m em oria q u e se sitúa a continuación d e la m em o­

ria caché. Por lo tan to , se accederá a esta m em oria cuando ocurran fallos d e caché.Esto im plica que la la ten d a d e la m em oria principal afecta a la penalización por fallo de la m em oria

caché. Sin em bargo, la m ayor parte d e las técnicas d e optim ización d e m em oria principal van d irig idas a aum entar su ancho de banda (que tam bién influye en la penalización por fallo) ya que resulta bastante m ás sencillo q u e reducir la la tenda , q u e depende casi exclusivamente d e la tecnología.

Con la generalización d e las cachés m ultinivd y estas técnicas q u e aum entan el ancho de b an d a de m em oria p rindpa l, se han com enzado a u tilizar bloques d e un tam año bastan te m ayor en la caché de nivel 2, lo que h a reducido su tasa d e fallos considerablem ente.

t u

Page 223: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

En el capítulo 2 ya se estudiaron las m ejoras q u e las diferentes tecnologías d e m em oria principal in­trodujeron con su aparición. E sta sección se cen tra exclusivamente en las m ejoras que pueden conseguirse m ediante el diseño, to d as d ía s rdacionadas con el ancho d e banda.

Hay q u e tener a i cuen ta que la m ayor parte d e estas técnicas no sólo afectan al diseño d e la m o n o ria principal sino tam bién al diseño de su contro lador, encargado del mapeo de la dirección física y d e la planificación de los accesos.

4.2.1. Incremento del ancho de banda

4 .2 .1 .1 . M e m o r i a p r i n c i p a l c o n p a l a b r a e n s a n c h a d a

Tradicionalm ente la je rarqu ía d e m em oria com pleta trabaja con un ancho d e una palabra, ya que la mayor parte d e los accesos a m em oria del procesador son de esta longitud.

Ptro aum oitando el ancho d e palabra d e la m o n o ria p rindpa l, por ejemplo a 2 o 4 palabras, se aum entará el ancho d e banda ya q u e en cada acceso se pod rá recuperar el doble o el cuádruple de in­formación. E n la m ayor parte d e los casos, la caché d e nivel 1 perm anece con u n ancho d e una p alab ra y es d resto d e la je rarqu ía la que se o isancha, tan to las m em orias com o los buses q u e las interconectan (ejemplo con cuatro palabras d e ancho en la figura 4.10). D e esta m anera basta con utilizar un multi- plexor p ara sd ecd o n a r las palabras q u e pasan d e la zona ensanchada d e la je rarqu ía a la zona con ancho de u n a palabra.

M e m o riaP rin d p a l

F ig u r a 4 .1 0

M e m o r ia p r in c ip a l e n s a n c h a d a a 4 p a la b ra s .

El ancho de banda q u e se consigue si se ensancha la je rarqu ía d e m em oria a N palabras es N veces el que se tiene cuando el ancho es d e u n a palabra. El problem a de esta técnica es q u e encarece o io rm o n e n te los diseños debido a su g ran consum o d e á rea y d e p o ten d a . Además, al ensanchar las memorias, éstas suden o n p e o ra r su latencia. Así que, aunque esta técnica se su d e utilizar com o referoicia del rendim ien­to q u e sería deseable obtener, casi nunca se utiliza en la práctica.

4 .2 .1 .2 . M e m o r i a p r i n c i p a l e n t r e l a z a d a

D i este caso la m em oria se organiza o í bancos lógicos, norm alm ente de una palabra d e ancho cada uno (ejemplo con cuatro bancos en la figura 4.11).

Si se d irecd o n an varios bancos al mismo tiem po, con u n a única dirección, cada uno d e d io s pod rá recuperar u n a palabra (pero sólo se observa la la to ic ia una vez porque trabajan en paralelo, el acceso se realiza sim ultáneam ente en todos los bancos). A todos los efectos es com o tener u n a m em oria co n un an ­cho m ayor de u n a palabra, la principal diferencia es q u e la transferenda d e las palabras que se recuperan o í p a ra ld o se m ultiplexa en el tiempo p a ra com partir los recursos que siguen teniendo ancho d e palabra uno o itre todos los bancos. P or e jonp lo , el bus d e m em oria sigue siendo d e u n a palabra d e ancho.

El entrelazado d e la inform ación, es ded r, d reparto d e los da to s en tre los diferentes bancos lógicos, puede realizarse a d o s niveles:

Page 224: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

F ig u r a 4 .1 1

M e m o r ia p r in c ip a l e n tre la z a d a c o n 4 b a n co s .

• A bajo nivel (nivel de palabra). Direcciones consecutivas d e m em oria se alm acenan en bancos co n ­secutivos.

• A alto nivel. Direcciones consecutivas d e m em oria se alm acenan en el mismo banco d e m em oria.

C a á todas las m em orias utilizan el entrelazado a nivel d e palabra, porque consigue optim izar los accesos secuenciales a m em oria, que son los m ás frecuentes. D e esta m anera, á N es el número d e bancos que com ponen la m em oria, co n este tipo d e entrelazado cada p alab ra se alm acena en el banco d ad o por su dirección m ódulo N (figura 4.12).

F ig u r a 4 .1 2

E je m p lo d e e n tre la z a d o a b a jo n iv e l en u n a m e m o r ia p r in c ip a l e n tre la z a d a c o n 4 b a n co s .

U no d e los principales inconvenientes de esta técnica es que las arqu itecturas actuales utilizan muy pocos chips de m em oria (que cada vez tienen una capacidad mayor). E sto supone u n problem a cuando

Page 225: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

se desea im plem entar m o n o ria entrelazada, ya q u e resulta mucho m ás caro crear los diferentes bancos de m em oria.

Además, o tro inconvoiiente de la m em oria entrelazada es q u e cualquier ampliación d e m o n o ria re­sulta m ás costosa. Y se debe tener en cuen ta que en el caso d e accesos no secuenciales d paralelism o que puede extraerse en los accesos a m em oria será mucho m enor que el planificado inidalm ente.

Por últim o cabe destacar q u e p a ra o b to ie r el rendim iento óptim o de una m em oria o itre lazada, el número de bancos, N , debe ser realm ente elevado, ya q u e debe ser mayor que la latencia d e cada uno de d io s 01 dclos. D e esta form a se pueden ir solapando los tiem pos de dirección y transferencia d e datos por d bus, con las latencias d e los bancos d e m em oria (e jonp lo 4.8).

Como conclusión, aunque con un o itrd a z a d o de N bancos, el ancho d e banda de la m o n o ria debería ser N veces el ancho d e banda que en una m o n o ria p rindpa l d e ancho una palabra, en m edia la m ejora sude ser y[N.

Ejem plo 4 .8

E je m p lo d e m e m o r ia e n t r e la z a d a c o n d is t in t a s c o n f ig u r a c io n e s .

S u p o n g a m o s q u e te n e m o s una m e m o ria en tre lazada co n 8 b a n cos de m e m o ria y q u e el t ie m p o de d irec - c io n a m ie n to es 1 c ic lo ( td ir) , la la tenc ia de acceso es de 5 c ic lo s y el t ie m p o de bu s es de 1 c ic lo (tbus).

En este caso te n e m o s q u e N = 8 > la te n c ia = 5 , vea m o s c ó m o se co m p o rta ría la m e m o ria :

C ic lo 1 ( td ir) D ire cc io n a m ie n to de la p rim e ra pa lab ra q u e el p ro ce sa d o r so lic ita .

C ic los 2-6 (la tencia ) Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C ic los 7-14 (8 veces tb u s y en para le lo , td ir y la tencia )

T ransfe rencia de las 8 p a lab ras recu p e ra da s p o r el bus. D ire cc io n a m ie n to de la segunda pa lab ra q u e el p ro ce sa d o r so lic ita . Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C ic los 15-22 (8 veces tb u s y en p a ra le ­lo , td ir y la tencia )

T ransfe rencia de las 8 p a lab ras recu p e ra da s p o r el bus. D ire cc io n a m ie n to de la te rce ra pa lab ra q u e el p ro ce sa d o r so lic ita . Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

S u p o n g a m o s ahora q u e la la tenc ia d e acceso a m e m o ria es de 10 c ic lo s en lu g a r de ser de 5 c ic lo s , es decir, su p o n g a m o s q u e es tam os en la s ituac ión co n tra r ia co n N = 8 < la te n c ia = 1 0 :

C ic lo 1 ( td ir) D ire cc io n a m ie n to de la p rim e ra pa lab ra q u e el p ro ce sa d o r so lic ita .

C ic los 2-11 (la tencia ) Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C ic los 12-19 (tb u s y en p a ra le lo td i r y p a rte de la la tencia )

T ransfe rencia de las 8 p a lab ras recu p e ra da s p o r el bus. D ire cc io n am ie n to de la segunda pa lab ra q u e el p ro ce sa d o r so lic ita . Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C iclos hasta el 22 (parte de la latencia) Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C ic los 23-30 (tb u s y en p a ra le lo td i r y p a rte de la la tencia )

T ransfe rencia de las 8 p a lab ras recu p e ra da s p o r el bus. D ire cc io n a m ie n to de la te rce ra pa lab ra q u e el p ro ce sa d o r so lic ita . Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

C iclos hasta el 33 (parte de la latencia) Latencia de acce so de lo s 8 b a n cos en tre lazados en para le lo .

Se obse rva q u e en este ú lt im o caso se su fre m u c h o m ás la pena lizac ión deb ida a las la te n c ia s de acceso a m em o ria . D e ah í q u e en las co n fig u ra c io n e s co n N c la te n c ia n o se pueda co n se g u ir el a n cho de banda ó p t im o deseado co n este t ip o de técn ica de a u m e n to de p res tac iones .

Page 226: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

4 .2 .1 .3 . C a n a l e s d e m e m o r i a p r i n c i p a l i n d e p e n d i e n t e s

El elevado coste q u e implica ensanchar la m em oria principal y los inconvenientes que presenta la m em oria entrelazada h an obligado a proponer nuevas técnicas d e optim ización del ancho d e banda d e la m em oria principal. L a que m ás se ha extendido es la utilización d e canales de m em oria independientes. E sta técnica es una generalización d e la m em oria entrelazada. L a única diferencia está en que cad a b an ­co d e m em oria es com pletam ente independiente de los dem ás, es decir, cada uno tiene su propio bus de direcciones y d e da to s y su propio controlador.

P or ejem plo, las tecnologías D ual C hannel o T hree C hannel q u e se encuen tran actualm ente en la m ayor p a r te d e com pu tadores personales perm iten tener d o s o tres bancos d e m em oria com ­ple tam ente independien tes respectivam ente, aum en tan d o así el ancho d e b a n d a en u n fac to r 2 ó 3 respectivam ente.

M e m o r ia p r in c ip a l c o n d o s cana les d e m e m o r ia in d e p e n d ie n te s .

Ejem plo 4 .9

Comparación de las diferentes técnicas de optim ización del ancho de bandade memoria principal.

S u p o n g a m o s una m e m o ria p rin c ip a l s in o p tim iz a r en la q u e el d ire c c io n a m ie n to de una pa lab ra su p o ne 1 c ic lo de re lo j, la la tencia de acceso sean 100 c ic lo s y la tra n s fe ren c ia de una pa lab ra p o r el bu s sea de n u e vo de 1 c ic lo . Para fa c ilita r la c o m p re n s ió n de l e je m p lo , s u p o n g a m o s q u e en esta m e m o ria n o es p o s ib le so lapa r el d ire cc io n a m ie n to , co n la la tenc ia de acceso o co n las trans fe renc ias .

Si el ta m a ñ o de b lo q u e de la caché de n ive l 2 es de 64 pa labras, recu p e ra r este b lo q u e de m e m o ria p r in c i­pal su p o nd ría un tie m p o :

taoqug = 64 • (1 + 100 + 1) = 6528 c ic los

Si d e c id im o s ensanchar la je ra rqu ía de m e m o ria , p o r e je m p lo , a c u a tro p a la b ra s , este t ie m p o sería:

w = y • ( 1 + 1 0 0 + 1 | = 1 6 3 2 c i c l o s

Este c á lcu lo n o es m u y rea lis ta , ya q u e al ensanchar la je ra rq u ía de m em o ria , ta n to las ta re a s de ge s ­tió n /m a n te n im ie n to c o m o el p ro p io h a rd w a re se c o m p lic a n , y e s to sue le ra len tiza r su fu n c io n a m ie n to . Pero a

Page 227: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

e fe c tos d e e s tim ac ión , s u p o n g a m o s q u e las co n secuenc ias de l e n sa nch a m ie n to n o son m u y im p o rta n te s . En rea lidad , ya sa b e m o s q u e el p rin c ip a l p ro b le m a de esta o p tim iza c ió n es q u e sue le ser im p ra c tic a b le d e b id o a su e le va d o coste.

Si p ro b a m o s a u tiliza r una m e m o ria entre lazada con c u a tro b a ncos , te n e m o s :

t = — - ( 1+ 100) + 6 4 - 1 = 1680 cic losbloque 4

Esta s o lu c ió n , m u c h o m ás barata y a sequ ib le q u e el e nsancham ien to de to d a la je ra rq u ía , c o n s ig u e un re n d im ie n to bas tan te s im ila r co n costes m u c h o m eno res . El p ro b le m a está en q u e ya h e m o s v is to q u e si el n ú m e ro de b a n cos es in fe r io r al n ú m e ro de c ic lo s q u e se in v ie r te n en la la tenc ia de acceso , n o se pu e de a p ro ­ve ch a r al m áx im o .

Por ú ltim o , p o d e m o s o p ta r p o r la so lu c ió n de cana les de m e m o ria in d e p en d ie n te s . H o y en día p o d em o s en co n tra rn o s o p c io n e s de D ua l C hannel o de T h re e C hannel:

tU o cu e = Y ■ (1 + 100+1) = 3264 c ic los

*bloque(1+100 + 1) = 2244 cic los

Y es esta ú ltim a a lte rna tiva la m ás u tilizada d e b id o al c o m p ro m is o q u e o b tie n e e n tre cos te , co m p le jid a d y prestac iones.

4 .2 .1 .4 . M e m o r i a p r i n c i p a l s e g m e n t a d a

Esta técnica se aplica d e m anera muy sim ilar que en las m em orias caché, pero en este caso se utilizan todavía m ás e tapas d e segm entación, ya que se tra ta d e u n acceso bastante m ás com plejo (m apeo de dirección física a ubicación en m em oria principal, activación d e señales RAS y CAS, decodificación de direcciones d e fila y colum na, etc).

Depende casi exclusivamente d e que d con tro lador d e m em oria soporte esta técnica, ya que al ser el encargado d e planificar los accesos a la m a n o ria principal, será tam bién el principal encargado d e gestio­nar la tem porización d e las etapas, d e evitar posibles conflictos por recursos, etc.

Técnicas de optimización conjunta para todos los niveles de la jerarquía: visión global de la jerarquía de memoria

4.3.1. Soporte a las técnicas de optimización del procesador

U na vez com prendidas las técnicas d e op tim izadón d e la je rarqu ía d e m em oria conviene pararse a pensar si son adecuadas para alim entar d e instrucciones y datos a un procesador que incorpore las técni­cas d e op tim izadón estudiadas en el capítu lo 3 a u n ritm o suficiente.

D i prim er lugar, para ob tener el m áxim o rendim iento d e un procesador segm entado, es necesario que la m a n o ria caché sea no bloqueante.

Además, p ara realizar em isión múltiple d e instruedones, será necesario que, com o mínimo, la m em oria caché de instrucciones sea segm entada y/o m ultipuerto. Tam bién podría utilizarse u n a caché d e trazas.

Y adem ás, en d caso d e la ejecución especulativa, se deberán ignorar las excepciones q u e causen las referencias a m a n o ria con direcciones incorrectas, habituales cuando se utilizan esquem as d e especula- d ó n m ínim am ente sofisticados.

ESI

Page 228: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Teniendo en cuen ta estas consideraciones, y una vez vista la m ejora que se consigue en la je rarqu ía de m em oria básica in troducida en el capítulo 2 gracias a todas las técnicas d e optim ización estudiadas en este capítulo, se puede concluir q u e es posible p ara la je rarqu ía de m em oria servir d e instrucciones y datos a un procesador optim izado co n las prestaciones requeridas.

4.3.2. Almacenamiento local vs memoria cachéEn algunas arquitecturas actuales se h a decidido d a r un paso a trás y no incluir m o n o ria caché dentro

de la je rarqu ía d e m em oria sino un nivel denom inado norm alm ente d e alm acenam iento local, que no es m ás que un segundo nivd d e banco de registros.

Las arquitecturas q u e se deciden por es ta o p d ó n son m ucho m ás com plicadas d e program ar, ya que exigen que desde las aplicaciones se ordene cargar a este alm acenam iento local, casi siempre m ediante D M A d e bloques de inform ación (en el orden de m agnitud d e KB), la inform ación que d procesador necesita para trabajar en cada m om ento.

El alm acenam iento local se está utilizando para reducir la com plejidad del hardw are en sistem as que induyen varios procesadores en un único chip. D e esta m anera el diseño es m ás sencillo (se evitan todas las tareas d e gestión d e aciertos y fallos d e la m em oria caché, las com paraciones d e etiquetas, etc) y se evi­ta im plem entar protocolos d e coherenda d e caché. Además, los tiem pos d e acceso a un alm acenam iento local son m ás rápidos q u e a u n a m em oria caché, aunque obviamente, se traspasa a los desarrolladores la responsabilidad d e q u e los da to s que necesita el procesador estén en d alm acenam iento local. Por eso esta técnica se utiliza norm alm ente en procesadores d e propósito específico, a i los q u e las aplicadones son siempre del mismo tipo y es relativam ente sendllo predecir los datos q u e tienen q u e llevarse al a lm a­cenam iento local.

En u n procesador d e propósito general, prescindir de los niveles d e m o n o ria caché d e la je rarqu ía y pretender que todas las aplicadones, del tipo que sean, predigan los datos q u e van a necesitar en este alm acenam iento local, llevaría a u n a degradación im portan te de este rendim iento.

En la misma d irecd ó n q u e los alm acenam ientos locales, se pueden encon trar arquitecturas de p ro p ó ­sito específico q u e sí im plem entan m em oria caché pero que perm iten bloquear algunas zonas de este nivel de la je rarqu ía (locking) p a ra que funcionen com o un alm acenam iento local. N orm alm ente este bloqueo se realiza cuando se trabaja intensivam ente co n u n conjunto d e bloques de la caché, ya que bloqueando esta zo n a de la m o n o n a , se garan tiza u n tiempo d e acceso m ás rápido y q u e ninguno d e estos bloques se va a reem plazar m ientras el procesador los necesita.

m Técnicas de optimización para los buses de E/SLa expresión d d ancho de b an d a d e un bus que se estudió en el capítu lo 2 es:

B W = ancho de datos • f n . ° de transferencias por ciclo

A partir d e esta expresión se intuye que cualquier optim ización q u e pretenda m ejorar d ancho de banda d e un bus debe ir o rien tada a increm entar alguno d e estos tres aspectos: el ancho de datos, la fre­cuencia d e operación del bus o el número d e transferencias p o r dclo .

Se estud iará a continuación q u e adem ás existen técnicas q u e perm iten m ejorar los tres aspectos si­multáneamente.

4.4.1. Ancho de datos y frecuencia de operación

Tradidonalmente, d ancho de datos de un bus viene determinado por d número de líneas de datos que incorpora (siempre hay señales de control, de reloj, etc, que no se utilizan para la transferenda de informadón).

Page 229: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

En el cap ítu lo 2 (sección 2.7) se señaló q u e este an ch o e s tá lim itado p o r las in te rferencias q u e se p ro ­du cen e n tre u n a s líneas y o tras, espec ia lm en te a frecuencias d e o p erac ión altas.

P or es te m o tivo e s d ifícil e n c o n tra r buses c o n u n an ch o d e d a to s p o r e n c im a d e 64 o 128 bits. D e h e ­cho , la ten d en c ia d e op tim ización ac tu a l e s la u tilizac ión d e buses c o n un an ch o c a d a vez m enor, ca s i serie en lu g a r d e para le lo , y q u e u tilicen señalización d iferencial p a ra s o p o r ta r frecuencias d e fun cio n am ien to mayores.

¿E n q u é consiste e s ta técn ica d e op tim ización? L os buses trad ic io n a les ded ican u n c o n d u c to r p a ra ca d a b it d e in fo rm ac ió n q u e se desea tra n sm itir p o r el bus. P a ra sab er el valo r lógico d e c a d a u n o d e los bits d e in fo rm ac ión , se c o m p a ra el valo r d e la tensión q u e lleva c a d a u n o d e los co n d u c to res con u n a tie rra g lo b a l.

Sin em bargo , al tra b a ja r a frecuencias d e bus elevadas, la tensión d e c a d a uno d e los co n d u c to res puede su frir f luctuaciones q u e h ag an q u e valores d e 1 lógico se acaben in te rp re tan d o p o r e r ro r co m o un 0 lógico, y viceversa.

L a señalización d iferenc ia l u tiliza d o s c o n d u c to re s p a ra c a d a b it d e in fo rm ación q u e se d esea t ra n s ­m itir p o r d bus. P a ra saber el valo r lógico d e c a d a u n o d e lo s b its d e in fo rm ac ión , se c o m p aran la s ten sio ­nes d e lo s d o s conduc to res. D e e s ta m a n e ra , si existen in te rfe re n d a s o ru id o s q u e o rig inen f lu c tu a d o n e s a i la s tensiones d e los conduc to res, se rán sim ilares a i los d o s q u e se d ed ican a c a d a b it (siem pre u b icad o s próxim os f ís icam o ite), p o r lo q u e d bus se rá m ucho m ás robusto a n te el ru id o y se p o d rá tra b a ja r a fre ­cuencias m ucho m ayores sin p ro b lo n as .

Ejem plo 4 .1 0

Ejemplo de optim ización de un bus mediante la utilización de señalización diferencial.

S u p o n g a m o s q u e se desea o p tim iz a r un bu s con un a n ch o de d a tos de 32 b its , q u e realiza una tra n s fe re n ­cia p o r c ic lo y cuya frecu e n c ia de fu n c io n a m ie n to es de 333 M Hz.

El a n ch o de banda o rig in a l d e este bu s es de:

B W = ancho d e datos - f - n ° d e transferencias p o r ciclo = 4 B • 333 M H z -1 = 1.3 G B/s

El p ro b le m a q u e p resen ta este b u s es q u e se observa q u e ta n to si se aum en ta el a n ch o de d a tos c o m o si se aum enta la frecu e n c ia de fu n c io n a m ie n to , com ienzan a apa re ce r in te rfe re n c ia s e n tre las líneas d e l bus.

Para p o d e r e v ita r estas in te rfe re n c ia s se d e c id e u tiliz a r seña lización d ife renc ia l. En el bu s o rig in a l, cada una de las líneas lleva una te n s ió n de e n tre 0 y 5 V. Los va lo re s e n tre 0 y 1.5 V se in te rp re ta n c o m o O ló g ic o , y los va lo re s e n tre 3.5 y 5 V se in te rp re ta n c o m o 1 ló g ic o (el re s to de va lo re s son in d e te rm in a do s ).

S u p o n g a m o s q u e en el bu s o rig in a l se p ro d u ce una in te rfe re nc ia q u e resta 0 .5 V a to d a s las líneas de l bus, e n tonces:

3.8 V - 0.5 V = 3.3 V - Indefin ido

4.0 V - 0.5 V = 3.5 V - 1 Lógico

0 V - 0.5 V = -0 .5 V - Indefin ido

3.5 V - 0.5 V = 3.0 V - Indefin ido

Page 230: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En a lgunas líneas com enzarían a apa rece r in d e te rm in a c ion e s . Pero si c o n v e rtim o s el b u s a seña lización d ife renc ia l, a u n qu e exis ta una in te rfe re nc ia q u e re s te 0 .5 V a to d a s las líneas, la in fo rm a c ió n q u e se tra n s m ite p o r el b u s n o se c o rro m p e :

En este caso , las 32 líneas q u e se em p leaban en el bu s o rig in a l para tra n s m itir 32 b its , aho ra se em plean para t ra n s m it ir 16 b its . Pero g rac ias a la m a y o r robus tez fre n te al ru ido , la frecu e n c ia de fu n c io n a m ie n to del b u s pu e de a u m e n ta rse hasta 1.5 GHz. A una frecu e n c ia m a y o r n o daría t ie m p o a co m p le ta r una trans fe renc ia com p le ta p o r c ic lo de re lo j, p o r eso se d e c id e d e ja r este v a lo r para la frecu e n c ia .

El a n ch o de banda de l bu s o p tim iz a d o es:

B W = a n c h o d e d a to s - f -n .° d e tra n sfe ren c ia s p o r c ic lo = I B • 1.5 G H z - 1 = 3 G B /s

4.4.2. Número de transferencias por ciclo

D u ra n te m uchos años, ya q u e no se p o d ía au m e n ta r d an ch o d e b a n d a d e los buses in c rem en tan d o el ancho d e d a to s o la frecuencia deb ido a los p rob lem as q u e g eneraban las in terferencias y la d isipac ión d e calor, la ú n ica fo rm a d e o p tim iza r el an ch o d e b a n d a e ra m e jo ra r en to d o lo posib le el m o d o d e o p erac ión del bus y su s p ro to co lo s d e tra n s fe re n d a , sincron ización y a rb itra je p a ra q u e le d ie ra tiem po a rea liza r m ás d e u n a tra n s fe re n d a d e in fo rm ac ió n p o r ciclo.

f ó r a d io se aprovechan lo s flancos d e su b id a y d e b a ja d a d e la s señales d e relo j, o se co m b in an varias señales d e reloj desfasadas. C asi siem pre se realiza un núm ero d e transfe rencias p o r ciclo q u e sea p o ten c ia d e d o s .

Ejem plo 4 .11

Utilización de varias transferencias p o r ciclo para optim izar el ancho de banda de un bus.

Hace ya u n o s años, el bu s e s tánda r para la c o n e x ió n de ta rje ta s g rá fica s en p lacas de PC se denom in a b a A G P Se tra taba de un b u s bastan te tra d ic io n a l, co n una frecu e n c ia de fu n c io n a m ie n to de 66 M Hz y un a n cho de d a tos de 32 b its .

Las d ife re n te s ve rs ion e s de es te bu s fu e ro n m e jo ra n d o sus p re s ta c io n e s in c re m e n ta n d o s im p le m e n te el n ú m e ro de tran s fe ren c ia s de in fo rm a c ió n p o r c ic lo , de m anera q u e se pasó de l AG P in ic ia l al A G P 2 X (dos tran s fe ren c ia s p o r c ic lo ), al AG P 4 X (cu a tro tran s fe ren c ia s p o r c ic lo ) y p o r ú lt im o , al AG P 8 X (o c h o tra n s fe re n ­cias p o r c ic lo ):

BW (AG P) = a n c h o d e d a to s • f • n .° d e tra n s fe re n c ia s p o r c ic lo = 4 5 • 66 M H z • 1 = 264 M B /s

BW (AG P2X) = a n c h o d e d a to s • f • n ,° d e tra n s fe re n c ia s p o r c ic lo = 4 5 - 6 6 M H z • 2 = 528 M B /s

Page 231: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

BW (AG P4X) = a n c h o d e d a to s • f • n .° d e tra n s fe re n c ia s p o r c ic lo = 4 5 - 6 6 M H z • 4 = 1.05 G B /s

BW [AG P8X) = a n c h o d e d a to s • f • n .° d e tra n s fe re n c ia s p o r c ic lo = 4 5 - 6 6 M H z • 8 = 2.1 G 5 /s

D espués de esta ú ltim a ve rs ión , la técn ica de a u m e n ta r el n ú m e ro de tran s fe ren c ia s p o r c ic lo n o se p u d o u tiliza r m ás y se c a m b ió el estándar de c o n e x ió n de ta rje ta s g rá fica s a PCI E xpress x16, c o m o ve re m o s m ás ade lante , un b u s q u e in c o rp o ra té cn ica s de o p tim iz a c ió n m ás so fis ticadas.

4.4.3. Utilización de protocolos de comunicaciones de alto rendimiento

L as técn icas d e o p tim izac ión d e buses q u e se han im puesto en la ac tu a lid ad se b a sa n en la u tilización d e p ro to co lo s d e com un icac ión d e a lto rend im ien to .

L os buses d e E /S d e n tro d e u n a c o m p u ta d o ra c a d a vez se parecen m ás a la s redes d e com un icaciones y se m a n e ja la m ism a te rm ino log ía : co n ex ió n p u n to a p u n to , p aq u e te d e d a to s , sw itch.

L a idea p rin c ip a l e s ev ita r la señalización d e c o n tro l, y u tiliza r p ro to co lo s d e red d en tro d e las a rq u i­tecturas, cod ificando la in fo rm ación d e co n tro l ju n to c o n lo s dato s, e n ru ta n d o los p aq u e te s resu ltan tes m ed ian te sw itches d esd e el o rigen h a s ta el destino .

G a ro s e jem p lo s d e e s te tip o d e o p tim izac ión son buses co m o P C I E xpress o H ip ertran sp o rte .

P C I Ex p re ss .

Se tra ta de una te cn o log ía de c o n e x ió n p u n to a p u n to basada en el a n tig u o b u s PCI q u e p e rm ite la m ín im a la tencia de co m u n ica c io n e s en en laces e n tre ch ips . Está basada en u n o o v a r io s s w itc h e s d e n tro de l sistem a que ac túan c o m o c o n tro la d o re s de to d o s lo s d is p o s itiv o s q u e u tiliza n PC I-Express y q u e se encargan de la g e s tió n de lo s p a q ue te s q u e se u tilizan para tra n s fe r ir in fo rm a c ió n p o r el bus.

El p ro to c o lo de c o d if ic a c ió n de paque tes q u e u tiliza PC I-Express es s íncrono , c o d if ic a n d o la señal de re lo j ju n to co n lo s d a tos de m ane ra q u e se tra n s m ite n 10 b its de in fo rm a c ió n p o r cada 8 de da tos. E xis te ta m b ié n un m o d o is ó c ro n o d e fin id o en el e s tánda r para q u e se pueda fu n c io n a r a t ie m p o rea l, re se rva n d o un a n ch o de banda d e te rm in a d o para el d is p o s it iv o q u e lo necesite.

C a s o p r á c t ic o 4 . 1 .

Page 232: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El e s tánda r so p o rta c u a tro t ip o s bás icos de paque tes , lo s de tra n sa cc ió n con m em o ria , transa cc ió n de E/S, co n fig u ra c ió n y m ensa jes (ge s tió n avanzada de in te rru p c io n es ).

El a n ch o de d a tos de este b u s pu e de ser de 1, 2, 4 , 8 , 12 o 16 b its , con un cana l para cada d ire cc ió n y seña­lizac ión d ife re n c ia l. De ah í las ve rs io n e s PCI Express x1 , x2 , x 4 ,x 8 ,x 1 2 o x16, esta ú ltim a se ha c o n v e rtid o en el bu s e s tánda r para c o n e x ió n de ta rje ta s g rá fica s en lo s PCs. Por lo ta n to un en lace PCI Express pu e de ser x1 , x2 , x4 , x8 , x12 o x1 6 según el n ú m e ro de lañes q u e lo co m p o n g a n . U n lañe n o es m ás q u e el c o n ju n to de 4 líneas, do s en un se n tid o y do s en el c o n tra r io (p o rq u e se u tiliza seña lización d ife re n c ia l y es un b u s fu ll-d u p le x ) , que p e rm ite la tra n s m is ió n de 1 b it en lo s do s sen tidos al m is m o tie m p o . Los d is p o s itiv o s PC I-Express negoc ian con el sw itc h cuán to s cana les o lañes pod rá n u tiliz a r para sus com un ica c io n e s .

PCI-e x l

PCI-e x2

S w itch

La frecu e n c ia de fu n c io n a m ie n to de este bu s es s ie m pre de 2.5 GHz, p e ro la ve rs ión 1.0 hace 0.8 tra n s fe ­renc ias p o r c ic lo , y la 2.0, ju s to el d ob le , 1.6.

BW {PC¡ E x p r e s s * 1 6 1.0) = a n c h o d e d a to s • f • n .° d e tra n s fe re n c ia s p o r c ic lo = 2B • 2 .5 G H z • 0 .8 = = 4 G B/s en cada se n tid o (p o rq u e es fu ll-d u p le x )

BW (PC I E x p r e s s x 1 6 2.0) = a n c h o d e d a to s • f • n .° d e tra n s fe re n c ia s p o r c ic lo = 2B • 2 .5 G H z • 1.6 = = 8 G B/s en cada se n tid o (p o rq u e es fu ll-d u p le x )

C a s o p r á c t ic o 4 . 2 . H ipertransporte.

Tam bién se tra ta de una te c n o lo g ía de con e x ió n p u n to a p u n to q u e p e rm ite la m ín im a la tenc ia de c o m u n i­cac iones en enlaces e n tre ch ips , p e ro en este caso, el estándar está d ise ñ a do c o m o un p ro to c o lo de con e x ió n un ive rsa l, q u e n o se lim ita a lo s buses d e n tro de una co m p u ta d o ra .

Page 233: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

Tam b ién está basado en u n o o v a r io s sw itch e s d e n tro de l s is tem a q u e actúan c o m o c o n tro la d o re s de to d o s lo s d is p o s itiv o s q u e u tilizan H ip e rtra n s p o rte y q u e se enca rgan de la ge s tió n de lo s paque tes q u e se utilizan para tra n s fe r ir in fo rm a c ió n p o r el bus.

D e n u e vo el p ro to c o lo de c o d ific a c ió n de p a q ue te s es s ín c ro n o , a u n qu e en este caso es m u c h o m ás e fi­c iente q u e el q u e u tiliza PCI E xpress (se reduce m u c h o la in fo rm a c ió n de c o n tro l, se u tiliza n m e n o s cabeceras, etc). El ta m a ñ o de lo s paque tes es s ie m p re un m ú lt ip lo de 4 bytes.

HIPERTRANSPORTE H eader 8B o 12B

DATA 4B - 64B

Capa Enlace (transacción/datos)

----------- Capa F ís ica --------------

PCI-EXPRESS I FRAME SMqUt nCe I Header N um ber | 4BD 4096B | ECRC I ’ LCRCFRAME

Capa Transacclonal (12B o 16B da información de control)

Capa Enlace de Datos(8B de información de control)

- Capa F ís ica ----------------------------------------

El a n ch o de d a tos de este bu s pu e de ser de 2, 4 , 8, 16 o 32 b its , con un canal para cada d ire c c ió n y seña li­zación d ife re n c ia l. La frecu e n c ia de fu n c io n a m ie n to varía e n tre 800 MHz y 3.2 GHz d e p e n d ie n d o de la ve rs ión , y s ie m p re se rea lizan do s tra n s fe re n c ia s de in fo rm a c ió n p o r c ic lo .

Este bu s se está u tiliz a n d o c o m o bu s de l s is tem a y c o m o b u s de m e m o ria , n o só lo para la c o n e x ió n de d is p o s itiv o s p e rifé r ic o s c o m o PCI E xp ress hasta el m o m e n to . U n e je m p lo t íp ic o de a n ch o de banda para bus de l s is tem a sería:

B W (H T v e r s ió n 3.0) = a n c h o d e d a to s • f ■ n .° d e tra n s fe re n c ia s p o r c ic lo = 4 B • 2.6 G H z • 2 = 20.8 G B/s encada se n tid o (p o rq u e es fu ll-d u p le x )

Técnicas de optimización para los dispositivos de E/SE sta sección se c e n tra en la op tim ización d e l d isco d u ro ya q u e e s el d ispositivo en el q u e reside la m e­

m o ria v irtu a l, y p o r lo ta n to , su s op tim izaciones a fec ta rán al ren d im ien to d e la je ra rq u ía d e m em oria .En c u a n to a las op tim izaciones del resto d e d ispositivos, al igual q u e en el cap ítu lo 2, el fu n c io n a ­

m iento d e lo s periféricos co n c re to s e sca p ab a d e lo s ob je tivos d e e s te libro , el e s tu d io d e la s op tim izaciones específicas p a ra u n m on ito r, u n a im p reso ra o u n c á m a ra d e vídeo, p o r p o n e r a lg u n o s ejem plos, escapan d e nuevo a la s in tenciones d e e s te libro.

4.5.1. Optimización para los dispositivos de almacenamiento: RAID

U n R A ID e s un co n ju n to d e d isco s d u ro s tra b a ja n d o en p a ra le lo (R e d u n d a n t A rray o f Inexpensive D isks). Se t r a ta d e u n a so luc ión p a ra in c re m en ta r el an ch o d e b a n d a d e l sistem a d e a lm acenam ien to , ya q u e éste p re se n ta d m ism o p ro b lem a q u e la m em o ria p r in d p a l: la la tencia d e l sis tem a d ep en d e fu n ­d am en ta lm en te d e la tecno log ía c o n la q u e e s tá fab ricado , p o r eso lo s esfuerzos d e d iseño deben ir m ás o rien tad o s a m e jo ra r el an ch o d e b a n d a .

E B i l

Page 234: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

A dem ás e s ta so lución p erm ite m e jo ra r el rend im ien to d e l sis tem a d e a lm acenam ien to d esd e o tro s dos p u n to s d e v ista: la d isp o n ib ilid a d y la to le ran c ia a fallos, trem en d am en te im p o rta n tes e n m u ltitu d d e arqu itectu ras.

¿En q u é co n s is te u n R A ID ? L a idea p rin c ip a l e s re p a rtir lo s d a to s e n tre d ife ren tes d isco s d u ro s p a ra q u e p u e d a n ser acced idos en para le lo . E s ta técn ica se d e n o m in a stripp ing .

I^ ro así se d ism inuye la fiab ilidad d e l sistem a d e a lm acenam ien to , si se u tilizan v ario s d isco s duros, a u m en ta la p ro b ab ilid ad d e q u e se p ro d u zc a u n fa llo en u n o d e ellos. P o r eso la técn ica d e s tr ip p in g su d e co m b in a rse c o n red u n d a n c ia (co m p le ta o m ed ian te có d ig o s d e p a rid ad ). D e e s ta m a n e ra se tiene to le ranc ia a fallos, p o rq u e si hay u n e rro r c o n un d a to e n un d e te rm in a d o d isco , ese m ism o d a to e s ta rá a lm acenado en o tro /s d isco /s o in fo rm ación q u e p e rm ita recuperarlo . E l p ro b lem a e s q u e la in troducción d e la in fo rm ación d e re d u n d a n c ia co m p lica la ges tión del R A ID y o cu p a espacio .

E xisten d ife ren tes niveles d e R A ID depen d ien d o d e có m o se com binen y se u tilicen e s ta s d o s técnicas, d strip p in g y la re d u n d a n d a , ya q u e p a ra d ise ñ a r u n R A ID hay q u e to m a r d o s d e d s io n e s fu n d am e n ­tales:

• La g ran u la rid ad d e l stripp ing . Si es m uy fina, u n acceso d e E /S siem pre in v o lu c rará a to d o s los d iscos d e l R A ID . D e e s ta m a n era se a u m e n ta el an ch o d e b a n d a pero n o e s posib le h a c e r varias operaciones d e E /S en p a ra ld o . Si e s m ás gruesa, u n acceso p u ed e se r servido p o r u n ún ico d isco y p o r lo ta n to , si el c o n tro la d o r d e l R A ID lo perm ite, se p o d rá n h a c e r varios accesos a d isco en paralelo .

• T ipo d e red u n d an cia . Se p u ed e escoger la opc ión del m irro rin g o re d u n d a n c ia co m p le ta , e s decir, tener u n a c o p ia co m p le ta d e to d a la in fo rm ac ión , o co m o esto e s d em asiad o cos to so , u tiliza r códigos d e p a r id a d . Y adem ás la in fo rm ac ió n d e red u n d a n c ia p u ed e e s ta r loca lizada en d isco s co n cre to s o d is tr ib u id a e n tre to d o s los d iscos.

Teniendo en c u e n ta e s tas decisiones, se p u ed en e n c o n tra r lo s siguientes niveles d e R A ID :

• R A ID 0 . Se u tiliza sólo s tr ip p in g (figura 4.14), e s decir, se re p a rte la in fo rm ación e n tre los d isco s d u ro s q u e co m p o n en el R A ID , y la g ran u la rid ad n o e s tá defin ida (el d ise ñ a d o r p u ed e d ec id ir si es fina o g ruesa). U n a v en ta ja d e este nivel es q u e p a ra d sis tem a opera tivo to d o s lo s d isco s d u ro s q u e com ponen d R A ID aparecen co m o u n ún ico d isco d u ro d e capac idad la su m a d e to d o s ellos, lo que fac ilita en o rm e m en te su gestión . O b v iam en te la d esv en ta ja e s q u e n o hay to le ran c ia a fa llo s y si un d isco falla, se p ierden lo s d a to s q u e a lm acenaba .

F ig u r a 4 .1 4

R A ID 0.

Page 235: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

• RAID 1. E s la so luc ión q u e p ro p o rc io n a to le ran c ia a fallos al R A ID 0 (figura 4.15), ya q u e la m itad d e los d isco s se u tilizan co m o d isco s espg 'o d e la o t r a m itad (re d u n d an c ia c o n m irro rin g ). L a d e s ­ventaja e s q u e re su lta u n a so lución m uy c a ra d eb id o a la g ra n c a n tid a d d e espac io q u e se em p lea en a lm ac en a r la in fo rm ac ió n d e red u n d an cia .

• RAID 3 . P a ra red u c ir el co s te d e l R A ID 1, se u tiliza o tra so luc ión q u e p ro p o rc io n e to le ran c ia a folios al R A ID 0 sin necesidad d e d u p lic a r d núm ero d e d isco s (figuras 4.16 y 4.17). S im plem ente se u tiliza u n d isco d u ro ex tra p a ra a lm acen a r in fo rm ación d e p a r id a d ca lc u lad a m ed ian te el cód igo de H am m ing . D i este nivel d e R A ID la g ran u la rid ad d d s trip p in g e s fina, e s d e d r , se rep a rte la in form ación e n tre lo s d isco s en ta m a ñ o s d e b it o byte. L a d esv en ta ja es q u e c a d a vez q u e se hace u n a esc ritu ra en u n d isco , hay q u e leer to d o s lo s d em ás p a ra ca lcu la r la p a r id a d y escrib irla en el d isco d e p arid a d .

• RAID 4. P ara su p e ra r e s te inconvenien te se u tiliza g ran u la rid ad d e s trip p in g g ru esa (b loques d e in fo rm ación d e ta m a ñ o m ayor, tip o sectores) y se ap rovecha q u e no e s necesario leer lo s d iscos q u e no se h a n m odificado p a r a c a lc u la r la nueva p a r id a d , b a s ta c o n su an tig u o v a lo r y c o n lo s valores que se h a n m odificado (figuras 4.16 y 4.18).

• RAID 5. E s co m o d R A ID 4 , pero la in fo rm ac ió n d e p a r id a d ya n o se a lm acen a en u n d isco ded icado a e s ta fu n d ó n , sino q u e se re p a rte e n tre to d o s los d isco s q u e co m p o n en el R A ID (figu-

FlGURA 4 .1 5

R A ID 1.

Page 236: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

ra 4.19). D e esta m anera se pueden realizar escrituras en paralelo porque en m uchos casos ya no habrá riesgo estructural al actualizar la paridad (siempre y cuando el con tro lador d d R A ID lo permita).

• RAID 6. E s te nivel a ñ a d e al a n te r io r técn icas d e detección y c o rre c d ó n d e e rro re s P + Q , m á s co m ­plejas q u e la p a r id a d a m p ie ca lc u lad a con H am m in g d e m a n e ra q u e se pueden co rreg ir fallos d e dos d isco s e n lu g a r d e u n o solo. A cam bio , la in fo rm ación d e p a r id a d o c u p a m á s espacio .

U n a ú ltim a decisión q u e debe to m arse a i c u a n to al d iseño d e un R A ID es tá re la d o n a d a con la re c u p e ra d ó n d e in fo rm ación c u a n d o fa lla u n d isco (o d o s en d ca so d e l R A ID 6). E xisten d o s tip o s d e recuperación:

• Off line. El R A ID d e ja d e d a r se rv id o a las petic iones d e le c tu ra y e sc ritu ra m ien tras se recuperan los d a to s q u e se h a n perd ido . P o r lo ta n to , to d o d an ch o d e b a n d a e s tá co m p le tam en te d ispon ib le p a ra rea liza r e s ta recuperación .

• On line. El R A ID reserva u n a p a r te d d an ch o d e b a n d a p a ra rea liza r la recuperación y el resto se u tiliza p a ra seguir a tend iendo a la s p e tid o n e s d e le c tu ra y esc ritu ra . P o r lo ta n to , la fiabilidad del sistem a d e a lm acenam ien to e s m ayor, pero tam b ién el tiem po d e recuperación e s m ayor.

Page 237: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

R A ID 5.

E sta decisión p u ed e llegar a se r im p o rta n te p a ra d rend im ien to del R A ID , ya q u e ad em ás d e m ed ir las p restaciones o b te n id as c o n la s m étricas ya m encionadas, an ch o d e b a n d a y la tencia , en d caso d e un R A ID son im p o rta n tes el tiem po m edio h a s ta fallo d e u n d isco (M ean T im e To F a ilu re o M T T F ) y el t io n p o m edio h a s ta p é rd id a d e d a to s (M ean T im e To D a ta L o ss o M T T D L ).

Ejem plo 4 .1 2

Cálculo del MTTF y del MTTDL en un RAID 0.

Se co n ec ta a un s is tem a un RAID 0 de 6 d isco s SCSI de 40 GB cada uno . El t ie m p o m e d io hasta el fa llo (M ean T im e To Failure , M TTF) de es to s d isco s es de 1.5 m illo n e s de horas.

A d e m á s , si un d is c o fa lla , la re c u p e ra c ió n se pu e de h a ce r o ff lin e , es dec ir, el RAID de ja de fu n c io n a r hasta que el fa llo se c o rr ija , o se pu e de h a ce r o n lin e , es decir, m ie n tra s el s is tem a s ig u e a te n d ie n d o p e tic io n e s . Para hace r e s tim a c io n e s respec to a lo s t ie m p o s de re cu p e ra c ió n , se sabe q u e el bu s es un U ltraSC SI 320 co n un ancho de banda to ta l de 320 M B /s y q u e para la re cu p e ra c ió n o n lin e só lo se deja un 10% de l a n ch o de banda to ta l de l bus.

Con to d a esta in fo rm a c ió n p o d e m o s c a lc u la r q u e el t ie m p o m e d io hasta q u e se p ro d u zca un fa llo en el RAID es de:

M TTF = ^ (1 dÍSCo) = 1-5 m / / W r f e / ) ° ,a S = 250.000 horas N ú m e ro d e d isc o s 6

Ya q u e la p ro b a b ilid a d de q u e fa lle n 6 d isco s es 6 ve ce s su p e rio r a la p ro b a b ilid a d de q u e fa lle un ú n ic o d isco . Por eso el t ie m p o m e d io hasta fa llo de l RAID se o b tie n e d iv id ie n d o el t ie m p o m e d io de un ú n ic o d isco en tre 6.

C o m o se tra ta de un RAIDO en el q u e n o ex is te n in g ú n t ip o de in fo rm a c ió n re d u n d a n te , en c u a n to fa lle un d isco se p ie rd e n d a tos , p o r lo q u e el t ie m p o m e d io hasta pé rd ida de d a tos co in c id e co n el t ie m p o m e d io hasta fa llo de d isco :

M TTDL = M T T F = 250.000 ho ras

Y en este caso n o ex is te re cu p e ra c ió n pos ib le . S i fa lla un d isco , la in fo rm a c ió n q u e a lm acenaba se p ie rd e y es im p o s ib le rea liza r una recu p e ra c ió n .

Page 238: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 4 .1 3

Cálculo del MTTF y del MTTDL en un RAID 5.

S u p o n g a m o s q u e c a m b ia m o s la o rg a n iza c ió n de l RAID de l e je m p lo a n te r io r y lo c o n v e rtim o s en un RAID 5.

El t ie m p o m e d io hasta fa llo de d is c o n o cam b ia re s p e c to de l e je m p lo a n te rio r, p o rq u e só lo d e p ende del n ú m e ro y t ip o de d isco s q u e fo rm e n el RAID, n o de su o rgan iza c ió n :

M TTFM I l h (1 disco) 1.5 m illo n e s d e horas

N ú m e ro d e d isco s= 250.000 horas

Sin e m b a rg o en este caso , el t ie m p o m e d io hasta p é rd id a de d a tos es bas tan te in fe r io r al t ie m p o m e d io hasta fa llo de d isco : só lo se p ie rd e n d a tos si al fa lla r un d isco , m ie n tra s éste se recupera a p a rt ir de la in fo rm a ­c ión de redundanc ia , fa lla un se g u n d o d isco . H ay q u e re c o rd a r q u e co n el t ip o de c ó d ig o de p a rid a d q u e se u tiliza en un RAID 5, s ó lo se pu e de recu p e ra r un fa llo , n o dos.

Si la re cu p e ra c ió n tra s el p r im e r fa llo se rea liza de m ane ra on line , el RAID s ig u e fu n c io n a n d o m ie n tra s se recupera la in fo rm a c ió n de l d is c o q u e ha fa lla d o , p o r lo q u e la re cu p e ra c ió n de lo s 40 GB só lo pueden u tiliza r un 10% de l a n ch o de banda to ta l:

t recu p era c ió n (on Une) =c a p a c id a d d e d isco 40 GB

a n c h o d e b a n d a d e recu p era c ión 0.1 • 320 M B /s= 1 2 5 0 s

D u ran te este t ie m p o , el RAID está fu n c io n a n d o só lo co n 5 d isco s d u ro s , y el t ie m p o q u e en m ed ia ta rd a un d is c o de e n tre es to s 5 en fa lla r es:

= M TTF Q d isco ) = 1.5 m illo n e s d e h o ra s = ^ ^ ^

N ú m e ro d e d is c o s 5

Por lo ta n to la p ro b a b ilid a d de q u e en lo s 1250 s q u e se ta rda en recu p e ra r el d isco q u e ha fa lla d o , fa lle u n o de lo s o tro s c in c o d isco s q u e s iguen fu n c io n a n d o es:

p = t recupe rac ión (on \\ne)/M TTFs = 1250 s/(300.000 h o ra s • 3600) s = 1.16 • 10~6

Ftor lo ta n to , el t ie m p o m e d io hasta p é rd id a de d a tos es:

M TTF 250.000 h o ra sMTTDL(on Une) =

1.16 • 10-6= 2 .1 6 - 1011 horas

Si p o r el c o n tra r io la re cu p e ra c ió n tra s el p r im e r fa llo se realiza de m ane ra o f f lin e , la re cu p e ra c ió n es m u ­ch o m ás ráp id a ya q u e t ie n e to d o el a n ch o de banda d is p o n ib le :

Page 239: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

. ca p a c id a d d e d isc o 40 GBt recu p erac ión (o ff /m e) = ------------------------------------------------------ = -------------------= 125 s

a n c h o d e b a n d a d e recu p era c ió n 320 M B /s

D u ran te este t ie m p o , el RAID está fu n c io n a n d o só lo co n 5 d isco s d u ro s , y el t ie m p o q u e en m ed ia ta rd a un d is c o de e n tre es to s 5 en fa lla r es:

_ M T 7 F V disco) = 1.5 m illo n e s d e h o ra s = ^

N ú m e ro d e d is c o s 5

Por lo ta n to la p ro b a b ilid a d de q u e en lo s 125 s q u e se ta rd a en recu p e ra r el d is c o q u e ha fa lla d o , fa lle u n o de lo s o tro s c in c o d isco s q u e s iguen fu n c io n a n d o es:

p = t re cu p e ra c ió n (on \\ne)/M TTFs = 125 s/(300.000 h o ra s • 3600) s = 1.16 • 1 0 *

Rsr lo ta n to , el t ie m p o m e d io hasta p é rd id a de d a tos es:

.. . M TTF 250.000 h o ra s « , Ai2uMTTDL [o n /m e) = ---------- = -------------------------= 2 .1 6 -1012 horas

p 1.16*10~7

Es decir, al h a ce r la re cu p e ra c ió n o f f lin e la re c u p e ra c ió n es m ás ráp ida , y es to d is m in u y e la p ro b a b ilid a d de que o c u rra un se g u n d o fa llo m ie n tra s se recu p e ra el p rim e ro , lo q u e al f in a l se tra d u c e en un M TTDL, en este e jem p lo , un o rd e n de m a g n itu d m ayor.

Técnicas de optimización para la gestión de E/SL a p rin c ip a l op tim ización q u e se in c o rp o ra ac tu a lm en te e s la d e u n p ro cesad o r d e E/S, en el p rop io

d ispositivo periférico o en su in terfaz, q u e h ag a q u e el p ro cesad o r ni s iq u ie ra in te rvenga en las fases d e in ic ia lizadón y finalización d e la tran sfe ren c ia d e E/S.

P or ta n to , e n este tip o d e ges tión o p tim izad a , existe u n p ro cesad o r c o n a u to n o m ía p ro p ia p a ra rea li­z a r es tas funciones sin necesidad d e in tervención del p ro cesad o r p rincipal. E n m uchos casos, e s te p ro c e ­sad o r incluso d isp o n d rá d e u n a m em o ria o je ra rq u ía d e m em o ria p ro p ia . Y p a ra su d iseño se u tiliza rán el m ism o tipo d e técn icas q u e se h a n es tu d ia d o e n lo s ca p ítu lo s 1 y 3 d e e s te libro.

O bviam ente , n o es u n a so lución q u e se esco ja e n m uchos ca so s deb ido a su elevado precio , pero en los caso s co n c re to s d e l sistem a gráfico y d e l sis tem a d e com unicaciones, h a resu ltad o ser la ú n ic a técn ica d e op tim ización q u e consigue la s p restac io n es adecuadas.

Por lo ta n to hoy en d ía se pueden en co n trar e n m ultitud d e a rqu itectu ras un procesador d e p ropósito es­pecífico dedicado a las ta reas d e E /S d d sistem a gráfico (G P U o G raph ic Processing U nit) y u n procesador de propósito espedfico ded icado a las ta reas d e E /S d d sistem a d e com un icadones (N P U o NetW ork Processing U nit), am bos d e sim ilares p res ta d o n es a la s d d procesador pero d iseñados p a ra ta reas m ucho m ás concretas y p o r lo ta n to co n repertorios de in s tru cd o n es espedficos p a ra d tip o d e ap licad ó n q u e deben ejecutar.

4.6.1. Procesador para el sistema gráfico: CPU

M u ltitu d d e ap licaciones hoy en d ía exigen la g e n e ra d ó n d e gráficos 3 D a i tiem po real (videojuegos, h e rram ien tas C A D , a m u la d o res, e tc). L a rea liza d ó n d e la s ta re a s d e E /S necesarias p a ra consegu ir la ca lidad d e gráficos d e sea d a en tiem po real co n su m iría d em asiad o s recu rsos d e l p ro cesad o r d e p ro p ó sito general p o r lo q u e h ac e añ o s se o p tó p o r u tiliza r u n p ro ce sad o r específico p a ra la realización d e e s tas tareas, la G P U .

Page 240: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En a rq u itec tu ra s q u e u tilizan este tip o d e p rocesador, la C P U env ía p rim itivas al p ro cesad o r gráfico p a ra q u e procese los d a to s q u e describen la escena 3 D q u e se desea m o s tra r e n el d isp lay o m on ito r. E sta s p rim itivas suelen se r lla m a d as a u n a A P I p a ra sim plificar la p ro g ram ac ió n d e la s aplicaciones.

L os d a to s q u e describen la escena 3 D rep resen tan la escena q u e se debe generar d esd e d iferen tes p u n ­to s d e v ista: su geo m etría , la s fuen tes d e luz , lo s m ateriales, la s tex tu ras, la posic ión d e la c á m a ra , etc .

N o rm alm en te la G P U co m en zará a tra b a ja r con es to s d a to s e n u n a p rim era e ta p a d e G eo m etría , d e ­n o m in ad a así p o rq u e se tra b a ja casi siem pre c o n trián g u lo s y c o n su s vértices (se suele d e n o m in a r vertex a u n vértice d e un tr iá n g u lo q u e adem ás d e la in fo rm ación d e su posic ión 3 D suele inclu ir in fo rm ación d e norm ales, c o lo r y tex tu ras).

En e s ta p rim e ra e ta p a se aplican op erac io n es g eom étricas a los d a to s d e e n tra d a según la s p rim itivas que llegan d e la C P U . E s ta s o p erac io n es pueden ser m over, ro ta r y p ro y ec tar ob je tos, m over la cá m a ra , ilum inar ob je tos, ig n o ra r lo s ob je to s q u e es tán fu e ra d e la escena según d p u n to d e v ista, e tc.

A co n tin u ac ió n se suele p ro d u c ir u n a e ta p a d e R asterizac ión , en la q u e se conv ierte la sa lid a d e las o p e ra d o n e s g eom étricas e n u n a im agen 2 D fo rm a d a p o r frag m en to s discretos.

D espués se p asa a la e ta p a d e F ragm entos, e n la se realiza to d o el trab a jo en d o s d im ensiones, se ap lica la m ayor p a r te d e la s tex tu ras y se rea liza la in te rp o la d ó n d e l color.

P or ú ltim o, el ren d e rizad o se o c u p a d e h acer el te st d e p ro fu n d id ad p a ra ver q u é frag m en to s son visibles y p a ra c a lc u la r los p íxeles q u e fo rm a rá n la im agen final e n el display.

L as G P U s ac tua les in c o rp o ran p rác tica m e n te to d a s las técn icas d e d iseño d e p rocesadores q u e se han es tu d ia d o p a ra la C P U , ya q u e si n o sería im posib le rea liza r to d a s e s ta s ta re a s en tiem po rea l. Pero las ap lican ten iendo e n c u e n ta las ca rac te rís ticas co n c re ta s d e l trab a jo q u e realizan , y a q u e en este caso , no se t r a ta d e u n p ro cesad o r q u e d eb a ser c a p a z d e e jec u ta r cu a lq u ie r aplicación , só lo d eb e se r cap az d e e jecu ta r c ie r ta s ta re a s co n c re ta s a i la s q u e el paralelism o d e d a to s e s m uy hab itua l.

A dem ás, la s G P U s ac tu a les son program ables, a u n q u e d e nuevo su m odelo d e p rog ram ac ión difiere ligeram ente del d e la s C P U s d eb id o a la especificidad d e su s aplicaciones.

C a s o p r á c t ic o 4 . 3 . G P U s de N Vid ia .

En la fig u ra se m uestra el esquem a fu n c io na l de l q u e se pa rte para d ise ñ a r las GPUs de la serie 6 de NVidia.

MEMORIAGRÁFICA

C o m o se pu e de observar, se tra ta de un d ia g ra m a de b lo q u e s q u e resu m e las e tapas de l cauce g rá fic o c lás ico q u e a cabam os de estudiar. Lo m ás des tacab le es q u e se espec ifica desde un p r in c ip io q u e el h a rd w a re qu e se enca rga de la etapa de G eom etría y de la etapa de p ro c e s a m ie n to de F ra g m e n to s y Texturas, debe ser p ro g ram ab le .

Page 241: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

Este esquem a fu n c io n a l se ¡m p lem en ta co n la a rq u ite c tu ra q u e se m ue s tra en la s ig u ie n te fig u ra .

Procesamiento de Vértices

Procesam iento de Texturas

y Fragmenos

Renderización

Se pu e de o b se rva r q u e el d ise ñ o de la GPU se basa en do s t ip o s de m ó d u lo s p ro g ra m a b le s : lo s p ro ce sa ­do res de vé rtice s (en la etapa de P roce sa m ie n to de Vórtices) y lo s p ro ce sa d o re s de F ragm en tos (en la etapa de P ro ce sa m ie n to de Texturas y F ragm en tos).

El re s to de l h a rd w a re está d ise ñ a do para rea liza r s ie m p re las m ism a s ta reas. A d e m á s se obse rva q u e la je ra rqu ía de m e m o ria de la G PU in c lu y e do s m e m o ria s cachó, la de te x tu ra s y el Z -b u ffe r q u e se u tiliza d u ra n te la rend e riza c ió n , y una m e m o ria D R A M q u e es el equ iva le n te a su m e m o ria p rin c ip a l (se sue le d e n o m in a r m em oria g rá fica).

En la se rie 6 de N V id ia lo s p ro ce sa d o re s de v é rtic e s pueden acce d er a la cachó de te x tu ra s en a lgunos casos co n c re to s . A u n q u e lo n o rm a l es q u e se acceda desde lo s p ro ce sa d o re s de fra g m e n to s . En este caso se hace a tra v é s de un h a rd w a re espec ífico q u e p repa ra lo s d a tos y lo s p o n e en el fo rm a to adecuado.

Los p ro ce sa d o re s de vó rtice s y fra g m e n to s t ie n e n re p e rto rio s de in s tru cc io n e s d ife re n te s . A m b o s trab a ja n con t ip o s de d a tos en co m a f lo ta n te (16, 24 o 32 b its ), de m anera q u e lo s n ú m e ro s e n te ro s se s im u lan . El h a rd ­w are n o p ro g ra m a b le pu e de fu n c io n a r co n estos m is m o s t ip o s o co n co m a fija .

Los seis p ro ce sa d o re s de vé rtices son co m p le ta m e n te in d e p en d ie n te s . Cada u n o de e llo s t ie n e la s ig u ie n te a rqu itec tu ra :

Cull/C lip/Setup

A ccesoa la

c a c h éd e

te x tu ra s

Page 242: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En la GPU se ap lica un p ro g ra m a a cada vó rtice de en trada : tra n s fo rm a c io n e s , sk inn ing , e tc. Para e llo se em plean do s u n id a de s fu n c io n a le s en com a flo ta n te , una esca lar y o tra ve c to ria l. Y si es necesario , se accede a la cachó de te x tu ra s . En la e je cu c ió n de estos p ro g ra m a s se hace un tra ta m ie n to m u y se n c illo de las in s tru c ­c iones de sa lto . A c o n tin u a c ió n , se ensam b lan p rim itiv a s a p a r t ir de lo s vó rtice s (pun tos, líneas y tr iá n g u lo s ) y se e lim in a n las p r im it iv a s q u e n o serán v is ib le s te n ie n d o en cuen ta el p u n to de v is ta .

En cu a n to a la a rq u ite c tu ra de lo s p ro ce sa d o re s de fra g m e n to s :

InputTexture D ata Fragm ent Data

F ragm ent Data

D e n u e vo se ap lica un p rog ram a a cada fra g m e n to de en trada . En este caso lo s p ro ce sa d o re s no son in ­d e p e n d ie n te s , ya q u e se a g ru p a n de c u a tro en c u a tro para p o d e r a p ro ve ch a r la lo ca lid a d espacia l tra b a ja n d o con lo s p íxe les p o ten c ia le s en 2 x 2.

T odos lo s p ro ce sa d o re s de fra g m e n to s in c o rp o ra n una cachó de n ive l 1 de te x tu ra s y un m ó d u lo para el tra ta m ie n to de lo s sa ltos , adem ás de do s u n id a de s fu n c io n a le s en FP q u e pueden tra b a ja r en p a ra le lo , o tra un idad fu n c io n a l en FP d iseñada espec íficam en te para las o p e ra c io n e s típ ic a s co n te x tu ra s y una ALU, ta m b ié n específica para c ie r to t ip o de o p e ra c io n e s m u y co m u n e s en esta etapa de l cauce.

C uando N V id ia d iseña las GPUs de su n ueva serie, la se rie 7, n o se realiza un c a m b io espec tacu la r en la a rqu itec tu ra . S im p le m e n te se añaden 2 n u e vos p ro ce sa d o re s de vó rtice s y 2 (x4) n u e vos p ro ce sa d o re s de fra g m e n to s . A d e m á s , se red iseñan lo s m ó d u lo s h a rd w a re q u e supus ie ron un c u e llo de b o te lla en la se rie 6. En c o n c re to , se m e jo ra el re n d im ie n to de lo s p ro ce sa d o re s de fra g m e n to s en la rea lizac ión de o p e rac iones m a tem á ticas (a ñ a d ie n d o do s m in i-A L U S en estos p ro ce sa d o re s q u e se c o m p o rta n c o m o co p ro ce sa d o re s para las do s u n id a de s fu n c io n a le s de FP en las o p e rac iones co m p le ja s ) y se o p tim izan las té cn ica s de p rebúsqueda de la cachó de tex tu ras .

Las a rq u ite c tu ra s de las series an te rio re s , la 6 y la 7 p resen tan do s p ro b le m a s im p o rta n te s :

• El d e se q u ilib r io en la ca rga de lo s p ro ce sa d o re s de vé rtices y fra g m e n to s , ya q u e no to d a s las im á ge n e s p resen tan la m ism a c o m p le jid a d en tre s y do s d im e n s io n e s y en m u c h o s casos a lg u n o de lo s d o s t ip o s de p ro ce sa d o re s queda ¡nfrau tilizado .

• La d ife re n c ia e n tre lo s re p e rto r io s de in s tru cc io n e s de a m b o s t ip o s de p rocesado res .

Por eso en la se rie 8 se busca una a rq u ite c tu ra un ifica d a q u e n o d is tinga e n tre a m b o s t ip o s de p ro c e s a d o ­res. Se d iseña una ún ica u n id a d de p ro ce so capaz de rea liza r to d o t ip o de ta re a s y q u e sea co h e re n te co n el cauce g rá f ic o d e fin id o p o r D ire c tX 10.

Para e llo se in tro d u c e n en las n u e vas GPUs tre s e tapas p ro g ra m a b le s : vó rtices, g eom e tría y fra g m e n to s . Todas e llas neces itan el m is m o re p e rto r io y p rá c tica m e n te lo s m is m o s recu rsos .

El n ú c le o de e je cu c ió n de las nuevas a rq u ite c tu ra s u n ifica d a s se basa en un n u e vo h a rd w a re q u e gestiona los t re s t ip o s de th re a d s q u e se e jecu tan en la GPU: de vó rtices , de g e o m e tría y de fra g m e n to s . En el e je m p lo de la f ig u ra este h a rd w a re re p a rte el tra b a jo en tre 8 m ó d u lo s , cada u n o de e llo s co n tie ne 16 S tre a m in g P roces- so rs (SP), 4 T ex tu re F ilte ring U n its (TF) y el p r im e r n ive l de m e m o ria cachó co m p a rtid a (L1).

Page 243: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

A in q u e sin e n tra r en m u c h o de ta lle re la c io n a d o con las ca rac te rís ticas específicas de las a rq u ite c tu ra s para g rá fico s , se pu e de o b se rva r g ra c ia s a este re c o r r id o p o r las a rq u ite c tu ra s de las GPUs de N V id ia para sus series 6, 7 y 8 , q u e las té c n ic a s em p leadas para el d ise ñ o de p ro ce sa d o re s de E/S son las m ism a s que para lo s p ro ce sa d o re s de p ro p ó s ito genera l es tud iadas en lo s c a p ítu lo 1 y 3 de este lib ro . A unque , c la ro está, ap ro ve ch a n d o en las o p tim iza c io n e s de lo s d ise ñ o s la e sp e c ific id a d de las ap lica c io n es q u e se van a ejecutar. En este t ip o de p ro ce sa d o re s se sue len u tiliz a r m u y pocas té cn ica s d in á m ica s (p lan ifica c ió n de in s tru cc io n e s , p re d ic c ió n de sa ltos , especu lac ión , e tc) y s in em ba rgo , p o r el t ip o de a p lica c ió n q u e e jecu tan , se sue le busca r la e xp lo ta c ió n m as iva de l p a ra le lis m o de d a tos , ya q u e es t íp ic o rea liza r las m ism a s o p e ra c io n e s so b re g ra n d e s c o n ju n to s de d a tos . En resum en p o d e m o s e n co n tra r:

• S egm e nta c ió n .

— A a lto n ive l (cauce g rá fico ).— A b a jo n ive l (d e n tro de lo s p ro ce sa d o re s de v ó rtic e s y de fra g m e n to s ).

• T ra ta m ie n to y p re d ic c ió n de sa ltos sencilla .• P ara le lism o.

— A a lto n ive l (so luc ion e s q u e in c lu y e n 2 GPUs d e n tro de una ta rje ta o q u e p e rm ite n q u e d o s ta rje ta s g rá ficas tra b a je n en pa ra le lo co n SLI o C rossfire).

— A b a jo n ive l (va r io s p ro ce sa d o re s tra b a ja n d o en p a ra le lo en cada etapa, so b re d ife re n te s vó rtice s o frag m e n to s , u n id a d e s ve c to ria les , ru ta s de d a tos m u ltifu n c io n a le s ).

• O p tim iza c io n e s en la m em o ria .

— P rebúsqueda de m e m o ria en la cachó de tex tu ras .— T ecno log ías de m e m o ria g rá fica q u e in c lu ye n el en tre lazado.— C uatro accesos en pa ra le lo a la m e m o ria p rin c ip a l de la ta rje ta (cu a tro cana les independ ien tes).

Page 244: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQUITECTURAS DE CO M PUTADO RAS

Resumen de decisiones de diseño de técnicas de aumento de prestaciones para memoria y E/S

A u m e n t o d e p r e s t a c i o n e s d e l a m e m o r i a c a c h é

Decisión A lternativas D ecisiones asociadas

Cóm o reducir la penalización por fallo

D a r p r io r id a d a lo s fa llo s O p tim iz a c io n e s d e l b u f fe r de

e s c ritu ra C aché d e v íc t im a s

U tiliz a c ió n d e caché n o b lo q u e a n te

Cóm o reducir la ta sa de fallos

C aché p re d ic t iv a A lg o r itm o d e p re d ic c ió n

C aché p s e u d o a s o c ia t iv a A lg o r itm o d e s e g u n d o e m p la z a m ie n to

P re b ú s q u e d a H W o SW , a lg o r itm o de p re b ú s q u e d a

C achó d e trazas (p a ra in s tru c c io n e s )

Cóm o reducir el tiem po de acierto

M e jo ra s en la t ra d u c c ió n d e D V a DF

S e g m e n ta c ió n d e la cachó D is e ñ o d e la s e g m e n ta c ió n , n ú m e ro d e e tapas

C aché d e trazas (p a ra in s tru c c io n e s )

A u m e n t o d e p r e s t a c i o n e s d e l a m e m o r i a p r i n c i p a l

Decisión A lternativas D ecisiones asociadas

Cóm o reducir la latencia de acceso

C u a lq u ie ra q u e im p liq u e una m e jo ra en la te c n o lo g ía c o n la q u e

es tá fa b r ic a d a la m e m o r ia

Cóm o aum entar el ancho de banda

E n s a n c h a d o d e la m e m o r ia p r in c ip a l

N ú m e ro d e p a la b ra s

E n tre la za d o d e la m e m o r ia p r in c ip a l

A a lto o b a jo n iv e l, n ú m e ro de b a n c o s

C ana les d e m e m o r ia in d e p e n d ie n te s

N ú m e ro d e cana les

S e g m e n ta c ió n d e la m e m o r ia p r in c ip a l

D ise ñ o d e la s e g m e n ta c ió n , n ú m e ro d e e tapas

A u m e n t o d e p r e s t a c i o n e s d e b u s e s d e E/S

Decisión Alternativas D ecisiones asociadas

Cóm o aum entar el ancho de banda

S e ñ a liz a c ió n y a u m e n to de f re c u e n c ia d e fu n c io n a m ie n to

C o m p ro m is o e n tre a n ch o d e d a to s , f re c u e n c ia , d is ip a c ió n d e p o te n c ia

y ru id o

S e ñ a liz a c ió n d ife re n c ia l y a u m e n to de f re c u e n c ia d e fu n c io n a m ie n to

C o m p ro m is o e n tre a n ch o d e d a to s , f re c u e n c ia , d is ip a c ió n d e p o te n c ia

y ru id o

U tiliz a c ió n d e p ro to c o lo s de c o m u n ic a c io n e s d e a lto

re n d im ie n to

P ro p ie ta r io s o e s tá n d a re s (PCI- E x p re s s , H ip e r tra n s p o rte )

Page 245: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

A u m e n t o d e p r e s t a c i o n e s d e d i s p o s i t i v o s d e E/S: a l m a c e n a m i e n t o

Decisión A lternativas D ecisiones asociadas

Núm ero de d isco s del FIAID

G ranuralidad del strippingF ina

G rue sa S in e s p e c if ic a r

Inform ación de redundanciaM irro r in g

C ó d ig o s d e p a r id a d H a m m in g , P + Q

RecuperaciónO n -lin e P o rc e n ta je d e l a n ch o d e b a n d a d e l

b u s d e d ic a d o a la re c u p e ra c ió n

O ff- lin e

A u m e n t o d e p r e s t a c i o n e s e n l a g e s t i ó n d e E/S

Decisión A lternativas D ecisiones asociadas

Incorporación de un procesador de E /S

P ro c e s a d o r de re d (N P U ) P ro c e s a d o r g rá f ic o (G PU )

D ise ñ o s e s p e c íf ic o s

BIBLIOGRAFÍA Y LECTURAS RECOMENDADASHANDY, J. (1998): The cache m em ory book (2.a ed.), Morgan Kaufmann.HENNESSY, J. L. & PATTERSON, D. A. (2007): Computer Architecture: A Quantitative Approach (4.a ed.), Morgan

Kaufmann.H ypertransport Consortium http://www.hypertransport.org/.HWANG, K. (1992): Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw Hill. JACOB, B.; SPENCER NG. & WANG D. (2007): M em ory System s: Cache, D R A M , Disk, Morgan Kaufmann. Intel Developer N etw ork fo r P C I Express Architecture http://www.intel.com /technology/ pciexpress/ devnet/. LUEBKE, D. & HUM PHREYS, G. (2007): «How G PUs work», Computer, 40(2), 96-100.M ONTRYM , J. & M ORETON, H. (2005): «The GeForce 6800», IE E E Micro, 25(2), 41-51.PARHAM I, B. (2007): Arquitectura de Computadoras. De los microprocesadores a las supercomputadoras (1.a ed.),

McGraw Hill.SHIVA, S. G. (2005): Advanced Computer Architectures, CRC Press.SIMA, D.; FOUNTAIN, T. & KARSUK, P. (1997): Advanced Computer Architectures: A Design Space Approach,

Addison Wesley.

Page 246: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

PROBLEMAS4.1. Se d iseña u n a je ra rq u ía d e m em oria con u n único nivel d e m em oria caché, con instrucciones

y da to s separados. El procesador realiza 5 • 106 referencias p o r segundo a da to s (de las cu a ­les el 80% son lecturas y el 20% son escrituras) y 107 referencias p o r segundo a instrucciones (obviam ente, to d as lecturas). L a m em oria caché d e instrucciones tiene un tiem po d e acceso de1.5 ns, u n a tasa d e fallos del 8% y el tam año d e b loque es d e 32 palabras. L a m em oria caché de da to s tiene un tiem po d e acceso d e 1.2 ns, u n a ta sa d e fallos del 9% y un tam año d e b loque de 16 palabras. L a latencia d e m em oria principal es d e 92 ns y se utiliza la técnica d e palabra crítica prim ero. Es decir se tra ta d e la m ism a je ra rq u ía d e m em oria q u e se diseñó en el proble­m a 2.7.

a) Calcular el tiem po m edio d e acceso a m a n o ria para instrucciones y p ara da to s si la caché es de escritura d irecta y se han incluido en el diseño las siguientes mejoras:

— L a caché de d a to s se convierte en una caché sin asignación en escritura.— U na caché de víctim as para la caché de da to s que puede resolver los fallos d 45% d e las

veces en un tio n p o d e 13 ns.— U na caché d e trazas q u e sustituye a la caché d e instruedones y que consigue u n tiempo

de acierto d e 0.7 ns y u n a tasa d e fallos del 4%.

b) Calcular el ancho de b an d a con m em oria p rindpa l consum ido con estas mejoras.c) Si resolviste el problem a 2.7, com para los resultados q u e obtuviste con los obtenidos aho ra

gracias a las m ejoras realizadas en esta jerarquía.

4.2. Suponiendo q u e el bus d e m em oria es d e 64 b its d e ancho, y funciona a una frecuoicia de 667 M H z, calcular el ancho d e banda q u e queda libre p ara que el sistema de E/S acceda a m em o­ria principal o í el problem a anterior. D iscutir d resultado obtenido y proponer modificaciones al d iseño realizado para m ejorarlo.

4.3. Se diseña una jerarqu ía d e m em oria con d o s n ivdes d e caché y las siguientes características:

• Caché d e nivel 1 de em plazam iento d irecto y escritura directa, unificada, con un tiem po de acceso de 1 ns, una tasa d e fallos del 11% y tam año d e bloque d e 16 palabras.

• Caché d e nivel 2 asociativa por conjuntos d e 4 vías y d e post-escritura, unificada, co n un tiem ­po de acceso d e 9 ns, u n a ta sa d e fallos del 6% y un tam año d e bloque d e 32 palabras.

• M em oria principal co n u n a latencia d e acceso d e 92 ns.• Se utiliza la técnica d e palabra crítica prim ero.• Tiem pos d e transferencia d e inform ación en tre niveles despreciables.

Sabiendo que el 75% d e los accesos a m em oria son lecturas y el 25% restante son escrituras (es decir, se tio ie d e nuevo la jerarquía diseñada en d problem a 2.8), calcular el tiem po m edio de acceso a m em oria si se introducen en el diseño las siguientes mejoras:

a) Se im plem enta u n algoritm o d e prebúsqueda p a ra la caché d e nivel 1 q u e consigue reducir su tasa d e fallos a un 9%.

b) Se d a prioridad a los fallos d e caché del segundo nivel añad io ido un buffer d e escritura con una tasa d e fallos del 18% y en el que se ta rdan 10 ns en volcar un bloque sucio.

4.4. Se d iseña una jerarqu ía d e m em oria con dos nivdes de caché que utilizan la técnica d e palabra crítica prim ero y las siguientes características:

Page 247: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

• Caché d e nivel 1 de em plazam iento d irecto y escritura directa, unificada, con un tiem po de acceso d e 1 ns, una tasa d e fallos del 5% y tam año d e bloque d e 16 palabras.

• Caché d e nivel 2 asociativa por conjuntos d e 4 vías y d e post-escritura, unificada, co n u n tiem ­po de acceso d e 9 ns, u n a ta sa d e fallos del 12% y u n tam año d e bloque d e 32 palabras.

• M em oria principal co n u n a latencia d e acceso d e 92 ns.• Tiem pos d e transferencia d e inform ación en tre niveles despreciables.

A hora vam os a cen trarnos en reducir en todo lo posible la penalización p o r fallo d e la caché de nivel 2. P ara ello:

a) Introducim os en la je rarqu ía d e m em oria u n buffer d e escritura q u e perm ite d a r prioridad a los fallos d e la caché de nivel 2. V dcar un bloque sucio a este buffer supone un tiem po de 14 ns y el buffer evita hacer este volcado a m em oria principal el 82% d e las veces.

b) A ñadim os una caché d e víctim as tam bién al segundo nivel d e caché, que perm ite resolver los fallos el 50% d e las ocasiones en un tiem po d e 18 ns.

C alcular el tiem po medio d e acceso a m em oria cuando se incorporan estas optimizaciones.

4 . 5 . Todavía no hem os optim izado suficientemente esta je rarqu ía d e m em oria, así q u e in tentam os introducir nuevas modificaciones. El nivel 1 se convierte en u n a caché pseudoasociativa y el nivel 2 en una caché predictiva. Con estas transform aciones tenemos:

• Cuando la caché d e nivel 1 acierta, se sigue com portando com o una caché d irecta y su tiem po de acceso no varía. E sto ocurre el 95% d e las veces. C uando falla, podem os buscar en una segunda localización, lo q u e implica que en estos casos el tiempo d e acceso es de 2 ns. Pero la tasa d e fallos global se consigue reducir a un 3.5%.

• C uando la caché d e nivel 2 acierta la predicción d e caché predictiva, el tiem po d e acceso es de7.5 ns. E sto ocurre en un 65% d e los accesos, en el resto, no varía el tiem po d e acceso.

Calcular el tiempo m edio d e acceso a m em oria con estas nuevas optimizaciones. ¿Se consigue una m ejora significativa respecto d e los resultados obtenidos en el problem a 4.4?

4 . 6 . Se incluye en u n a com putadora u n a jerarqu ía d e m em oria con las siguientes características:

• Caché de instrucdones d e nivel 1 con tiem po d e acceso d e 1 ns, tasa d e fallos del 6% y tam año de bloque d e 16 palabras.

• Caché d e d a to s d e nivel 1 con escritura directa, tiem po d e acceso d e 2.5 ns, tasa d e fallos del 8% y tam año d e bloque d e 16 palabras.

• Buffer d e escritura que perm ite realizar las escrituras directas el 85% d e las veces y con un tiempo d e acceso d e 1 ns.

• TLB co n un tiem po d e acceso d e 1.5 ns, tasa d e fallos d d 9% y que en los fallos necesita hacer en m edia 1.2 accesos a m o n o ria principal para realizar la trad u cd ó n de d irecd ó n virtual a dirección física.

• M em oria principal co n u n a latencia d e acceso d e 76 ns.• Transferir u n a palabra d e m em oria principal a m em oria caché supone 1.3 ns.

a) Calcular el tiem po m edio d e acceso a m o n o ria para instrucciones y p a ra da to s (ten io ido en cuenta q u e el 85% d e los accesos a da to s son lecturas y el 15% son escrituras) si en las cachés de instrucciones y d a to s se utiliza la técnica d e p alab ra crítica prim ero.

b) C alcular d e nuevo este tiem po si se introducen las siguientes optim izaciones en la je ra r­quía:

Page 248: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

— El buffer d e escritura se optim iza con la técnica de write-merging de m anera que perm ite realizar las escrituras directas el 95% d e las ocasiones.

— Se utiliza prebúsqueda hardw are a i la caché d e d a to s y se reduce su tasa d e fallos al 6.5%.

— La caché de instrucciones se convierte en una caché trazas, con tiempo de medio de acceso a instrucción d e 0.2 ns y ta sa d e fallos del 4%.

— Se accede a la caché de da to s con direcciones virtuales.

4.7. En una jerarqu ía d e m o n o n a con un nivel de caché se decide optim izar el ancho de b an d a d e la m em oria principal. P ara ello se barajan tres alternativas:

• Ensanchar to d a la je rarqu ía a un ancho d e 4 palabras.• U tilizar u n a m em oria principal entrelazada d e 4 bancos.• Incorporar dos canales d e m em oria principal independientes a la jerarquía.

Calcular la penalización p o r fallo de la caché si el tam año de bloque es d e 128 palabras, el tiempo de direccionam iento d e una palabra es despreciable, la latencia d e m o n o n a principal es d e 76 ns y el tiem po d e transfero icia d e una palabra por el bus es de 1.3 ns. H acer este cálculo con las tres optim izaciones posibles y d iscu tir cuál sería m ás conveniente para nuestro diseño.

4.8. Incorporar a la je rarqu ía d e m o n o ria diseñada en el problem a 4.5 la optim ización escogida en el problem a 4.6 y calcular la ganancia obtenida.

4.9. Escoger una placa de base actual para PC, d ibu jar la je rarqu ía d e buses q u e incorpora y calcular b s anchos de banda d e los buses m ás im portantes. ¿Q ué buses incorporan técnicas de aum ento de prestaciones d e las estudiadas en este capítulo? ¿Cuáles siguen siendo buses tradicionales?

4.10. Se diseña un R A ID 5 d e 8 discos duros SCSI d e 100 GB cada uno. El tiempo medio hasta el fallo (M ean T im e To Failure, M T T F) de estos discos es d e 1.2 millones d e horas. Además, si un disco falla, la recuperación se puede hacer offline o se puede hacer online.

a) ¿Cuál es el tiempo m edio q u e pasará antes d e q u e uno d e los discos falle y sea necesaria una recuperación?

b) ¿Qué operaciones d e lectura y escritura serán necesarias para realizar esa recuperación? ¿Cuáles d e d ía s pueden realizarse en paralelo?

c) Si el bus es un U ltraSC SI 320 con u n ancho d e banda to ta l d e 320 MB/s, ¿cuánto tiempo tardarán las recuperaciones offline y online? Tener en cuen ta que para la recuperación Onli­ne sólo se de ja un 15% del ancho d e banda to ta l del bus.

d) C alcular el M T D L p a ra la recuperación offline y para la online.

4.11. Escoger una tarjO a gráfica actual y buscar inform ación acerca d e su arquitectura, o í concreto acerca de su G P U y d e su m em oria d e vídeo. ¿Qué técnicas d e diseño d e las aprendidas hasta el m om ento incorpora esta arquitectura? ¿Qué peculiaridades aparecoi en el diseño debido a su aplicación específica?

Page 249: Diseño y Evaluación de Arquitecturas de Computadoras

4 . TÉCNICAS DE A U M E N TO DE PRESTACIONES PARA M E M O R IA Y E/S

AUTOEVALUACIÓN _________________________________________1. ¿Cómo funciona una caché de víctimas? ¿Por qué reduce la penalización por fallo de la

memoria caché?

2. ¿Por qué la mayor parte de las cachés actuales son no bloqueantes?

3. ¿Qué es una caché pseudoasociativa y cómo funciona?

4. ¿Qué alternativas existen para evitar que la traducción de dirección virtual a dirección física afecte negativamente al tiem po de acceso a la memoria caché? ¿Qué ventajas e inconve­nientes tienen cada de una de ellas?

5. ¿Cómo funciona una caché de trazas? ¿Qué aspectos del funcionamiento de la memoria caché ayuda a optimizar?

6. ¿Qué diferencias hay entre una memoria principal entrelazada con 4 bancos y otra con 4 canales de memoria independientes?

7. ¿Por qué en la última generación de consolas algunos procesadores incorporan almacena­miento local en lugar de memoria caché?

8. ¿En qué consiste la señalización diferencial? ¿Por qué permite aumentar el ancho de banda de los buses de E/S?

9. ¿Qué técnicas de aumento de prestaciones para buses incorporan tecnologías como PCI- Express o Hipertransporte?

10. ¿Qué diferencias hay entre un RAID 3 y un RAID 4?

Page 250: Diseño y Evaluación de Arquitecturas de Computadoras
Page 251: Diseño y Evaluación de Arquitecturas de Computadoras

Sistemas multiprocesador y multicomputador

C o n t e n i d o s jX

5.1. C las ificac ión de a rqu itec tu ra s con v a r io s p ro ce sa d o re s5.2. Redes d e n tro de a rqu itec tu ra s de c o m p u ta d o ra s5.3. D iseño de a rqu itec tu ra s de m e m o ria c o m p a rtid a5.4. D iseño de a rqu itec tu ra s de m e m o ria c o m p a rtid a -

d is tr ib u id a5.5. D iseño de a rqu itec tu ra s de m e m o ria d is tr ib u id a

V yv J

Page 252: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

A pesar de las grandes m ejoras q u e se han producido en el rendim iento d e arquitecturas m onoproce- sador gracias a los avances en las tecnologías d e fabricación y a las técnicas de diseño estudiadas en los anteriores capítulos, para algunas aplicaciones el rendim iento obtenido con ellas todavía no es suficiente. Las m ejoras en m icroprocesadores cada vez son m ás sofisticadas, y cad a avance implica crecer en com ­plejidad y consum o d e á rea y potencia (es decir, en coste).

Sin em bargo, se h a producido u n a clara m ejora en el software y en los sistemas operativos que hace más sencillo y económ ico explotar el paralelism o de las aplicaciones cuando se ejecutan sobre varios pro ­cesadores. P or tan to la utilización d e arquitecturas com puestas p o r varios procesadores es una solución sencilla, natural y en general, co n u n a buena relación coste-prestaciones.

En este capítulo se com ienza realizando una clasificación de las arquitecturas com puestas p o r varios procesadores, atendiendo principalm ente a su m odelo d e m em oria (com partida o distribuida). A co n ti­nuación se presentan los conceptos básicos d e redes dentro d e arquitecturas d e com putadoras, ya que la red es d nuevo com ponente q u e aparece en este tipo d e arquitecturas y cuyos aspectos de diseño pueden tener u n a gran influencia en el rendim iento global d e la arquitectura.

Y a continuación se p asa a analizar en profundidad el diseño d e arquitecturas com puestas por m ás de u n procesador, em pleando la clasificación proporcionada al principio del capítulo.

Por lo tan to se estud ian las técnicas y decisiones d e diseño asociadas a las arquitecturas d e m em oria com partida (m ultiprocesadores) y a las d e arquitectura d e m em oria d istribuida (m ulticom putadores). En am bos casos se tom an com o p un to d e p artida los problem as típicos q u e es necesario resolver en cada tipo de arquitectura al incluir m ás d e un procesador y p o r utilizar u n determ inado m odelo d e m em oria, para centrarse en el estudio d e aquéllos q u e pueden ser resueltos desde el propio hardware.

Clasificación de arquitecturas con varios procesadoresH asta aho ra todas las técnicas estudiadas en este libro se han centrado en explotar d paralelism o a

nivel d e instrucción (grano fino) para aum entar el rendim iento d e las arquitecturas con un único proce­sador, d e m anera q u e el propio hardw are detecta instrucdones independientes y planifica su ejecución en paralelo.

í^ ro los sis to n as com puestos p o r varios procesadores explotan el paralelism o a n ivd de proceso (gra­no grueso), a so d ad o a la rep licadón d e los recursos d e cóm puto. En este caso d paralelism o se de tec ta a alto n ivd, por parte del com pilador y d d sistema operativo, aunque tam bién puede program arse d e for­m a explíd ta. A pesar d e esta colaboración del com pilador y del sistem a operativo todavía existen m uchos problem as q u e deben resolverse desde el hardw are y m uchas optim izadones re ladonadas co n su diseño.

Este tipo d e arquitecturas com puestas por varios procesadores se utilizan hoy en d ía en m ultitud de entornos diferentes, desde las aplicaciones d e cálculo científico hasta los servidores d e aplicadones, bases de datos e Internet, pasando p o r d procesam iento d e gráficos y m ultim edia o las aplicadones d e alta disponibilidad.

R ira estudiar las diferentes alternativas d e diseño en d caso d e arquitecturas paralelas, existen d istin ­tas clasificaciones. L a clásica es la taxonom ía d e Flynn, q u e distingue en tre cuatro categorías de a rq u i­tecturas atendiendo a su explotación del parald ism o de datos y del paralelism o funcional: SISD (Single Instruction Single D ata), S IM D (Single Instruction M últiple D ata), M ISD (M últiple Instruction Single data) y M IM D (M últiple Instruction M últiple D ata).

Sin em bargo en este libro se utiliza la clasificación que atiende al diseño de la je rarqu ía de m em oria del sistema. Según esta clarificación se pueden d iseñar arquitecturas d e m em oria com partida, com par- tida-distribuida o distribuida. Pero adem ás hoy en d ía se debe distinguir en esta clasificación en tre las arquitecturas tradicionales y las arquitecturas on-chip, a i las q u e a pesar d e tener varios procesadores, no es dentro d e u n sistema d e gran tam año sino d e un único chip o em paquetado q u e integra todos los com ponentes d e la arquitectura.

m

Page 253: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

5.1.1. Arquitecturas de memoria compartida

En este caso la arquitectura está com puesta p o r un conjunto d e procesadores (casi siempre hom ogé­neos) q u e com parten u n a única m em oria centralizada, norm alm ente la m em oria principal.

En este tipo d e diseño el espacio de direcciones físicas es global: todos los nodos tienen u n a visión de la m em oria simétrica. P or ello estas arquitecturas suelen denom inarse m ultiprocesadores o arqu itectu ­ras SM P (Sym m etric M ultiProcessing). Además, com o los tiem pos d e acceso a todas las direcciones de m onoria son uniformes, es decir, siempre se ta rd a lo mismo en realizar un acceso a m em oria principal, también pueden denom inarse arquitecturas U M A (U niform M em ory Access). A veces tam bién se d e ­nom inan sistemas fuertem ente acoplados, ya q u e todos los procesadores com parten un com ponente tan crítico com o la m em oria principal.

Los d iferoites procesadores y m ódulos d e memoria se interconectan a través d e un bus o red d e medio com partido. D e la misma form a, los mecanismos d e E/S tam bién suden ser com partidos y se encuentran conectados a este bus (figura 5.1). Los procesos que se ejecutan o í para ldo en los diferoites procesadores que com ponen la arquitectura se sincronizan y com unican a través de la m em oria com partida e interactúan mediante variables com partidas. Es decir, la com unicación en tre procesos es im plíd ta y se realiza con ins­trucciones d e load y store (leyendo y escribioido variables com partidas en la m em oria centralizada).

G racias a este tipo de com unicación en tre procesos, la program ación d e estos sis to n as es m uy sim i­lar a la d e sistonas m onoprocesador, lo que suele suponer u n a gran ventaja. Además, la com unicación im plíd ta en tre procesos a través de la m em oria, ah o rra la sobrecarga o í la red de com unicadones d e la arquitectura. Esto hace q u e los desarrolladores se to ig an que cen tra r sólo en el acceso a recursos críticos (m em oria y E/S, ya q u e son los recursos com partidos) para optim izar el rendim iento d e sus códigos.

Como se estud iará m ás adelante o í profundidad (sección 5.3), la com partidón de la m em oria princi­pal conlleva siempre la aparición d e tres problem as que deben resolverse p a ra el correcto fundonam iento de la arquitectura: la coherencia, la consistenda y la sincronización. Pero estos tres problem as que p re­senta la com partición d e la m em oria pueden ser resueltos o bien por el sistem a operativo, el com pilador o la p rogram ación explícita (consistencia y sincronización) o bien p o r el propio hardw are (coherencia).

M e m o ria fe S í i íd ENTR ADA/P rinc ipa l \T<**o l S A L ID A

F ig u r a 5 .1

A rq u ite c tu ra d e m e m o r ia c o m p a rtid a .

Aunque en las arquitecturas de m em oria com partida suelen utilizarse cachés m uy optim izadas para minimizar la tasa d e fallos y así reducir d tráfico en el bus com partido y satisfacer las dem andas de los procesadores, el principal problem a que suelen presentar estos diseños está en su baja escalabilidad. El bus com partido tiene un ancho de banda limitado y se sude convertir en u n cuello d e bo td la . Además contri­

Page 254: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

buyen a esta baja escalabilidad los problem as d e contención p o r los recursos com partidos, am bos críticos, la m em oria y la E/S. Para m ejorar la escalabilidad d e este tipo d e arquitecturas casi todos los esfuerzos se centran a i m ejorar la jerarquía de memoria, para evitar los accesos a la m onoria principal com partida, y 01 m ejorar el rendimiento d d bus com partido, tan to su la to id a com o su ancho d e banda.

Aún así en m uchos casos es necesario diseñar arquitecturas d e m em oria com partida-distribuida para superar esta lim itación en la escalabilidad.

N o d o de

F ig u r a 5 .2

A rq u ite c tu ra d e m e m o r ia c o m p a r t id a -d is tr ib u id a .

5.1.2. Arquitecturas de memoria compartida-distribuida

En este tipo d e arquitectura cada nodo es un procesador con su propia m em oria prindpal y sus propios mecanismos de E/S. Los nodos trabajan independientemente pero están conectados m ediante una red de comunicaciones que les permite intercam biar in form adón mediante paso de mensajes (figura 5.2).

Sin em bargo existe un único espacio d e direcciones d e memoria, es decir, la m ism a d irecdón física en dos nodos del sistem a corresponde a la m ism a ubicación d e m o n o ria principal. P or lo tanto, se d istribu­ye estáticam ente en tre m em orias principales físicam ente diferentes un único espado de direcciones, de m anera q u e a cada m em oria principal d e cad a nodo le corresponde alm acenar u n a parte d e este espacio único y global d e m em oria.

Desde el punto d e vista del program ador la m em oria es com partida y cualquier procesador puede acceder a cualquier posidón d e m em oria m ediante u n a instrucción d e load o s to re Por lo tanto, para u ti­lizar u n sistem a d e este tipo tio ie q u e haber u n a capa d e middleware en tre las aplicaciones y el hardw are que haga que la distribución física d e la m em oria sea transparente a los usuarios.

En este caso las arquitecturas suele denom inarse N U M A (N on U niform M o n o ry Access) ya que d tiempo d e acceso a m em oria p rin d p a l no es siempre el mismo, depende d e la ub icadón del dato . U n acceso a m o n o ria puede ser:

Page 255: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

• Local. A la m em oria principal del propio nodo.• Remoto. A la m em oria principal de o tro nodo, p o r lo tan to el load o el store tiene que ser traduci­

do a un mensaje d e petición p o r la red, para acceder a la m em oria rem ota en la que se encuentra alm acenado el dato.

Como se puede observar, la com unicación entre procesos es implícita, a través del espacio d e direc­ciones d e m em oria com partido. A unque en realidad las operaciones de carga/alm acenam iento pueden implicar un intercam bio d e mensajes en tre dos procesadores, com o se h a m encionado este proceso es transparente a los program adores y usuarios y es realizado p o r algún tipo d e middleware.

Con este tipo de arquitectura se in tentan m antener las ventajas d e las arquitecturas d e m em oria com partida, especialmente, el hecho d e q u e la program ación d e estos sistemas sea m uy sim ilar a la de sistemas m onoprocesador. Sin em bargo, tam bién se in ten ta superar su principal inconveniente, la baja escalabilidad. Al d istribu ir físicamente la m em oria en tre diferentes nodos y al utilizar u n a red q u e no esté basada en m edio com partido , e s ta desventaja desaparece casi p o r com pleto.

Los grandes retos en este tipo d e arquitectura agüen siendo la resolución de los problem as d e co ­herencia, consistencia y sincronización (que aparecen debido a la com partición d e u n único espacio de direcciones) y el desarrollo del middleware que gestione las m em orias físicam ente d istribuidas com o si se tra tara d e una única m em oria principal. Tam bién existe un reto im portan te relacionado con m inim izar los efectos que la latencia d e la red d e com unicaciones añade a los accesos a m em oria rem otos.

5.1.3. Arquitecturas de memoria distribuida

En este tipo d e arquitecturas d e nuevo cada nodo es un procesador con su propia m em oria principal y sus propios m ecanism os d e E/S. L os nodos trabajan independientem ente pero están conectados m ediante una red d e com unicaciones que les perm ite intercam biar inform ación m ediante paso d e mensajes (figu­ra 5.3). A veces se denom inan sistem as o arquitecturas débilm ente acopladas.

N o d o de

A rq u ite c tu ra d e m e m o r ia d is tr ib u id a .

Page 256: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

f tro , 01 d caso d e la m o n o n a distribuida com pletam oite, la m em oria p rindpa l se encuentra d iv i­dida, física y lógicamente en espacios d e direcciones físicas independientes. Es decir, la m ism a dirección física d e m em oria en diferentes procesadores hace referencia a d istin tas ubicaciones físicas, cada una d o itro d e la m em oria p rindpa l local d e cad a nodo.

Como cada procesador puede acceder únicam ente a su espacio de d irecdones local, la com unicación o itre procesos debe ser explícita m ediante paso d e mensajes.

En este tipo d e arquitecturas es habitual que los nodos q u e com ponen el sistema sean heterogéneos o terminen siéndolo. Estas arquitecturas suelen denom inarse m ulticom putadores, para d a r u n a idea d e que están com puestas p o r com putadoras com pletas e independientes que trabajan conjuntam ente para resol­ver un único problema. Com o se verá en secciones posteriores, d e nuevo será necesario u n middleware en ­tre las aplicadones y el hardware q u e perm ita utilizar una arquitectura de este tipo com o un único sistema y no com o nodos independientes que simplemente están conectados por u n a red de comunicaciones.

Las principales ventajas de las arquitecturas d e m a n o ria d istribuida son su escalabilidad y d uso de com unicación explíd ta, en muchos casos, m ucho m ás fád l d e com prender y d epurar (aunque d modelo de p rog ram adón es com pletam ente diferente que el d e sistem as m onoprocesador y la transform ación de los códigos para su ejecución no es obvia). E n este caso, los desarrollad ores se deben cen tra r sólo en el patrón d e com unicaciones d e las aplicaciones para optim izar el rendim iento d e sus ejecuciones.

Además, el hardw are de estas arquitecturas es m ás sencillo, elim inando la necesidad d e resolver los problem as d e coherenda d e caché. L os problem as de sincronización y de consistencia tam poco aparecen a i este tipo d e arquitectura, ya que no se com parte ni la m em oria n i su e spado de direcdones.

Sin em bargo, aparecen otros problem as nuevos que sí es necesario resolver, en concreto, hay que tener en cuenta que la com unicadón en tre procesos introduce una m ayor complejidad en la program ación y que además introduce u n a la tenda d e com unicaciones que puede llegar a ser im portante. Por últim o, mencio­nar que habrá que disponer d e mecanismos que perm itan a los usuarios tener u n a imagen d e sistema único o repartir d trabajo entre los nodos que com ponen d sistema, por poner sólo algunos ejemplos.

5.1.4. Arquitecturas on-chip de memoria compartida

Las espectaculares m ejoras en la tecnología d e fabricación d e procesadores han hecho que, a i lugar de aprovechar el increm ento en la densidad d e in tegradón d e transistores para im plem oitar nuevas téc­nicas de aum ento d e prestaciones en sistemas m onoprocesador, se haya aprovechado directam ente para integrar varios núcleos de procesador d o itro de u n único chip. Es decir, p a ra d iseñar m ultiprocesadores on-chip (M PoC, M ultiProcessor on Chip) o s is tan as com pletos on-chip (SoC, System on Chip).

Aunque no es objeto de este libro en tra r a i las particularidades d e diseño d e este tipo d e arquitectura, que son muchas, sí que tratarem os d e estud iar los aspectos com unes con las arquitecturas tradicionales.

En d caso d e las arquitecturas on-chip d e m em oria com partida, todo lo explicado en la sección 5.1.1 es válido. Es decir, la com un icadón en tre procesadores es im plícita a través d e la m em oria com partida y esta com partición hace que aparezcan los problem as de coherenda, consistencia y sincronización ya m oicionados.

Sí que cabe m encionar d o s particularidades d e las arquitecturas d e m em oria com partida on-chip. La prim era es que en este tipo de arquitecturas no siempre se com parte la m em oria principal, en algunos casos se com parte algún nivel d e m em oria caché D ep o id io id o d e la filosofía d e diseño del fabricante se com partirá u n nivel m ás cercano o m ás lejano al procesador, pero norm alm ente el nivel que se com parte es el segundo o el tercero de caché.

La segunda, es que en d caso de arquitecturas on-chip d e m em oria com partida puede aparecer he­terogeneidad co n m ás facilidad q u e las arquitecturas tradicionales. Hay q u e tener en cuen ta que existen diferentes m aneras d e d iseñar m ultiprocesadores on-chip:

• Incluyendo a i u n chip los recursos de dos o m ás procesadores d e m anera q u e estos sean indistin­guibles.

Page 257: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

• Integrando dos o m ás núcleos d e procesador independientes en el mismo chip.• Em paquetando ju n to s d o s o m ás procesadores.

Estas tres form as de diseño perm iten variar con cierta facilidad las características d e alguno d e los nú­cleos del m ultiprocesador a se considera conveniente p ara aum entar sus prestaciones. L os posibles proble­mas introducidos p o r la heterogeneidad quedan minimizados al estar todos los recursos integrados en un mismo chip (o em paquetado), por lo que se pueden asum ir mejor que en las arquitecturas tradicionales.

En las figuras 5.4 y 5.5 se observan las arquitecturas on-chip d e m em oria com partida m ás comunes. Aunque los prim eros diseños fueron homogéneos, este tipo d e diseño obliga a decidir si incluir en la ar­quitectura un número reducido de núdeos d e procesador com plejos o u n número considerable d e núcleos de procesador m ás sencillos.

F ig u r a 5 .4

A rq u ite c tu ra s o n -c h ip d e m e m o r ia c o m p a r t id a (I).

N ú c le o de p ro ce sa d o r

c o m p le jo

Núcleoprocesador

sencillo

Núcleoprocesador

sencillo

P ro c e s a d o r de p r o p ó s ito e s p e c íf ic o

F ig u r a 5 .5

A rq u ite c tu ra s o n -c h ip d e m e m o r ia c o m p a r t id a (II).

Page 258: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En el prim er caso, d rendim iento de la arquitectura será alto cuando las aplicaciones que se ejecuten en d ía sean poco paralelizables. Sin em bargo, en d caso d e aplicaciones en las que sea m ás sendllo ex­plotar el paralelismo, un número d e núcleos mayor, aunque sean m ás sencillos, perm itirá aprovechar este paralelism o mucho mejor.

Para evitar tom ar esta decisión, se com ienzan a proponer diseños en los q u e se incluye un núcleo m ás complejo y tan tos núcleos sencillos com o sea posible. D e esta form a, d núcleo com plejo será el encargado de ejecutar las aplicaciones poco paralelizables y d e repartir el trabajo en tre el resto d e los núcleos cuando las aplicadones presenten un grado d e paralelism o mayor. E ste núcleo actúa por tan to d e m aestro, cen­tralizando el control d e la ejecudón d e las aplicaciones, y su d e ser el q u e ejecuta el sistem a operativo.

D e hecho, u n a vez que se introduce heterogenddad en los d isd ios, d siguiente paso es incluir núcleos de procesador de fundonalidad específica q u e perm itan acelerar la ejecución d e aplicaciones concretas. Es habitual incluir núcleos SIM D (vectoriales) o d e tipo D SP para acelerar las aplicadones gráficas, de tratam iento d e señal, etc.

D i los últim os diseños d e arquitecturas on-chip d e m em oria com partida, adem ás d e incluir este tipo de núcleos, se h a com enzado a prescindir d e la je rarqu ía de m em oria tradicional. En estas propuestas, d núcleo d e propósito general m ás complejo, d q u e actúa com o m aestro, sí q u e suele incorporar uno o varios niveles d e m o n o ria caché. Sin em bargo, los núcleos de propósito general m ás sencillos o los de propósito específico, trabajan con los alm acenam ientos locales descritos en d capítulo 4 (sección 4.3.2). Estos alm acenam ientos restan com plejidad al diseño, evitando toda la gestión asociada a una m em oria caché, y norm alm ente se utilizan para simplificar la a rqu itectura y reducir el consum o d e potencia.

Obviamente, y com o ya se h a discutido previamente, la sim plificadón del hardw are conlleva un au ­mento de responsabilidad p a ra el desarrollador, el com pilador y d sistem a operativo, q u e en este caso d e ­ben asum ir la responsabilidad d e llevar desde la m em oria com partida h asta los alm acenam ientos locales m ediante técnicas d e D M A los datos q u e cad a núcleo d e procesador necesita en cad a m om ento.

5.1.5. Arquitecturas on-chip de memoria distribuida

Al igual q u e ocurre en el caso d e las arquitecturas tradicionales, la existencia d e un bus y d e u n nivel de la je rarqu ía de m em oria q u e es com partido , lim ita la escalabilidad d e las arquitecturas d e m em oria com partida.

Por eso aparecen, tam bién en arquitecturas on-chip, los diseños de m em oria d istribuida (figura 5.6). Las características son las m ism as q u e en el caso d e las arquitecturas tradicionales: com unicación explí­cita en tre procesos a través d e paso de m ensajes y problem a d e equilibrio d e carga.

La carencia d e imagen de sistema único no es un problem a en este caso, ya que todos los núcleos de procesador e incluso la red, se encuentran en d mismo chip o em paquetado, p o r lo q u e aparecen siempre como un sistem a único para el sistem a operativo, el com pilador y el program ador.

En el caso de este tipo d e arquitecturas, los núcleos d e procesador pueden ser hom ogéneos o hetero­géneos, de propósito general o d e propósito específico, pero prácticam ente en todos los casos incorporan una jerarqu ía d e m em oria tradicional. A dem ás d e d iseñar estos núcleos, será necesario d iseñar una red com pleta en el chip (NetW ork O n Chip, N oC ) y u n protocolo d e paso d e mensajes a so d ad o que perm ita la com unicación en tre ellos (figura 5.6).

Redes dentro de arquitecturas de computadorasEn las arquitecturas paralelas com puestas p o r varios procesadores aparece un nuevo com ponente

(además d d procesador, la je rarqu ía d e m em oria y d sistema d e E/S) cuyas decisiones de diseño afectarán al rendim iento global del sistema: la red de interconexión. E sta red puede ser de á rea extensa (W AN), de área local (LA N ) o d e área d e sistem a (SAN) dependiendo del tipo d e arquitectura.

E 9

Page 259: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

N ú c le o d e p r o c e s a d o r c o m p le jo

P r in c i

N ú c le o d e p r o c e s a d o r a > m p le jo

P r in c i

N ú c le o d e p r o c e s a d o r

c o m p le jo

P r in c i

N ú c le o d e p r o c e s a d o r

c o m p le jo

M e m o r ia[P r in c ip a l

N ú c le o d e p ro c e s a d o r c o m p le jo

M e m o r iaP r in c ip a l

M e m o r ia I P r in c ip a l

M e m o r iaP r in c ip ia !

M e m o r ia P rin c ip > a I

F ig u r a 5 .6

A rq u ite c tu ra s o n -c h ip d e m e m o r ia d is tr ib u id a .

Aunque los conceptos fundam entales d e redes de com putadoras escapan d d alcance d e este libro, sí q u e es im portante analizar brevem ente los aspectos m ás relacionados co n las arquitecturas d e com ­putadoras que incorporan redes en su interior y con su rendim iento. Es decir, los aspectos rdacionados con la topología d e las redes y con las técnicas de co n m utadón , encam inam iento y control d e flujo que utilizan.

Y tam bién con las p restadones d e las redes, q u e d e nuevo se pueden cuantificar (po r lo m enos las prestadones extrem o a extremo) con las m étricas que ya se han em pleado p a ra la m o n o ria y p ara d sis­tem a d e E/S en capítulos anteriores d e este libro: la latencia y el ancho d e banda.

En el caso d e la red, la la ten d a se define com o el tiempo to ta l de com unicación, es decir, el tiempo que ta rd a en transferirse un mensaje com pleto por la red. Casi siempre se utilizan mensajes pequeños para caracterizar esta latencia (unos pocos bytes), pero en la literatura especializada se pueden encon trar m ultitud d e definiciones diferentes d e esta la ten d a q u e pueden tener en cuen ta diferentes aspectos de rendimiento d e la red de com unicadones. Igual que se pueden encon trar definiciones p ara o tras m étricas algo m ás com plejas com o puedan ser la escalabilidad d e la red, su disponibilidad, su calidad de servicio o su efidencia.

En cuan to al ancho de b an d a de la red, se define com o el número d e bytes que es capaz de transm itir la red p o r unidad d e tiem po, al igual q u e se definía el ancho d e banda d e un bus.

En la figura 5.7 se observan los niveles de transferencia d e inform ación en cualquier arquitectura paralela. L a red d e interconexión debe proporcionar los m ecanismos que perm itan trasm itir inform ación entre los nodos que form an la arquitectura. En general, se denom ina mensaje a la unidad de inform ación

Page 260: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

MENSAJE NODON O D O

INTERFAZHW

INTERFAZHW

P A Q U E T E

N IV E L D E E N C A M IN A M IE N T O

N IV E L D E C O N M U T A C IO N

Red d e . In te rc o n e x ió n

n r u t a m ie n t o y a r b i t r a je

m u t a d o r

N IV E L F ÍS IC OE n r u ta d o r

C o la d e s a l id a d e m e n s a je s

F ig u r a 5 .7

N iv e le s d e t ra n s fe re n c ia d e in fo rm a c ió n en u n a re d d e in te rc o n e x ió n .

que intercam bian estos nodos. Es necesario, com o mínim o, un interfaz hardw are d e red q u e perm ita el acceso d e cada nodo a la red d e interconexión.

Este interfaz de red puede ubicarse en d istin tos lugares dentro de la arquitectura, dependiendo del diseño concreto del que se tra te en cad a caso. Puede e s ta r integrado ju n to con el procesador, ju n to con la m em oria caché, puede conectarse a la m em oria principal de m anera sim ilar a com o lo hace la ta rje ta gráfica o puede conectarse com o otro dispositivo periférico a través d e algún bus d e expansión.

En cualquier caso, la transferencia d e un mensaje, en la mayor pa rte d e los casos, requerirá q u e los interfaces d e red generen m ás de una transferencia d e inform ación y se suele denom inar paquete a la un i­dad d e transferencia d e inform ación en tre interfaces. E stos paquetes tienen tam años m uy variables que van desde unos pocos bytes hasta los kilobytes.

En general, d interfaz d e red es el encargado d e d a r form ato a estos paquetes, realizar el contro l de flujo y proporcionar m ecanismos d e direccionam iento dentro d e la red (para que pueda especificarse el nodo origen y el nodo destino d e cualquier com unicación). Tam bién se responsabiliza del alm acenam ien­to tem poral d e datos, tan to d e en trad a com o d e salida y en algunos casos, de realizar tareas de encam i­namiento.

Aunque son los en ru tadores (switches) los q u e perm iten q u e los paquetes d e inform ación lleguen des­de el origen hasta el destino siguiendo un cam ino o secuencia de enlaces y enrutadores. P ara cada paquete que llegue por alguna de sus entradas, el en ru tado r decide el canal de salida por el q u e se debe reenviar para que alcance su destino. C ada en trad a y cad a salida d d en ru tado r su d e tener asignado un espacio de alm acenam iento (buffer) que perm ita g u ard a r tem poralm ente la inform ación q u e se está enrutando.

Los enlaces proporcionan conexiones punto a p un to para com unicar en ru tadores en tre sí o en ru ta ­dores con interfaces d e red. C uando se utiliza el térm ino canal, su d e referirse al conjunto form ado por

Page 261: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

un enlace, los controladores d e este enlace a i d origen y en el destino y los recursos de alm acenam iento asociados a dicho o ilace en am bos extremos.

La unidad de inform ación que se transfiere por un canal en tre dos conm utadores se d o io m in a F lit (FLow control unIT) y suele estar form ada p o r unos pocos bytes d e inform ación (hasta 32 o 64 bytes como mucho). P or últim o, la unidad d e inform ación q u e se transfiere por un enlace físico en cada ciclo de red (la unidad m ínim a d e inform ación para la red de interconexión, ya no se puede dividir más) es el Phit (PHysical unIT). En este caso se tra ta d e unos pocos b its d e inform ación (no m ás de 128 bits).

5.2.1. Topología

En una arquitectura d e m em oria com partida, u n nodo es u n procesador con uno o varios niveles de m o n o n a caché. El m ensaje q u e un nodo le envía a otro es la consecuencia d e un acceso a m em oria y es la propia m em oria la que actúa com o red d e interconexión, p o r lo que los controladores d e m a n o ria integran a los interfaces d e red.

La red d e interconexión es transparen te al program ador ya q u e la com unicación en tre d o s procesos se realiza con una escritura en m a n o ria (store) seguida de una lectura de m em oria (load). Para que la com unicación tenga lugar d e m anera correcta es necesario solucionar de m anera explícita el problem a de la sincronización com o se estud iará en secciones posteriores, es decir, hay que garan tizar q u e la lectura tiene lugar después d e la escritura.

En el extrem o contrario están las arquitecturas de m em oria distribuida, en las q u e cada nodo consta de un procesador co n uno o varios niveles d e m em oria caché, m em oria principal y m ecanismos d e E/S, incluida una tarje ta d e red q u e actúa com o interfaz d e red. En este caso se utilizan funciones explícitas de send y receive para la com unicación en tre procesos, y com o todo el proceso d e com unicación es bastante más com plejo q u e en el caso d e las arquitecturas d e m em oria com partida, su d e ser necesaria u n a capa software a i d interfaz d e comunicaciones. C on las arquitecturas de m em oria com partid a-distribuid a ocurre lo mismo, y adem ás es necesario u n m iddleware q u e traduzca las instrucciones load y store a los send y recave necesarios, de m anera transparen te al usuario.

Como se puede observar, aunque existen aspectos com unes en las redes d e interconexión los d istin tos tipos de arquitectura, existen o tros m uchos e lo nen tos d iferendadores q u e se m aterializan, a i prim er lugar, en el tipo d e topología d e red q u e se utiliza en cad a caso.

Esta topología determ ina la estructu ra física d e las interconexiones que com ponen la red. N orm al- m a ite se representa m ediante u n grafo en el que los vértices son o iru tad o res o interfaces d e red y las aristas son los enlaces en tre enru tadores o en tre enru tadores e interfaces.

Cuando en este grafo se observa u n patrón que se repite, las redes su d en d o iom inarse regulares, m ientras que si e n este grafo no se puede reconocer ningún patrón repetitivo, las redes suelen denom inar- se irregulares.

Esta clasificación no suele ser m uy relevante hoy en d ía , sin em bargo, existe o tra clasificación que es mucho m ás significativa desde el punto d e vista d e la arquitectura d e com putadoras. L as redes pueden clasificarse en estáticas y dinám icas.

5 .2 .1 .1 . R e d e s e s t á t i c a s

También denom inadas redes directas. E n este caso los o iru tad o res están fuertem ente acoplados a los nodos de cóm puto , d e m anera q u e la red está form ada p o r conexiones directas punto a punto en tre los nodos (figura 5.8). En los grafos q u e representan este tipo de topologías, los vértices represo ltan a los en ­rutadores, incluidos den tro d e los propios nodos d e cóm puto. O bviam ente a i este tipo d e red la conexión de un nodo a un en ru tado r suele ser mucho m ás rápida que u n a conexión en tre o iru tadores, ya q u e en el prim er caso se tra ta d e u n a conexión local.

Estas redes son costosas y poco escalables, pero se pueden encontrar, en casos m uy concretos, tan to a i arquitecturas d e m em oria com partida com o en arquitecturas d e m em oria distribuida.

Page 262: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

LINEAL

ÁRBOL

Enrutador

N odo de cóm puto

ESTRELLA

ANILLOMALLA

F ig u r a 5 .8

E je m p lo s d e re d e s e s tá ticas .

5 .2 .1 .2 . R e d e s d i n á m i c a s

Los enru tadores son dispositivos independientes d e los nodos d e cóm puto, por lo que las conexiones ya no son punto a punto. U n en ru tado r puede estar conectado a uno o varios nodos d e cóm puto y a uno o varios enrutadores. En este caso, las conexiones n odo-enru tador presentan unas prestaciones muy similares a las conexiones enrutador-enrutador. C ada en ru tado r puede com unicar según d m om ento, a dos nodos d e cóm puto diferentes.

Estas redes se subdividen a su vez en otros dos tipos:

1. Redes de medio compartido o buses

Se tra ta d e redes en las q u e hay u n único e n ru tad o r in terno basado en un m edio com partido por todos los nodos conectados a la red. Sólo un nodo puede u tilizar la red en un m om ento d ad o para transm itir inform ación, es decir, no se pueden im plem entar con estas redes m últiples conexiones uno- a-uno sim ultáneas. Sin em bargo es m uy fácil realizar difusiones d e inform ación a m últiples nodos, ya qu e al tra tarse d e un m edio com partido , to dos los n odos tienen acceso a su con ten ido en u n m om ento dado.

U n aspecto m uy im portan te en este tipo d e redes es la estrategia d e arbitraje que determ ina cóm o se resuelven los conflictos d e acceso al medio. La solución m ás sencilla es utilizar técnicas basadas en con tendón , es ded r, en que los nodos com pitan para tener d acceso exclusivo al bus. D ebido a la com par- tid ó n del medio todos los nodos pueden m onitorizar el estado d d bus y detec tar colisiones (á tu ad o n es

Page 263: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

en las q u e dos o m ás nodos estén usando el bus al mismo tiem po). C uando se detecta u n a colisión, los dispositivos causantes d e la m ism a abortan la transm isión para in ten tarla posteriorm ente.

Esta solución es sencilla pero no es determ inista, ya que no se puede predecir cuán to debe esperar un nodo para ganar d acceso al bus. Por lo tan to , el bus d e contención no es el idóneo para soportar aplicaciones de tiem po real, por ejemplo. P ara d im in a r el com portam iento no determ inista, aparece un enfoque alternativo que im plica pasar un testigo (token) en tre los nodos, d e m anera q u e el dispositivo que tiene en su poder d testigo tiene el acceso al bus. C uando term ina d e transm itir sus datos, el testigo se pasa al siguiente dispositivo según algún esquem a de prioridades predeterm inado. A cotando el tiempo máximo de posesión d d testigo, sí qu e se puede saber el tiem po q u e u n nodo deberá esperar com o m áxi­mo p a ra conseguir el acceso al bus.

Sea cual sea la solución escogida para el arbitraje, este tipo d e redes suelen presen tar problem as de escalabilidad. A dem ás suelen lim itar el número d e nodos q u e pueden conectarse a d ía s y la d istancia a la que pueden e s ta r estos dispositivos.

Sin em bargo, son redes d e bajo coste que se utilizan casi siempre en las arquitecturas d e m em oria com partida, p o r lo q u e se han propuesto algunas soluciones com o las redes m ultibus (existen varios medios com partidos al m ismo nivel y todos los nodos se conectan a todos ellos, de m anera q u e pueden utilizar el que esté libre en cad a m om ento) o las redes jerárquicas (tam bién basadas en la u tilizadón de varios medios com partidos, pero no todos al mismo nivel de prioridad).

2. Redes conmutadas o indirectas

En este caso no existe un m edio com partido, sino q u e los enrutadores que form an la red perm iten que la inform ación llegue del origen al destino. Son las redes típicas en arquitecturas de m em oria d istribuida y d e nuevo existe una clasificadón q u e distingue en tre d o s tipos d e redes:

• Redes Monoetapa. Se pueden conectar dos nodos cualesquiera con un único salto. Suelen denom i­narse redes crossbar o d e barras cruzadas, y son m uy eficientes pero tam bién m uy caras. Permiten que cualquier nodo se com unique con otro en una única e tap a y q u e existan conexiones sim ultá­neas uno-a-uno siempre y cuando no sean co n el mismo nodo destino (figura 5.9). Es decir, un nodo origen puede conectarse siempre con un nodo destino libre ya q u e cada pareja origen/destino tiene su propio cam ino independiente en la red.

F ig u r a 5 .9

Red c o n m u ta d a m o n o e ta p a : b a rra s c ruza d a s .

Page 264: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

• Redes Multietapa (M IN o Multistage Interconnection Network). Si no se puede garantizar la an te ­rior condición, para llegar d e un nodo a o tro puede q u e sea necesario m ás d e un salto en tre enru- tadores. En este caso hay d o s posibilidades:

— Redes Bloqueantes. N o siempre es posible establecer u n a conexión entre u n origen y u n destino que estén libres ya que se com parten conexiones (figura 5.10). N orm alm ente hay un único ca ­mino posible p a ra llegar d e un nodo origen a otro destino (de esta form a se m inim iza el número de en ru tadores y d e etapas en la red), po r lo q u e si alguno d e los enlaces q u e hay que atravesar está ocupado, no será posible establecer la conexión. Las redes m ás conocidas d e este tipo son las om ega y las d e m ariposa.

Bloqueo

Enrutador

F ig u r a 5 .1 0

R ed c o n m u ta d a m u lt ie ta p a b lo q u e a n te .

Redes N o Bloqueantes. C ualquier origen puede conectarse con cualquier destino libre sin que esto afecte a o tras conexiones q u e puedan establecerse a continuación (figura 5.11). Es decir, se com porta d e m anera sim ilar a u n a red crossbar (perm ite cualquier com binación origen/des­tino) pero sin garan tizar q u e la conexión pueda realizarse sólo con u n salto, por lo tanto, con una latencia mayor. Las redes d e este tipo m ás conocidas son las de Clos.

R ed c o n m u ta d a m u lt ie ta p a n o b lo q u e a n te .

Page 265: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

5.2.2. Técnicas de conmutación

Estas técnicas determ inan cóm o se transm iten los da to s p o r la red desde el nodo origen hasta d nodo destino, y tienen u n a gran influencia en las prestaciones d e la red. D e hedió , puede d ed rse q u e en la ac­tualidad, es el aspecto d e los analizados en esta sección 5.2 que m ás repercute en d rendim iento d e la red, ya q u e estas técnicas determ inan d tam año de la unidad d e in fo rm adón que se asigna a los bufíers d e los enrutadores así com o d tam año d e la unidad q u e se transfiere en tre interfaces d e red.

5 .2 .2 .1 . C o n m u t a c i ó n d e c i r c u i t o s

Con esta técnica se reserva d cam ino com pleto desde el origen h asta el destino antes d e com enzar la transferencia d e inform ación. Para d io , d interfaz origen envía una sonda (con tam año d e flit) con la inform ación d e encam inam iento que necesitan conocer los enrutadores.

Cuando la sonda llega al destino queda establecido un cam ino form ado por un circuito d e com uni­cad ó n continuo. El destino envía u n a señal d e reconocim iento a la fuente si tiene suficiente espacio para alm acenar los d a to s que se le van a enviar. E n cuanto d origen recibe la señal d e reconocim iento em pieza la transferencia.

Es m uy im portante com prender que con esta técnica todos los enlaces que com ponen el cam ino están reservados d u ran te la transferencia com pleta, y que dado el coste que supone hacer esta reserva, siempre se transfiere el mensaje com pleto. Existen d o s m ecanism os para liberar el d rcu ito reservado:

• La cola del m ensaje va liberando los enlaces q u e lo constitu ían .• Lo libera el destino enviando u n a señal d e reconocim iento cuando finaliza la transferencia.

Esta técnica d e conm utación es muy fiable, su latencia es prácticam ente constan te y adem ás no es necesario alm acenar inform ación en los en ru tadores q u e com ponen el cam ino.

J^ro pueden aparecer situadones de interbloqueo debido a la necesidad d e reservar los circuitos an ­tes d e com enzar con las transferencias d e inform ación (figura 5.12). Por ello se utiliza bastan te poco en diseños reales.

S in in te rb lo q u e o C on in te rb lo q u e o1-> 2 1—>2

3 -> 4 A -> B C -»D

F ig u r a 5 .1 2

C o n m u ta c ió n d e c irc u ito s . E je m p lo s s in y c o n in te rb lo q u e o .

Page 266: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

S . 2 . 2 . 2 . C o n m u t a c i ó n d e p a q u e t e s

Esta técnica tam bién se denom ina d e alm acenam iento y reenvío, porque en ella cada en ru tado r recibe un paquete d e inform ación com pleto y lo alm acena, antes d e ejecutar el algoritm o d e encam inam iento que le indicará cuál debe ser el siguiente salto del paquete p o r la red (figura 5.13).

Sin ¡nterbloqueo

I—k-l—i-\—U —\-á—14—I

H a s n e o

1 \n n n n n ICon ¡nterbloqueo

1—> 2

3~>4 A -»B C->D

F ig ura 5 .13

C o n m u ta c ió n d e p a q u e te s . E je m p lo s s in y c o n ¡n te rb lo q u e o .

Por lo tan to , el mensaje se divide en paquetes de u n tam año máximo establecido en el interfaz d e red d d nodo origen. En cada enru tador, una vez ejecutado d algoritm o d e encam inam iento, todo el paquete se reenvía al siguiente enru tador. Así que se asigna buffer y canal a un paquete y en un m om ento dado un paquete sólo ocupa u n canal, no reserva ningún enlace.

Como cada paquete se transfiere d e m anera independiente desde d origen hasta el destino, el interfaz destino debe ser capaz d e reconstru ir la inform ación original reensam blando tod o s los paquetes q u e le llegan, probablemente, desordenados.

Con esta técnica se evitan m uchas situaciones d e interbloqueo, pero pueden seguir produciéndose por falta d e espacio en los en ru tadores p a ra alm acenar los paquetes (figura 5.13). En general, el tam año de los paquetes debe ser el m enor posible p a ra que no se exija u n a gran cap ad d ad d e alm acenam iento a los enrutadores, sin influir negativam ente en la latencia de comunicaciones. E sta técnica d e co n m u tad ó n se utiliza norm alm ente en redes L A N y SAN p a ra arquitecturas d e tipo cluster (m o n o ria distribuida).

5 .2 .2 .3 . C o n m u t a c i ó n v i r t u a l c u t - t h r o u g h

Se tra ta de una solución interm edia en tre las dos técnicas clásicas explicadas co n anterioridad, co n ­m utadón d e circuitos y d e paquetes.

De hecho, funciona com o la conm utadón d e paquetes pero permite que los paquetes avancen mientras los enlaces q u e necesitan atravesar estén libres, elim inando alm acenam ientos intermedios de los paquetes cuando son innecesarios. E n este sentido se puede decir que fu ndona com o la conm utadón d e circuitos, pero sin la necesidad d e reservar d cam ino completo, se pueden realizar avances p o r cam inos parciales. Cuando un paquete no puede avanzar más, se debe alm acenar com pleto a i un enru tador (figura 5.14).

Es ded r, un paquete no bloqueado puede estar ocupando con sus transferencias varios canales d e la red q u e formen su cam ino parcial en ese m om ento, p o r lo que tam bién se tra ta d e una técnica d e cam ino

Page 267: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Sin in te rb loqueo en 2 pasos

1—>2 3—>4 A —»B C->D

Paso 1 Paso 2

F ig u r a 5 .1 4

C o n m u ta c ió n v ir tu a l c u t- th ro u g h .

segmentado. L a latencia con esta técnica vuelve a ser prácticam ente constan te y en la actualidad se puede encontrar en el B lueGene d e IBM , p o r ejemplo.

5 .2 .2 .4 . C o n m u t a c i ó n v e r m i f o r m e

Se tra ta d e una técnica m uy parecida a la d e virtual cu t-through pero exige m enor capacidad d e al­m acenam iento en lo enrutadores. El paquete se divide en flits, de m anera q u e en cuan to el prim ero d e un paquete llega al enru tador, se puede com enzar a ejecutar el algoritm o d e encam inam iento.

Term inada la ejecución de este algoritm o, se perm ite q u e avance el flit cabecera del paquete aunque los siguientes no hayan llegado todavía al enrutador. Estos flits, que irán llegando en orden, seguirán a la cabecera, q u e irá abriendo cam ino im itando el m ovimiento d e un gusano (figura 5.15).

E jem plo de transm is ión de in fo rm ación

F ig u ra 5 .1 5

C o n m u ta c ió n v e rm ifo rm e .

Page 268: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

R )r eso con esta técnica se reduce la necesidad d e alm acenam iento en los enru tadores, q u e sólo necesitan capacidad p a ra un flit. D e hecho, se asignan tan to el buffer com o el enlace a u n flit. Es la técnica d e conm utación que u tiliza M yrinet, u n a red m uy extendida en la actualidad p a ra clusters (m em oria d istribu ida).

5.2.3. Técnicas de encaminamiento

Tanto si se utiliza conm utación de paquetes com o si se utilizan técnicas m ás recientes com o virtual cut-through o vermiforme, es necesario determ inar el cam ino q u e los paquetes van a seguir para llegar del origen al destino (en el caso d e la conm utación d e circuitos el encam inam iento tam bién se realiza, pero es trem endam ente sencillo ya que se fija en d nodo origen cuando se realiza la reserva d d circuito com pleto para la transferencia del mensaje).

U n algoritm o de encam inam iento debe determ inar este cam ino asegurando la conectividad to tal (que cualquier nodo puede enviar u n paquete a cualquier otro) y evitando en todo lo posible las situacio­nes d e interbloqueo, en las que d o s o m ás paquetes no pueden con tinuar su avance porque se bloquean esperando a que el otro o los otros libera l un recurso. Además, hay q u e in ten tar ev itar que un paquete vague por la red ocupando recursos sin llegar nunca a su destino, hay que proporcionar tolerancia a fallos y procurar q u e exista una distribución equilibrada del tráfico en toda la red.

R ira d iseñar algoritm os d e encam inam iento q u e perm itan conseguir estos objetivos hay que tom ar tres decisiones fundam entales:

1. Cóm o se va a realizar la selección del cam ino en tre to d as las alternativas posibles. Existen dos m aneras d e realizar es ta selección, d e m anera inconsciente o d e m anera adaptativa. En d prim er caso se to m a la decisión sin tener en cuen ta p a ra n ad a el estado d e la red y d e los com ponentes q u e la form an. Por lo tan to se puede u tilizar un algoritm o aleatorio, ro ta torio o determ inístico (que siem pre escoja el m ism o cam ino p a ra ir d e un origen a u n destino de te r­m inado) q u e escoja en tre to d as las opciones posibles. En el caso d e u n algoritm o adaptativo, por el con trario , para tom ar esta decisión se tendrá en cu en ta la inform ación m ás actualizada que se tenga acerca del estado d e los recursos q u e form an la red (grado d e ocupación, alertas y errores, etc.). A dem ás los algoritm os d e encam inam iento pueden clasificarse en m ínim os y no m ínim os. E n el p rim er caso, sólo se pueden realizar encam inam ientos q u e acerquen los p a ­quetes a su destino, m ientras q u e en el segundo caso es posible alejarse del destino en alguno de los saltos.

2. Q ué en ru tad o r va a tom ar esta decisión. E n este caso existen tres alternativas diferentes. En p ri­m er lugar, puede ser el propio nodo origen el que incorpore en la cabecera del paquete inform a­ción acerca del encam inam iento. Puede incorporar sólo alternativas y dejar q u e los enrutadores realicen la selección en tre ellas (por ejemplo, si se utiliza u n algoritm o adaptativo, ya q u e serán los enrutadores los que tengan la inform ación m ás actualizada acerca del estado d e la red). Pero tam bién pueden incorporar las decisiones definitivas acerca del encam inam iento en d caso de algoritm os inconscientes. L a segunda alternativa implica u n a decisión distribuida en tre todos los enrutadores. En este caso la cabecera del paquete sólo incorpora la dirección destino, q u e será la que perm ita a los en ru tadores tom ar sus decisiones. P sr lo tanto, d paquete tiene un tam año m enor q u e co n la prim era alternativa, pero p o r o tro lado, se invierte m ás tiem po a i to m ar las decisiones d e encam inam iento. P or últim o, existe la alternativa del o icam inador co itralizado , una unidad hardw are encargada exclusivamente d e tom ar las dedsiones d e encam inam iento, por ejemplo, en las redes crossbar.

3. D e qué m anera se va a im plem entar d algoritm o. H asta el m om ento, dos soluciones han dado buo i resultado, las tablas d e encam inam ioito y las m áquinas d e estados finitos. Con cualquiera

Page 269: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

de las d o s técnicas se tra ta d e averiguar las posibles alternativas d e encam inam iento en función de la dirección del nodo destino y d e tom ar u n a decisión a i base a los criterios d e encam inam ien­to para escoger u n a d e estas alternativas.

5.2.3. Técnicas de control de flujo

Estas técnicas garantizan que las unidades d e inform ación (mensajes, paquetes o flits) llegan al des­tino sin q u e exista solapam iento co n unidades previas o posteriores. Además, aseguran q u e se produce una recepción sin errores, garan tizan una calidad d e servicio m ínim a en la red y gestionan los posibles conflictos por recursos (especialmente, por los recursos d e alm acenam iento a i los enrutadores y por los o il aces).

Las técnicas d e control d e flujo se deben aplicar a diferentes niveles para cum plir con todas estas funcionalidades. N orm alm oite, se distingue en tre control d e flujo extrem o a ex trañ o , control d e flujo de conm utación y control d e flujo físico. C ad a uno d e estos niveles confía en los que están por debajo para realizar sus funciones.

El control d e flujo físico garan tiza q u e las unidades físicas d e inform ación o phits se reciben en el destino correctam ente.

P ira ello pueden utilizarse técnicas síncronas o asincronas. En el caso d e utilizar control d e flujo sín­crono, es u n a señal d e reloj la q u e determ ina cuándo d nodo o rigo i deposita nuevos phits en el enlace y cuándo el nodo destino m uestrea el canal físico para redb idos. Si las líneas q u e com ponen el o ilace son muy largas y existe el pd ig ro de que el origen y el destino se des-sincronicen, se recurre a las soludones tradicionales; se envía la señal de reloj del origen al destino p o r u n a línea adicional o se codifica es ta señal de reloj ju n to con los datos.

En el caso d e utilizar un control d e flujo asincrono, se on p lean señales d e sincronización p a ra q u e el origen indique al destino que hay un p h it en el enlace y para que el destino confirm e al origen q u e lo ha recibido co rrec tam oite y q u e está esperando la transm isión d e u n nuevo phit.

El control d e flujo d e co n m u tad ó n garan tiza que la unidad d e inform ación utilizada en la conm uta- d ó n se transfiere correctam ente en tre en ru tad o res E stas unidades son el paquete p a ra técnicas d e co n ­m u tad ó n d e paquetes o virtual cut-through, y el flit para la conm utación d e d rcu ito s (sonda d e reserva del d rcu ito ) o vermiforme.

Las técnicas de control d e flujo a i este nivel garan tizan que en el siguiente en ru tado r haya espacio de alm acoiam iento suficiente para re d b ir la un idad d e inform ación.

Si el control de flujo físico es asincrono, la propia señalización de control envío/recepdón en tre origen y destino, perm ite realizar tam bién el control d e flujo d e conm utación.

Por el contrario , si el control d e flujo físico es síncrono, se deben utilizar técnicas d e otro tipo p a ra el control de flujo de co n m utadón . L as m ás conocidas son el control d e flujo basado en créditos y el control de flujo STOP& GO.

En el caso d e los créd itos, se añade u n a señal d e con tro l q u e se envía desde el e n ru ta d o r destino hacia el e n ru ta d o r origen y q u e in fo rm a acerca d e la d ispon ib ilidad d e espacio d e alm acenam iento en el e n ru tad o r destino . E sta señal es la q u e concede créd ito p a ra el envío d e la un idad d e in fo rm a­ción.

Si se utilizan técnicas d e STO P& G O , el contro l d e flujo se basa en d o s tipos d e señales, la d e GO, que indica al o iru ta d o r origen q u e pueden enviar un idades d e inform ación hacia el destino, y la de STOP, q u e indica q u e debe cesar el envío d e inform ación p o rque no q u ed a espacio d e alm acenam iento suficiente en el e n ru tad o r destino. E n el buffer d e cad a e n ru tad o r hay dos niveles d e ocupación d iferen­tes, el que hace q u e se active la señal d e STO P (cuando sólo q u ed a espacio p a ra alm acenar las unidades qu e en ese m om ento se están transm itiendo p o r el enlace) y el q u e hace q u e se active la señal d e G O (cuando se calcula q u e en el tiem po q u e la señal d e G O llega al en ru tad o r origen se hab rá liberado espacio suficiente en el buffer). E stas técnicas son especialm ente in teresantes en enlaces con ancho de

Page 270: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

banda lim itado, ya q u e ahorran la m ayor p a rte d e la señalización d e contro l que supondría u n a gestión por créditos.

Por últim o, d control d e flujo extremo a extrem o garantiza que el m ensaje o paquete se transm ite correctam ente desde la interfaz del nodo origen hasta la interfaz del nodo destino. E n este caso se pueden utilizar tam bién técnicas basadas en créditos o en STOP& GO, aunque existen m ultitud d e propuestas específicas p a ra diferentes redes y arquitecturas.

Diseño de arquitecturas de memoria compartida

En las arquitecturas d e m o n o ria com partida varios procesadores com parten una única m o n o ria principal con la que se com unican p o r un único bus y a través d e la cual se realiza la com unicación en tre los procesadores utilizando instrucciones d e carga y alm acoiam iento.

R ira q u e la m em oria com partida no se convierta en el cuello d e botella del sistem a son necesarias m onorias caché d e gran eficiencia, es decir, con u n a tasa d e fallos lo m enor posible. Así los procesadores recurrirán lo m enos posible a la m o n o ria principal com partida. En las arquitecturas d e m em oria com ­partida on-chip, en las q u e puede que se esté com partiendo u n nivel de la m em oria caché en lugar d e la m onoria principal, este principio se cum ple igualmente, cuan to m o io s falle la caché d e nivel 1 d e los procesadores, m enos recurrirán al nivel d e la m em oria caché q u e se com parte.

Las técnicas d e diseño de procesadores estudiadas en los capítulos 1 y 3 y las de diseño d e jerarqu ía de m em orias estudiadas en los capítulos 2 y 4 se utilizan para el diseño d e este tipo d e arquitecturas. Pero es necesario añ ad ir nuevas técnicas que perm itan resolver los p rob lonas ya m encionados: coherencia, consistencia y sincronización.

Primero se estud iará q u é implican estos p rob lonas p ara luego pasar a discutir cuáles d e d io s se p o ­drán resolver desde la propia arquitectura y cuáles se resolverán a un nivel superior. E ste estudio se cen­trará en arquitecturas d e m o n o ria com partida trad idonales (hom ogéneas y com partiendo la m em oria principal), pero la mayor parte d e las so ludones preso itadas pueden aplicarse directam ente o adaptarse con facilidad a arquitecturas on-chip (aunque sean heterogéneas y com partan u n n ivd d e la m o n o ria caché).

El problem a de la coherencia aparece en el m om ento en que existen diferentes copias d d mismo dato en diferentes m em orias del sistema. P or e jonplo , en el caso d e un bloque d e inform ación q u e esté riendo utilizado p o r varios procesadores del s istona , se podrá encon trar copia d e este mismo bloque en diferentes m em orias caché d e la arquitectura y en la m em oria principal com partida. En el m om ento en d que estas copias sean diferentes en tre sí, aparece u n a falta de coherenda que puede llevar a resultados equivocados en la ejecución d e códigos, ya que hay q u e recordar q u e en este tipo de arquitecturas los procesadores se com unican de m anera im p líd ta a través d e lecturas y escrituras en m onoria . E sta com u­nicación no se realizará correctam ente si no se garan tiza que cuando un procesador lee u n a variable esta lectura le es tá devolviendo el ú ltim o valor q u e se h a escrito en ella.

Ejem plo 5.1

Ejemplo del problema de coherencia en una arquitectura de memoria compartida.

E£1

S u p o n g a m o s q u e te n e m o s una a rq u ite c tu ra de m e m o ria co m p a rtid a co n 2 p roce sa d o re s , PO y P1. Cada u n o de estos p ro ce sa d o re s t ie n e un ú n ic o n ive l de caché co n escritu ra d irec ta .

Page 271: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

En este e je m p lo te n e m o s a PO y P1 e je ­c u ta n d o d o s p ro ce so s q u e co m p a rte n una va riab le A u b icada en el b lo q u e 3 de m e ­m oria .

S i lo s do s p ro ce so s rea lizan só lo le c tu ­ras de esta v a ria b le co m p a rtid a , n o su rge n in g ú n p ro b le m a .

Pero, ¿qué o c u rre si P1 esc ribe un n uevo va lo r para la v a r ia b le A en su cop ia de B3?A l ser las cachés de escritu ra d ire c ta , este n u e vo v a lo r se actualizará ta n to en la caché de P1 c o m o en la m e m o ria p rinc ipa l.

Pero la s ig u ie n te lec tu ra q u e haga PO del va lo r de A , lo hará de su cop ia de B3 en su cachó, q u e te n d rá a lm acenado el v a lo r an­tig u o de A .

Este es el t íp ic o p ro b le m a de coherenc ia que su rg e cu a n do se pueden a lm acena r en las m e m o ria s caché las va riab le s c o m p a r t i­das y q u e debe reso lve rse de a lguna m anera para q u e lo s resu lta d o s de las ap lica c io n es sean lo s co rre c to s .

En d caso de la consistencia, este problem a aparece porque la existencia d e varios procesadores en el sistema obliga a definir el orden en el q u e se m aterializan las operaciones en m a n o ria principal.

En sistemas m onoprocesador este o rd o i e stá claro, y aq u e siempre es el o rd o i del program a, es decir, debe parecer que las instrucdones que acceden a m em oria se h an ejecutado en d orden secuencial en el que aparecen en d código. E n realidad no tienen p o r q u é ejecutarse en este orden (existen técnicas de ejecución fuera d e o rd o i com o se estudió a i el capítulo 3), pero sí tiene q u e parecer, p o r los resultados obtenidos, q u e se han ejecutado en este orden.

En d caso de una arquitectura con varios procesadores, hay que definir este orden. Es decii; hay que de- d d ir cóm o se intercalan las instrucciones de los códigos q u e se ejecutan a i cada uno de los procesadores.

Ejem plo 5 .2

Ejemplo del problema de consistencia en una arquitectura de memoria compartida.

S upo n g a m o s q u e en el p ro ce sa d o r PO de l e je m p lo 5.1 aparece la s ig u ie n te secuencia de as ig n a c ió n de va lo res a la v a ria b le c o m p a rtid a A :

PO

Sabem os q u e según el m o d e lo de p ro g ra m a c ió n de las a rq u ite c tu ra s m o n o p ro cesa d o r, se debe resp e ta r el o rden secuenc ia l de estas as ignac iones, de m ane ra q u e el v a lo r de la v a ria b le A q u e p reva le ce es A = 1.

Sin e m b a rg o , en la a rq u ite c tu ra co n do s p ro ce sa d o re s , si no s e n co n tra m o s co n esta secuenc ia de as igna ­c iones para la va riab le c o m p a rtid a :

Page 272: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

PO P1

¿Cuál es el v a lo r de la v a ria b le c o m p a rtid a q u e debe p reva lece r? E sto es lo q u e t ie n e q u e d e fin ir el m o d e lo de cons is tenc ia . D e p e n d ien d o de l q u e se im p le m e n to en esta a rqu itec tu ra la va riab le m an te n d rá el v a lo r A = 0 o el v a lo r A = 1.

Por últim o, el problem a de la sincronización aparece, ya que la com unicación entre procesos se realiza a través de una m em oria com partida. P ara q u e esta com unicación sea correcta, es necesario sincronizar los accesos a las variables com partidas, tan to en com unicación uno a uno com o en com unicaciones co ­lectivas.

Ejem plo 5 .3

Ejemplo del problema de sincronización en una arquitectura de mem oria compartida.

S u p o n g a m o s en este ca so q u e só lo el p ro ce sa d o r P1 t ie n e co p ia de la va riab le c o m p a rtid a A en su m e ­m oria cachó p o rq u e está a cu m u la n d o en e lla el re s u lta d o de una ope ra c ió n m a tem á tica . C uando te rm in e esta ope rac ión , el p ro ce so q u e se está e je cu ta n d o en PO tie n e q u e le e r su va lo r, m o d if ic a r lo e im p r im ir lo en pan ta lla para q u e el u s u a rio v isu a lice el re s u lta d o o b ten id o .

A u n q u e se haya d e fin id o un m o d e lo de cons is tenc ia , es to n o resue lve el p ro b le m a p la n tea d o , ya q u e en este caso nece s itam o s a lg ú n m e c a n is m o q u e asegure al p ro c e s o q u e se e jecu ta en PO cuando rea lice la lec tu ra de la v a ria b le c o m p a rtid a A q u e el p ro ce sa d o r P1 ya ha te rm in a d o de tra b a ja r co n esta v a ria b le y q u e se está le ye n d o de m e m o ria p rin c ip a l el resu lta d o fin a l.

Page 273: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

5.3.1. Soluciones para el problema de la coherencia

E ste problem a se puede resolver exclusivam ente desde la prop ia a rqu itec tu ra , añadiendo co n tro la ­dores d e coherencia a las m em orias cachés q u e están en el ú ltim o nivel d e la je ra rq u ía d e m em oria que no está com partido . Es decir, si se com parte la m em oria principal, se añaden estos contro ladores a las cachés d e nivel 2 d e tod o s los procesadores. Si se co m p arte el nivel 2 d e caché, se añaden a las cachés de nivel 1.

Estos controladores de coherencia se basan a i u n a idea m uy sencilla: pueden espiar en todo m o­mento lo que están haciendo el resto de procesadores del sistema ya que existe u n m edio com partido de comunicaciones, un bus. Por eso se basan en protocolos d e coherencia q u e se denom inan d e espionaje o Snoopy (figura 5.26).

Procesador \ Procesador /IProcesador

Com ando (Dirección X)

iBus C om partido |

M em oriaPrincipal

E spac io de D ire c c io n e s

ú n ic o

F ig u r a 5 .1 6

P ro to c o lo d e c o h e re n c ia b a s a d o en e s p io n a je c o n u n n iv e l d e caché .

fó ra d iseñar un protocolo d e este tipo es necesario especificar:

• Los posibles estados d e u n bloque alojado en u n determ inado marco d e la caché d e un proce­sador.

• Los com andos del protocolo, es decir, las órdenes o peticiones q u e los controladores envían p o r el bus para q u e sean vistas por o tros controladores.

• El d iagram a d e transición d e estados d e los bloques en caché, con los eventos q u e pueden provocar estas transiciones y las acciones q u e hay q u e llevar a cabo ante determ inados eventos, transiciones o com andos.

Los estados y com andos pueden variar mucho d e unos protocolos a otros, por lo q u e es difícil p ro ­poner una notación general. Sin em bargo, para la definición d e eventos, en este libro se va a diferenciar siempre en tre d o s tipos, los locales y los globales.

Los eventos locales son aquellos q u e se producen p o r acciones q u e lleva a cabo el procesador aso- d a d o a la propia caché y a su contro lador. Los eventos globales, p o r el con trario , se producen cuando

Page 274: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

se observan en el bus com partido com andos enviados p o r los con tro ladores d e coherencia d e cachés rem otas.

Los eventos locales pueden ser, p o r tan to , d e cuatro tipos:

• PRHit. Petición local d e lectura con acierto en caché.• PRMiss. Petición local d e lectura con fallo en caché.• PWHit. Petición local d e escritu ra con acierto en caché.• PW Miss. Petición local d e escritura con fallo en caché.

En el caso d e los eventos globales, siempre se utilizará la notación Bus p a ra identificarlos, seguida del nom bre del com ando q u e se observa. H ab rá siempre un tipo d e evento global p o r cada com ando del protocolo. E stos eventos globales tendrán lugar cuando un con tro lador d e coherencia detecte q u e un determ inado com ando q u e otro con tro lador h a volcado a i el bus se refiere a u n a dirección de m a n o ria que está ubicada en ese m om ento en la m em oria caché local.

Por ejemplo, BusRMiss(X) sería el evento en el q u e se observa en el bus que otro procesador ha volcado un com ando d e fallo d e lectura p o r la dirección d e m em oria X, que está ubicada en la m a n o ria caché local.

Además, hay q u e tener en cuenta que existo i dos alternativas para diseñar estos protocolos, la inva­lidación y la actualización.

En d caso d e los protocolos d e invalidación, se basan en asegurar q u e un procesador tiene acceso ex­clusivo a un bloque d e da to s antes d e escribir en él. P ara ello, cuando un procesador desea escribir sobre un bloque, an tes o iv ía u n com ando d e invalidación p o r el bus que invalida el resto d e las copias en o tras cachés d d sistem a. A p a rtir d e ese m om ento no quedan m ás copias válidas d e ese bloque a i o tras cachés y los fu turos accesos sobre el bloque m odificado serán en exclusiva. U n bloque inválido es equivalente a un bloque no presente en caché, cuando se solicita produce u n fallo.

Al producirse este fallo pueden ocurrir dos cosas. Si las cachés son d e post-escritura, la única copia correcta del da to está a i la caché q u e lo tiene en exclusiva. En ese caso, d con tro lador d e caché m onito- riza el bus p a ra detectar solicitudes del b loque m odificado y enviarlo actualizado a los procesadores que lo necesiten o a la m a n o ria p rin d p a l para q u e sea ésta la que se o icargue d e resolver el fallo con el dato ya actualizado (lo q u e ocurre norm alm ente).

Si las cachés son de escritura d irecta hab rá u n a copia correcta d e la inform ación a i la m em oria principal tra s la escritura, así q u e esta m onitorización no es necesaria y es la m em oria p rin d p a l la que resuelve el fallo com o ocurre norm alm ente.

L a actualización se basa en q u e to d o s los d a to s es tán siem pre ac tualizados en las d iferentes cachés. P a ra ello, cu an d o se escribe en un b loque en un p rocesado r d e te rm in ad o se d ifunden p o r el bus las m odificaciones realizadas a to d as las cachés q u e tienen u n a cop ia d e este bloque, y éstas lo actualizan.

La actualización es necesaria sólo a i caso d e da to s com partidos, es decir que tengan m últiples copias en diferentes cachés. P or ello se hace u n a c la ra d istinción en tre da to s co m partidos y locales. Esto perm ite ev itar actualizaciones innecesarias y reducir las necesidades d e ancho d e b an d a p a ra la actualización.

Si las cachés son d e escritura d irecta, cada actualización d e una escritura servirá tam bién para m o­dificar el contenido d e la m em oria principal. Si p o r el contrario , las cachés son de post-escritura, las actualizaciones sólo se realizarán en o tras cachés y la m em oria principal sólo se actualizará en los reem ­plazamientos, com o es habitual.

Veamos la diferencia en tre invalidación y actualización con dos e jonp los sencillos. P ara ello vamos a diseñar dos protocolos d e coherencia de caché, uno de invalidación y otro d e actualización, am bos de tres estados, ya que son los m ás soicillos q u e pueden proponerse En am bos casos vamos a suponer que las cachés son d e post-escritura.

Page 275: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Ejem plo 5 .4

Protocolo de coherencia de caché basado en espionaje, de 3 estados y con invalidación.Cachés de post-escritura.

En este e jem p lo tenem os un p ro to co lo que de fine tres estados posib les para tos b loques ub icados en caché:

• In v á lid o (I). El b lo q u e n o está en la cachó y si lo ha es tado en a lgún m o m e n to , ha s id o in va lid a d o , p o r lo q u e cu a n do el p ro ce sa d o r lo so lic ita para le e r o para e s c rib ir se p ro d u ce un fa llo .

• C o m p a rtid o o Shared (S). El b lo q u e está en la cachó y es co h e re n te co n la m e m o ria p rin c ip a l. Puede que ex is tan o tra s co p ia s en estas m ism as co n d ic io n e s en las cachós de o tro s p rocesado res .

• M o d if ic a d o (M ). El b lo q u e está en la cachó y n o es c o h e re n te co n la m e m o ria p rin c ip a l. E sto s ig n ifica q u e se ha rea lizado al m e n o s una escritu ra so b re él y q u e p o r lo ta n to , es la ún ica co p ia en las cachós del s is tem a (la cachó lo ca l t ie n e el b lo q u e en exclus iva).

Este p ro to c o lo M S I u tiliza d o s co m a n d o s para m a n te n e r la coherenc ia en el s is tem a , RM iss (fa llo de lectu ra ) y W M'iss (fa llo de escritu ra + inva lidac ión im p líc ita ). Por ú lt im o , se con tem p la n do s acc iones, la p rim e ra d e n o m in a ­da W B im p lica el vo lcado de un b lo q u e co m p le to al b u s co m p a rtid o para actua liza r su co n te n id o en la m em oria p rinc ipa l, la segunda es una acc ión Inva lida r que im p lica m arca r c o m o in vá lid o un b lo q u e de la cachó local.

El d iag ram a de tra n s ic ió n de es ta do s para este p ro to c o lo es el s igu ien te :

A n a lice m o s las tra n s ic io n e s q u e se p ro d u c e n d esde cada u n o de lo s estados:

ESTADO ESTADOH C C T I K I A

EVENTOEXPLICACIÓNU K I u c i M

DELATRANSICIÓN

U t o 1 I I M U

DELATRANSICIÓN

QUE LA PROVOCA

1 S PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la cachó, se p ro d u ce un fa llo y se so lic ita a la m e m o ria p rinc ipa l co n un co m a n d o RM iss q u e resue lva este fa llo de le c tu ra . El re s to de p ro c e ­sadores su fren un even to g loba l B usR M iss si ven este co m a n d o en el bus c o m p a rtid o y les a fecta.La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .

Page 276: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

ESTADO ESTADO EVENTOQUE LA

PROVOCAEXPLICACIÓN

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se s o lic ita a la m e m o ria p rin c ip a l con un c o m a n d o W M is s q u e resue lva este fa llo de escritu ra .La cop ia q u e se re c ib e de l b lo q u e es la ún ica ub icada en cachó de toda la a rqu ite c tu ra .

s S PRHit El p ro ce sa d o r loca l so lic ita le e r un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u ce un a c ie rto y el es tado de este b lo q u e no se m o d ifica .

S PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la cachó, se p ro d u ce un fa llo y se so lic ita a la m e m o ria p rinc ipa l co n un c o m a n d o R M iss q u e resue lva este fa llo de lec tu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .Esta cop ia reem p laza a la de un b lo q u e q u e ta m b ié n estaba en estado c o m p a rtid o (S), p o r lo q u e la e tique ta asociada al m a rc o esco g id o para el e m p la za m ie n to n o se m o d ifica .

M PW H it El p ro ce sa d o r lo ca l so lic ita esc rib ir un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u c e un ac ie rto .Pero se vue lca un c o m a n d o W M iss en el bu s c o m p a rt id o q u e s irve c o m o o rd e n de in v a lid a c ió n de es te b lo q u e para sus p o s ib le s cop ias en o tra s cachés.La cop ia de l b lo q u e en cachó es exclus iva .

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se s o lic ita a la m e m o ria p rin c ip a l con un c o m a n d o W M iss q u e resue lva este fa llo de escritu ra . Este co m a n ­do s irve al m is m o t ie m p o c o m o o rd e n de in va lid a c ió n de este b lo q u e para sus p o s ib le s co p ia s en o tra s cachés.La co p ia q u e se re c ib e de l b lo q u e es exclus iva , n o ha y m ás co p ia s en las cachés de l s istem a.

S BusRM iss Se observa en el bu s c o m p a rtid o un fa llo de lec tu ra de o tro p roce sa ­d o r p o r un b lo q u e q u e está u b ica d o en la cachó loca l. Su es tado no se m o d ifica .

1 B usW M iss Se observa en el b u s c o m p a rtid o un fa llo de e scritu ra de o tro p ro c e ­sador p o r un b lo q u e q u e está u b ic a d o en la cachó loca l. Este com an­do lleva im p líc ita una o rd e n de in va lid a c ió n ya q u e en lo s p ro to c o lo s de in va lid a c ió n las escritu ra s se hacen en co p ia s exclus ivas. Se inva - íd a la cop ia lo ca l de l b loque.

M M PRHit El p ro ce sa d o r loca l so lic ita le e r un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u ce un a c ie rto y el es tado de este b lo q u e no se m o d ifica .

S PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la cachó, se p ro d u ce un fa llo y se so lic ita a la m e m o ria p rinc ipa l co n un co m a n d o R M iss q u e resue lva este fa llo de lec tu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .Esta cop ia reem plaza a la de un b lo q u e q u e estaba en es tado m o ­d ific a d o (M ), p o r lo q u e an tes de re e m p la za rlo h a y q u e v o lc a r las m o d ifica c io n e s rea lizadas a m e m o ria p rin c ip a l (post-escritu ra ) con una a cc ió n W B.

Page 277: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

ESTADO ESTADO EVENTO

DELATRANSICIÓN

DELATRANSICIÓN

QUE LA PROVOCA

EXPLICACION

M P W H it El p ro ce sa d o r lo ca l so lic ita esc rib ir un b lo q u e q u e ya está u b ic a d o en la caché y en exc lus iva , p o r lo q u e se p ro d u c e un a c ie rto y el estado de este b lo q u e n o se m od ifica .

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se s o lic ita a la m e m o ria p rin c ip a l con in c o m a n d o W M iss q u e resue lva este fa llo de escritu ra . Este c o m a n ­do s irve al m is m o t ie m p o c o m o o rd e n de in va lid a c ió n de este b lo q u e para sus p o s ib le s co p ia s en o tra s cachós.La cop ia q u e se re c ib e de l b lo q u e es exclus iva , n o ha y m ás co p ia s en las cachós de l s istem a.Esta cop ia reem p laza a la de un b lo q u e q u e ta m b ié n estaba en estado m o d ific a d o (M ), p o r lo q u e an tes de ree m p la za rlo ha y q u e v o lc a r las m o d ifica c io n e s rea lizadas a m e m o ria p rin c ip a l (post-escritu ra ) con in a a cc ió n W B.

S B usR M iss Se observa en el bu s c o m p a rtid o un fa llo de lec tu ra de o tro p roce sa ­d o r p o r un b lo q u e q u e está u b ic a d o en la caché lo ca l y n o es co h e ­rente co n m e m o ria p rinc ipa l.Se realiza una actua lizac ión de la m e m o ria p rin c ip a l co n una acc ión de W B para q u e se pueda re so lve r el fa llo y se ca m b ia de es tado al b lo q u e p u e s to q u e ya n o es co p ia exc lus iva y pasa a ser co h e re n te con m e m o ria p rin c ip a l.

I B usW M iss Se observa en el bu s co m p a rtid o un fa llo de escritu ra de o tro p ro ­cesador p o r un b lo q u e q u e está u b ica d o en la cachó lo ca l y n o es cohe ren te co n m e m o ria p rinc ipa l.Se rea liza una a c tu a liza c ió n de la m e m o ria p r in c ip a l co n una acc ión de W B para q u e se pueda re s o lv e r el fa llo y se ca m b ia de es tado al b lo q u e p u e s to q u e el W M iss de o tro p ro c e s a d o r lleva una o rden de in v a lid a c ió n im p líc ita . Es dec ir, se in v a lid a la cop ia lo ca l de l b lo ­que.

Ejem plo 5 .5

Aplicación práctica del protocolo del ejemplo 5.4.

Para co m p re n d e r m e jo r el fu n c io n a m ie n to de este p ro to c o lo , va m o s a p la n te a r un caso p rá c tic o en el que se u tiliza rá para m a n te n e r la cohe renc ia de una a rq u ite c tu ra de m e m o ria co m p a rtid a .

S u p o n g a m o s q u e te n e m o s una a rq u ite c tu ra de este t ip o co n tre s p ro ce sa d o re s (PO, P1 y P2) cuyas cachós están in ic ia lm e n te vacías. ¿C óm o e vo lu c io n an lo s c o n te n id o s de las cachés y el p ro to c o lo si se e jecu ta la s i­g u ie n te secuenc ia de le c tu ra s y escritu ra s en lo s b lo q u e s 0 y 1 de MP?

* Nota: Las lecturas y escrituras se realizan con instrucc iones de load y s tore a palabras concretas, en este caso estamos s im p lificando la manera de expresar e l pa trón d e accesos a m em oria po rque lo ún ico qu e nos im porta es en qué bloques se encuentran esas palabras y s i se solic ita una lectura o una escritura.

Page 278: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Procesador 0 l e e e l Bloque 1

Procesador 1 l e e e l Bloque 1

Procesador 2 escribe el bloque 0

Procesador 0 escribe el bloque 1

Procesador 0 lee el bloque 0

Procesador 2 escribe el bloque 1

Caché PO Caché PO Caché PO Caché POS B1 S B1 S B1

Caché P1 Caché P1 Caché P1 Caché P l

S B1 ¡ Si l f t l 1

Caché P2 Caché P2 Caché P2 Caché P2

I M BO 1

w

INICIO

Caché PO Caché Pl Caché PO

M B1 M b :

r r r w nL U L U Jr s if B o i

Caché P1

m r R H

Caché P.

L U E S L .

Caché P l

[1 ~ B l

Caché P2

m ih b o ~

BB

Caché P!

S jC E D

Caché P2

E S C S C I 3 E

PO ESCRIBE B1 PO IEE 10 P2 ESCRIBE B 1

L e c tu ra /e s c r itu ra E ve n to loca l C o m an d o s y acc iones

PO lee B1 Fallo de lec tu ra PO vue lca un c o m a n d o R M iss al bus. M P resu e lve el fa llo de lec tu ra .

P1 lee B1 Fallo de lec tu ra P1 vue lca un co m a n d o R M iss al bus.PO de tecta este c o m a n d o (eve n to BusRM iss) p e ro n o m o d ific a el es tado de su cop ia .M P resu e lve el fa llo de lec tu ra .

P2 escribe BO F a llo de escritu ra P2 vue lca un co m a n d o W M is s al bus. M P resu e lve el fa llo de escritu ra .

PO e sc ribe B1 A c ie r to de escritu ra PO vu e lva un c o m a n d o W M is s al bus.P1 de tecta este c o m a n d o (eve n to B usW M iss) e in va lid a su c o ­p ia de B1.M P resue lve el fa llo de e scritu ra (en este caso innecesario ).

PO lee BO Fallo de lec tu ra PO vue lca un co m a n d o R M iss al bus.P2 de tecta es te c o m a n d o (e ve n to BusRM iss) y hace un W B de BO a m e m o ria p rinc ipa l, m o d if ic a n d o adem ás el es tado de su copia.M P resue lve el fa llo de lec tu ra .

P2 e sc ribe B1 F a llo de escritu ra P2 vue lca un co m a n d o W M is s al bus.PO de tecta este co m a n d o (e ve n to B usW M iss) y hace un W B de B1 a m e m o ria p r in c ip a l, in v a lid a n d o después su cop ia .M P resue lve el fa llo de escritu ra .

C on este e je m p lo se pu e de o b se rva r q u e este se n c illo p ro to c o lo de tre s estados y do s co m a n d o s resue lve el p ro b le m a de la cohe renc ia .

Page 279: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

O b v ia m e n te , esta sencillez hace q u e su c o m p re n s ió n e im p le m e n ta c ió n sea m u y sencilla p e ro ta m b ié n p resenta a lg u n o s in co n ve n ie n te s , espec ia lm en te dos:

• C uando un p ro ce sa d o r tie n e un a c ie rto lo ca l de escritu ra envía un c o m a n d o W M iss p o r el b u s c o m p a rti­do ya q u e este co m a n d o lleva una o rd e n de in va lid a c ió n im p líc ita para el re s to de cachós. El p ro b le m a es q u e la m e m o ria p rin c ip a l re s p o n d e a este c o m a n d o re s o lv ie n d o un fa llo q u e re a lm e n te n o se ha p ro d u ­c id o , lo q u e su p o ne un t rá f ic o inne ce sario en el bu s c o m p a rtid o (un b lo q u e c o m p le to en cada a c ie rto de escritu ra de un p ro ce sa d o r). La m ane ra de e v ita r es to sería a ñ a d ir un co m a n d o de in va lid a c ió n e xp líc ito , Inv, in d e p e n d ie n te de l co m a n d o de fa llo de escritu ra W M iss .

• A u n q u e re so lva m o s este p ro b le m a , s ie m p re q u e un p ro ce sa d o r s o lic ite e s c rib ir en un d e te rm in a d o b lo ­q u e enviará una o rd e n de inva lid a c ió n para este b lo q u e p o r el bu s c o m p a rtid o (sea co n W M iss o co n Inv si lo h e m o s a ñ a d id o c o m o co m a n d o ) ya q u e n o tie n e fo rm a de saber si su co p ia es la ún ica de l s is tem a o si p o r el c o n tra r io , ex is ten co p ia s de l m is m o b lo q u e en o tra s cachés. Si su co p ia es ú n ica , este co m a n d o no s irve para nada, p o r lo q u e de n u e vo te n d ría m o s trá fic o in n e ce sa rio en el bu s c o m p a rtid o . La m anera de e v ita r es to sería a ñ a d ir un c u a rto e s ta do . E xc lu s ivo (E), q u e es para lo s b lo q u e s q u e son cop ia ún ica en el s is tem a y son co h e re n te s co n m e m o ria p rinc ipa l. D e esta m anera se d ife re n c ia con fa c ilid a d en qué s ituac iones son necesarias las in va lid a c io n es (cua n d o el b lo q u e está c o m p a rtid o y h a y q u e in v a lid a r el res to de cop ias) y en q u é s ituac iones n o (cu a n d o la cop ia de l b lo q u e es ún ica y se pu e de pasa r a esc rib ir so b re él d irec ta m e n te ). Estos p ro to c o lo s de 4 estados sue len d e n o m in a rse M ESI y son a m p lia m e n te u tilizados.

Ejem plo 5 .6

Protocolo de coherencia de caché basado en espionaje, de 3 estados y con actualización.Cachés de post-escritura.

En es te e je m p lo te n e m o s de n u e vo un p ro to c o lo q u e d e fin e t re s e s tados p o s ib le s para lo s b lo q u e s u b ic a ­do s en caché:

• E stado in ic ia l o unca che d (U). El b lo q u e n o está en la caché , p o r lo q u e c u a n d o el p ro ce sa d o r lo so lic ita para le e r o para e s c rib ir se p ro d u ce un fa llo .

• V á lid o (V). El b lo q u e está en la cachó y n o ha s id o m o d if ic a d o m e d ia n te escritu ra s loca les. Puede que ex is tan o tra s co p ia s en las cachós de o tro s p rocesado res , to d a s e llas co h e re n te s e n tre sí.

• M o d if ic a d o (M ). El b lo q u e está en la cachó y n o es c o h e re n te con la m e m o ria p rin c ip a l p o rq u e el p ro c e ­sa d o r lo ca l ha rea lizado al m e n o s una e scritu ra so b re él. Puede q u e ex is tan o tras co p ia s en las cach ó s de o tro s p rocesado res , to d a s e llas c o h e re n te s e n tre sí.

*N o ta : Con esta de fin ic ión es posib le qu e un b loque esté en estado M o d ificado en más de una m em oria caché d e l s is ­tem a.

Este p ro to c o b u tiliza d o s co m a n d o s para m a n te n e r la co h e re n c ia en el s is tem a , M iss ( fa llo ) y U pd (ac tu a li­zac ión de la pa lab ra m o d ifica d a ). Por ú lt im o , se c o n te m p la n do s acc iones , W B (v o lc a d o de un b lo q u e c o m p le to al b u s c o m p a rtid o para actua liza r su co n te n id o en la m e m o ria p rin c ip a l) y A c tM C (actua lizac ión de la m e m o ria cachó b c a l co n lo s co n te n id o s de un c o m a n d o U pd en el bu s c o m p a rtid o ).

Page 280: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

El d iag ram a de tra n s ic ió n de es ta do s para este p ro to c o lo es el s igu ien te :

M iss i WB»Upd

A n a lice m o s las tra n s ic io n e s q u e se p ro d u c e n d esde cada u n o de lo s estados:

ESTADO ESTADO EVENTO

DELATRANSICIÓN

DELATRANSICIÓN

QUE LA PROVOCA

EXPLICACION

u V PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la caché, se p ro d u ce un fa llo y se so lic ita a la m e m o ria p rin c ip a l, co n un co m a n d o M is s , q u e resue lva este fa llo de lec tu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se so lic ita a la m e m o ria p rin c ip a l, con un c o m a n d o M is s , q u e resue lva este fa llo de escritu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o p u e de estar co m p a rtid a .C uando se realiza la escritu ra lo c a lm e n te se envía co n un co m a n d o Upd el n u e vo v a lo r de la pa lab ra escrita p o r el bu s c o m p a rtid o .

V V PRHit El p ro ce sa d o r loca l so lic ita le e r un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u ce un a c ie rto y el es tado de este b lo q u e no se m o d ifica .

V PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la cachó, se p ro d u c e un fa llo y se so lic ita a la m e m o ria p rin c ip a l, co n un co m a n d o M is s , q u e resue lva este fa llo de lec tu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .Esta cop ia reem p laza a la de un b lo q u e q u e ta m b ié n estaba en estado v á lid o (V), p o r lo q u e la e tique ta asociada al m a rc o e s co g id o para el em p la za m ie n to n o se m o d ifica .

Page 281: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

EVENTO QUE LA

PROVOCAEXPLICACIÓN

M P W H it El p ro ce sa d o r lo ca l so lic ita esc rib ir un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u ce un ac ie rto .C uando se realiza la escritu ra lo c a lm e n te se envía co n un co m a n d o U pd el n u e vo v a lo r de la pa lab ra escrita p o r el bu s c o m p a rtid o .

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se so lic ita a la m e m o ria p rin c ip a l, con un c o m a n d o M is s , q u e resue lva este fa llo de escritu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o p u e de estar co m p a rtid a .C uando se realiza la escritu ra lo c a lm e n te se envía co n un co m a n d o Upd el n u e vo v a lo r de la pa lab ra escrita p o r el bu s c o m p a rtid o .

S B usM iss Se observa en el bu s c o m p a rtid o un fa llo de o tro p ro ce sa d o r p o r un H o q u e que está u b icado en la cachó loca l. Su es tado n o se m od ifica .

S B usU pd Se de tecta en el b u s c o m p a rtid o una actualización q u e afecta a un b lo ­que u b icado en la cachó. Se realiza la acc ión A c tM C para actua liza r el con ten id o de este b lo q u e co n la palabra escrita en o tro procesador.

M M PRHit El p ro ce sa d o r loca l so lic ita le e r un b lo q u e q u e ya está u b ic a d o en la cachó, p o r lo q u e se p ro d u ce un a c ie rto y el es tado de este b lo q u e no se m o d ifica .

V PRMiss El p ro ce sa d o r lo ca l so lic ita le e r un b lo q u e q u e n o está u b ic a d o en la cachó, se p ro d u c e un fa llo y se so lic ita a la m e m o ria p r in c ip a l, co n un c o m a n d o M iss , q u e resue lva este fa llo de lec tu ra .La co p ia de l b lo q u e q u e se re c ib e pu e de ser la ún ica de l s is tem a o pu e de estar co m p a rtid a .Esta cop ia reem plaza a la de un b lo q u e q u e estaba en es tado m o ­d ific a d o (M ), p o r lo q u e an tes de re e m p la za rlo h a y q u e v o lc a r las m o d ifica c io n e s rea lizadas a m e m o ria p rin c ip a l (post-escritu ra ) con una a cc ió n W B.

M PW H it El p ro ce sa d o r lo ca l so lic ita esc rib ir un b lo q u e q u e ya está u b ic a d o en la cachó , p o r lo q u e se p ro d u c e un a c ie rto y el e s ta d o de este b lo q u e no se m o d ifica .C uando se realiza la escritu ra lo c a lm e n te se envía co n un co m a n d o Upd el n u e vo v a lo r de la pa lab ra escrita p o r el bu s c o m p a rtid o .

M PW M iss El p ro ce sa d o r loca l so lic ita e s c rib ir un b lo q u e q u e n o está u b ic a d o en la cachó , se p ro d u c e un fa llo y se s o lic ita a la m e m o ria p rin c ip a l con un c o m a n d o M iss q u e resue lva este fa llo de escritu ra .Esta cop ia reem p laza a la de un b lo q u e q u e ta m b ié n estaba en estado m o d ific a d o (M ), p o r lo q u e an tes de ree m p la za rlo ha y q u e v o lc a r las m o d ifica c io n e s rea lizadas a m e m o ria p rin c ip a l (post-escritu ra ) con in a a cc ió n W B.C uando se realiza la escritu ra lo c a lm e n te se envía co n un co m a n d o Upd el n u e vo v a lo r de la pa lab ra escrita p o r el bu s c o m p a rtid o .

V BusM iss Se obse rva en el b u s c o m p a rtid o un fa llo de o tro p ro ce sa d o r p o r un b lo q u e q u e está u b ic a d o en la cachó lo ca l y n o es c o h e re n te con m em oria p rinc ipa l.Se realiza una actua lizac ión de la m e m o ria p rin c ip a l co n una acc ión de W B para q u e se pueda re so lve r el fa llo y se ca m b ia de es tado al b lo q u e p u e s to q u e pasa a ser c o h e re n te co n m e m o ria p rinc ipa l.

M BusUpd Se de tecta en el b u s c o m p a rtid o una actualización q u e afecta a un b lo ­que u b icado en la cachó. Se realiza la acc ión A c tM C para actua liza r el con ten id o de este b lo q u e co n la palabra escrita en o tro procesador.

Page 282: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 5 .7

Aplicación práctica del protocolo del ejemplo 5.6.

Para co m p re n d e r m e jo r el fu n c io n a m ie n to de este p ro to c o lo , v a m o s a p la n te a r un caso p rá c tic o en el que se u tiliza para m an te n e r la co h e re n c ia de una a rq u ite c tu ra de m e m o ria co m p a rtid a .

S u p o n g a m o s q u e te n e m o s la m ism a a rq u ite c tu ra q u e en el caso p rá c tic o q u e h e m o s e m p le a d o para ilu s ­tra r el p ro to c o lo basado en in va lid a c ió n y el m is m o p a tró n de le c tu ra s y escritu ras en m em o ria .

Caché PO Caché PO

V B1Caché PO

V B1Caché PO

V B1

Caché P1 Caché P1 Caché P1

711 B1

Caché P1

rvirenCaché P2 Caché P2 Caché P2 Caché P2

M BO |

'I ' ’IN IC IO P PO LÍE 81 P\ P 11EÉB1 P 2 ESCRIBE BO

' Caché PO

M B1Caché P»

M B1Caché PO

V B i l l

L S L l o lV BO 1

Caché P1 Caché P.

r v i r s i

Caché P1

( V 1 C E

Caché P2 Cache P!

\ t c b í n

Caché P2

M BO | V J . BO M B1

PO ESCRIBE B1 PO LEE JO P 2 ESCRIBE B 1 |

L e c tu ra /e s c r itu ra E ve n to loca l C o m a n d o s y acc iones

PO lee B1 Fallo de lec tu ra PO vue lca un co m a n d o M is s al bus. M P resue lve el fa llo de lectura .

P1 lee B1 Fallo de lec tu ra P1 vue lca un co m a n d o M is s al bus.PO detecta este co m a n d o (eve n to BusM iss) p e ro n o m o d ific a el e s ta d o de su cop ia .M P resue lve el fa llo de lectura .

P2 escribe BO F a llo de escritu ra P2 vue lca un co m a n d o M is s al bus.M P resue lve el fa llo de escritu ra .P2 vue lca un c o m a n d o U pd al b u s co n la pa lab ra q u e ha escrito loca lm en te .

PO escribe B1 A c ie r to de escritu ra PO vue lca un c o m a n d o U pd al b u s co n la pa lab ra q u e ha escrito lo ca lm e n te y m o d if ic a el es tado de su co p ia de l b loque .P1 de tecta este co m a n d o (B usU pd) y realiza una a cc ió n A stM C para actua liza r el c o n te n id o de su m e m o ria cachó co n la pa la­bra in c lu id a en el c o m a n d o .

PO lee BO Fallo de lec tu ra PO vue lca un co m a n d o M is s al bus.P2 detecta este co m a n d o (even to BusM iss) y hace un W B de BO a m em oria princ ipa l, m od ifica n d o adem ás el estado de su copia. M P resue lve el fa llo de lectura .

Page 283: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

L e c tu ra /e s c r itu ra E ve n to loca l C o m a n d o s y acc iones

P2 escribe B1 F a llo de escritu ra P2 vue lca un co m a n d o M is s al bus.PO de tecta es te c o m a n d o (e ve n to B usM iss) y hace un W B de B1 a m e m o ria p rin c ip a l, m o d if ic a n d o adem ás el es tado de su cop ia .M P resue lve el fa llo de escritu ra .P2 vue lca un c o m a n d o U pd al b u s co n la pa lab ra q u e ha escrito loca lm en te .PO y P1 de tec tan este co m a n d o (B usU pd) y rea lizan una acc ión A c tM C para actua liza r el c o n te n id o de su m e m o ria cachó con la pa lab ra in c lu id a en el co m a n d o .

D e n u e v o te n e m o s un s e n c illo p ro to c o lo de tre s e s tados y d o s co m a n d o s q u e resu e lve el p ro b le m a de la coherenc ia .

¿Qué in co n ve n ien te s p o d e m o s e n c o n tra r a la so lu c ió n exp licada en este caso? N os e n co n tra m o s un p ro ­b lem a s im ila r q u e en el caso de in va lid a c ió n ; to d o s lo s p ro ce sa d o re s q u e rea lizan una escritu ra lo ca l envían un c o m a n d o de ac tua lizac ión p o r el bus . Pero lo hacen s in saber si ex is te a lguna o tra co p ia de l b lo q u e en el s is tem a, p o rq u e si n o la hay, la ac tua lizac ión es co m p le ta m e n te innecesaria .

De n u e vo la so lu c ió n está en a ñ a d ir un c u a rto es tado E xc lu s ivo (E), en el q u e el b lo q u e es co h e re n te co n la m em oria p rin c ip a l y es la ún ica co p ia en una cachó de l s istem a.

G racias a este c u a rto es tado , só lo se env ia rán ac tua lizac iones c u a n d o sea nece sario n o tif ic a r las escritu ras loca les al re s to de co p ia s q u e haya en o tra s cachós de la a rq u ite c tu ra . Pero si n o ex is te n in g u na o tra c o p ia , no se env ia rá esta actua lizac ión , e v ita n d o así una sob reca rga innecesaria en el bu s c o m p a rtid o .

El o tro in c o n v e n ie n te está en que , ta l y c o m o se ha d e fin id o el fu n c io n a m ie n to de l p ro to c o lo , to d o s los p ro ce sa d o re s q u e te n g a n su b lo q u e en es tado m o d if ic a d o harán un W B a m e m o ria p rin c ip a l co n un even to B usM iss , es dec ir, actua liza rán la m e m o ria para q u e pueda re so lve r el fa llo co n lo s d a tos co rre c to s .

Pero to d o s estos v o lc a d o s son innecesarios , basta co n q u e u n o de lo s p ro ce sa d o re s haga el W B , ya que to d a s las cachós t ie n e n exac tam en te la m ism a cop ia de la in fo rm a c ió n .

La m ane ra de re so lve r este p ro b le m a es h a ce r q u e só lo el ú lt im o p ro ce sa d o r q u e ha e s c r ito so b re un b lo ­q u e d e te rm in a d o lo m a rq u e c o m o M o d if ic a d o , m ie n tra s q u e el q u e o cupaba ese p u e s to hasta el m o m e n to pase a e s ta d o V á lid o para q u e n o responda co n un W B c u a n d o se p ro d u zca un B usM iss. Bastaría co n q u e un p ro ce sa d o r co n un b lo q u e en es tado M o d ific a d o lo pase a V á lid o c u a n d o obse rve un B usU pd q u e a fec te a ese b lo q u e (es to s ig n ifica q u e o tro p ro ce sa d o r ha e s c rito este b lo q u e co n p o s te r io r id a d a él).

C om parando am bas alternativas, invalidación y actualización, cabe señalar que:

• M últiples escrituras consecutivas del mismo procesador sobre la m ia ñ a palabra o sobre palabras consecutivas del mismo bloque sin lecturas interm edias, requieren múltiples operaciones d e ac tu a­lización pero sólo u n a d e invalidación.

• La actualización requiere u n a operación por palabra escrita, la invalidación u n a p o r bloque.• El retardo en tre escritura y lectura es m enor en actualización pues el da to ya está actualizado en

todas las cachés. Con el protocolo d e invalidación, para que u n procesador escriba en un bloque, el iesto d e copias se deben invalidar. Por lo tanto, las lecturas posteriores siempre provocan un fallo que hay q u e resolver antes d e poder hacer la lectura con éxito.

Por todo esto, y teniendo en cuen ta el gran consum o d e ancho d e banda del bus que se produce con las actualizaciones, se suden utilizar m ás los protocolos d e invalidación. Pero en aplicaciones con d e rto s patrones d e acceso a m em oria, el aum ento d e la ta sa d e fallos q u e producen las invalidadones puede llegar a degradar bastan te el rendim iento d e la arquitectura, no se tra ta d e una solución perfecta. En algunos casos se diseñan protocolos d e coherencia mixtos, que aplican la invalidación o la actualización según la situación para in ten tar aprovechar las ventajas d e am bos tipos d e solución.

Page 284: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Ejem plo 5 .8

Comparación de protocolos de coherencia basados en invalidación y en actualización.

En lo s e je m p lo s 5.5 y 5.7 q u e h e m o s u tiliza d o para c o m p re n d e r m e jo r el fu n c io n a m ie n to de lo s p ro to c o lo s de in va lid a c ió n y ac tua lizac ión de tre s estados, h e m o s v is to q u e con el p ro to c o lo de in va lid a c ió n se generan tres co m a n d o s de in va lid a c ió n (do s de e llo s son en rea lidad p e tic io n e s de re so lu c ió n de fa llo de t ip o W M iss que llevan adem ás la in va lid a c ió n im p líc ita , y el o tro es un W M iss q u e se envía só lo para inva lida r) m ie n tra s que co n el p ro to c o lo de ac tua lizac ión se han generado tre s co m a n d o s de actua lizac ión (u n o p o r cada escritu ra realizada) q u e im p lica n el t rá f ic o de tre s p a lab ras p o r el b u s c o m p a rtid o .

Si después de la e scritu ra q u e P2 rea liza so b re el b lo q u e 0 se h u b ie ran rea lizad o 255 escritu ra s m ás so ­b re ese m is m o b lo q u e p o r pa rte de ese p ro ce sa d o r (su p o n g a m o s q u e en el p ro ce so q u e se e jecu ta en P2 se escriben c o n s e cu tiva m e n te lo s 256 e le m e n to s de un v e c to r, to d o s en el b lo q u e 0 de m e m o ria ), el p ro to c o lo de in v a lid a c ió n segu iría g e n e ra n d o tre s co m a n d o s de in va lid a c ió n . Sin e m b a rg o el p ro to c o lo de ac tua lizac ión generaría en to ta l 258 co m a n d o s de actua lizac ión , u n o p o r cada pa lab ra escrita en el c ó d ig o , lo q u e supond ría un trá f ic o de 258 p a lab ras p o r el bu s c o m p a rtid o en lu g a r de las tre s p a lab ras q u e te n ía m o s in ic ia lm e n te .

A h o ra s u p o n g a m o s una nueva m o d if ic a c ió n en el p a tró n de accesos a m e m o ria , in c lu y a m o s ju s to al fin a l q u e PO lee B1. ¿Qué o c u rre en este caso? S i h e m o s u tiliza d o el p ro to c o lo de in va lid a c ió n , el es tado de B1 en la cachó de PO es Invá lido , p o r lo q u e habrá q u e re so lve r un fa llo de lectu ra para p o d e r rea liza r este acceso . Esto con lleva tra e r un b lo q u e c o m p le to desde m e m o ria p r in c ip a l, s u p o n g a m o s q u e de 512 palabras.

Sin e m b a rg o , si h e m o s u tiliza d o un p ro to c o lo de ac tua lizac ión , esta nueva lec tu ra n o p rovoca rá n in g ú n fa llo y n o s a h o rra re m o s el t rá f ic o p o r el b u s c o m p a rtid o g e n e ra d o para la re s o lu c ió n de l fa llo .

Por lo ta n to , q u e el re n d im ie n to de un t ip o de p ro to c o lo u o tro sea m e jo r dependerá de l p a tró n de accesos a m e m o ria y de l ta m a ñ o de b loque.

Cuando las jerarquías de m o n o ria incluyen sólo u n nivd d e caché, cualquier tran sacd ó n por el bus implica una com paración d e etiquetas q u e puede interferir con accesos d e los procesadores a sus cachés.

Hay q u e tener en cuen ta que si cad a procesador genera T transacdones de bus p o r segundo y hay N procesadores en el sistem a, cad a procesador deberá exam inar T *N transacciones por segundo p a ra aplicar el protocolo d e coherencia.

Cada uno d e estos exámenes implica, com o mínim o, buscar en la caché local para com probar si la d irecdón involucrada en la transacción se encuentra ubicada en la caché y, si po r lo tanto, hay que reac- d o n a r an te la transacción esp iada en el bus.

P ira evitar estas interferencias del protocolo de coherenda con los procesadores se pueden duplicar las etiquetas d e la m em oria caché. E sto implica la actualización d e los d o s juegos de etiquetas pero así sólo hay conflicto en tre d con tro lador d e caché y el procesador si se produce un acceso sim ultáneo al mismo bloque desde am bos com ponentes.

Este problem a queda resud to en casi todos los sistemas actuales, q u e incorporan caches multinivel en sus jerarquías. D e esta m anera el procesador trabaja la m ayor parte del tiem po con el nivel d e caché m ás cercano y la actividad d e m onitorización se hace sobre o tro nivel.

N orm alm ente las cachés q u e llevan a cabo las tareas d e espionaje son las d e nivel 2, que están conec­tadas al bus com ún y la m em oria principal com partida (figura 5.17). Pero entonces será necesario com ­pletar los protocolos d e coherencia, sean d e invalidación o d e actualización, con algún tipo de mecanismo que perm ita involucrar tam bién en la solución al problem a a las cachés d e nivel 1.

La so ludón m ás utilizada implica añad ir a las cachés d e nivel 1 las etiquetas con el estado d e los Hoques y utilizar u n a política d e escritura d irecta en esta caché. Así, cualquier modificación en d estado de un bloque en la caché d e nivel 1 se propagará inm ediatam ente a la caché d e nivel 2 y al resto d e pro ­cesadores del sistema a través d e la im plem entación del protocolo d e coherenda. Por o tro lado, com o d principio d e inclusión debe estar garantizado en la jerarquía d e m onoria , cualquier cam bio q u e se produzca en la caché d e nivel 2 se deberá reflejar en la caché de nivel 1 inm ediatam ente, ya q u e ésta debe contener siem pre un subconjunto del contenido d e la caché d e nivel 2.

Page 285: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Procesador Procesador Procesador

F ig u r a 5 .1 7

P ro to c o lo d e c o h e re n c ia b a s a d o en e s p io n a je c o n d o s n iv e le s d e caché.

Por últim o, cabe m encionar q u e en la m ayor p a rte d e los p ro toco los d e coherencia hay q u e resolver problem as d e interbloqueo e inanición. Por ejem plo, ¿qué ocurre si d o s procesadores vuelcan u n co ­m ando d e escritu ra en exclusiva al mismo tiem po en el bus? Será el a rb itra je del bus el que decida cuál de los com andos se transm itirá prim ero. E sto h a rá q u e el procesador cuyo com ando quede en segundo lugar tenga q u e invalidar el b loque en su m o n o ria caché y no pueda realizar la escritura, sino q u e tendrá que enviar un com ando d e fallo d e escritu ra p o r el b loque q u e acaba d e invalidar y sobre el que quería escribir.

fó ra m anejar este tipo d e situaciones m uchos protocolos term inan introduciendo estados interm e­dios C om partido/M odificado, de m anera q u e un bloque pasa a este estado cuando se hace la petición de escritura en exclusiva y dependiendo del resultado d e esta solicitud, se pasa al estado M odificado o no.

U na vez discutidos estos problem as prácticos de im plem entación, hay q u e señalar q u e la principal desventaja de los protocolos d e coherencia d e espionaje, sea cual sea la opción d e diseño escogida, está en su fa lta d e escalabilidad. En sistemas con un gran número d e procesadores el tiempo en el q u e puede resolverse un fallo de caché acaba lim itado siempre p o r los tiem pos relacionados co n las tareas de esp io­naje y com probación, en lugar d e co n la latencia del bus y d e la m o n o ria principal.

5.3.2. Soluciones para el problema de la consistencia

Este problem a se resuelve definiendo u n m odelo d e consistencia para com pletar d repertorio de instrucciones d e la arqu itectura de m em oria com partida. Es decir, el problem a d e la consistencia no se resuelve desde d hardware, sino q u e se resuelve definiendo u n modelo q u e ordene las referendas a la m e­m oria com partida d e los diferentes procesadores.

El m o d d o d e consistencia m ás sendllo es el d e consistencia secuencial, q u e im pone u n orden abso­luto a todas las referencias a m em oria que realizan to dos los procesadores. Con u n m odelo d e consis­

Page 286: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

tencia secuencial es com o si se establecieran tu rn o s p a ra acceder a la m em oria co m p artid a (los accesos son atóm icos, se realizan d e uno en uno), en tre lazando las referencias a m em oria d e los d istin tos procesadores com o si se tra ta ra d e u n código com pilado con m ultithreading p a ra u n sistem a m ono- procesador.

D entro d e cad a procesador, las referencias se ordenan co n el orden d e program a trad icional, es decir, debe parecer q u e los accesos a m em oria se han realizado en el orden secuencial en el q u e apare­cen en el código. L as referencias realizadas p o r d iferentes procesadores se o rd en arán d e la form a que especifique el usuario o desarro llado r m edian te m ecanism os d e sincronización explícitos, el m odelo de consistencia secuencial no propone n inguna form a concre ta d e establecer los tu rn o s p a ra el acceso a m em oria.

Aunque este modelo d e consistencia es m uy sencillo de com prender e intuitivo para un usuario o desarrollador, las lim itaciones q u e implica im poner u n orden to ta l a todas las referencias a m em oria son dem asiado fuertes, im pidiendo utilizar m uchas de las optim izaciones q u e incorporan los com piladores y procesadores actuales, q u e tienden a no respetar el orden d e program a d u ran te la ejecución de los proce­sos (reordenan instrucciones, d im in an resultados interm edios, etc).

El m odelo de consistencia secuendal exige unas características concretas en la arquitectura hardw are que lo implementa:

1. L as referencias a m em oria realizadas p o r d iferentes procesos deben realizarse d e m anera a tó ­mica. E sto exige q u e se serialicen las escritu ras realizadas a u n a m ism a d irección d e m em oria y q u e to d as las escritu ras, sean a la m ism a o a d iferentes direcciones, se vean en el mismo orden en tod o s los p rocesadores q u e com ponen la arqu itec tu ra . P a ra cu m p lir con estas exi­gencias, es necesario q u e la red inc lu ida en la a rq u itec tu ra en tregue los m ensajes en los nodos destino exactam ente en el mismo orden en el q u e se enviaron desde el nodo origen y q u e se p roh íba leer un nuevo valor escrito p o r u n p rocesador hasta q u e to d as las cachés co n copia de este valor hayan recibido to d a s las invalidaciones o actualizaciones del p ro toco lo d e cohe­rencia.

2. Las referencias a m em oria realizadas den tro d e un proceso deben realizarse en el orden d e pro ­gram a, p o r lo q u e no se perm ite ejecución fuera d e orden. E sto implica q u e los procesadores no pueden utilizar n inguna técnica d e aum ento d e prestaciones q u e desordene la ejecución d e las instrucciones y d e nuevo, q u e la red q u e incluya la arqu itectura garantice que todos los mensajes que se envían p o r ella llegan a sus destinos exactam ente en el mismo orden en el q u e se han en ­viado.

Por lo tanto, para utilizar u n m odelo d e consistencia secuencial será necesario q u e los procesadores, la red y los contro ladores d e coherencia d e las cachés, así com o el com pilador, cum plan con unos requi­sitos determ inados, p o r norm a general, m uy difíciles d e cum plir.

Es por esto que norm alm ente se utilizan m odelos relajados d e consistencia. En este caso se exige al usuario o desarro llador q u e etiquete d e m anera explícita las referencias a m em oria q u e deben ser o rdena­das, rebajando mucho las exigencias q u e la solución del problem a de consistencia im pone al hardw are y al com pilador, ya q u e así no es necesario m antener la atom icidad de los accesos a m em oria o el orden de program a den tro d e cada procesador.

N orm alm ente estos m odelos relajan:

1. La atom icidad. A lgunos m odelos perm iten que un procesador lea el valor escrito por otro pro ­cesador en u n a posición d e m em oria an tes d e que esta escritura sea visible por los dem ás proce­sadores.

2. El orden d e program a. A lgunos m odelos perm iten q u e los accesos a m em oria d e u n único pro ­cesador no se realicen en el orden secuencial del program a.

Page 287: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Ejem plo 5 .9

Ejemplo de consistencia secuencial.

S u p o n g a m o s q u e en una a rq u ite c tu ra de m e m o ria c o m p a rtid a co n tre s p ro ce sa d o re s (PO, P1 y P2) se rea ­lizan las s ig u ie n tes ope rac iones :

| Proce s a d o r0 Procesador FYocesador 2

R= 100;A = 0 ; lf(A =0)

B = 0 ; If (B = 0)

:

R esultado=R;

• Nota: No se han incluido en los códigos los mecanismos de sincronización necesarios para acceder a las variables compartidas. Suponemos de momento que este problema está resuelto, ya veremos en la sección siguiente las alternativas que existen.

La p re g u n ta en este caso es, ¿ podem os es ta r segu ro s con un m o d e lo de co n s is tenc ia secuencia l de q u e en la v a r ia b le R esu ltado quedará a lm ace n a d o el v a lo r 100?

Si ana lizam os lo q u e im p lica el m o d e lo de co n s is tenc ia secuencia l, q u e se respeta el o rd e n de p ro g ra m a d e n tro de cada p ro ce sa d o r y q u e la a to m ic id a d garan tiza q u e to d a s las escritu ra s se vean al m is m o t ie m p o en to d o s lo s p ro ce sa d o re s , p o d e m o s d e d u c ir q u e sí, q u e R esu lta d o= 1 0 0 .

Eso es así p o rq u e PO esc ribe R = 100 y A = 0 ju s to en este o rd e n , e n ton ce s P1 v e A = 0 y hace B = 0 y p o r ú lt im o c u a n d o P2 v e B = 0 , hace R e su lta d o= R = 100.

O b v ia m e n te , si a P2 llega an tes el v a lo r B = 0 q u e el v a lo r R = 100, el re s u lta d o ya n o sería el espe rado . Esto pod ría o c u rr ir p rin c ip a lm e n te p o r d o s m o tiv o s :

• Por las d ife re n te s la tenc ias de co m u n ica c io n e s e n tre u n o s p ro ce sa d o re s y o tro s de la a rqu ite c tu ra .• Porque la p ro p a g a c ió n de una escritu ra en m e m o ria p rin c ip a l a to d a s las m e m o ria s caché q u e tienen

cop ia de l b lo q u e m o d if ic a d o n o son a tó m ica s casi nunca.

Por eso para g a ra n tiza r la cons is tenc ia secuenc ia l es nece sario ta m b ié n q u e la red in c lu id a en la a rq u ite c ­tu ra e n tre g u e lo s m ensa jes en lo s n o d o s de s tin o e xa c tam e n te en el m is m o o rd e n en el q u e se e n v ia ro n desde el n o d o o rig e n y q u e se p roh íba le e r un n u e vo v a lo r e sc rito p o r un p ro ce sa d o r hasta q u e to d a s las cachés con cop ia de este v a lo r hayan re c ib id o to d a s las in va lid a c io n es o ac tua lizac iones de l p ro to c o lo de coherenc ia .

A ú n c u m p lie n d o estas co n d ic io n e s , p o d ría n s u rg ir m u ltitu d de " im p re v is to s " s im ila re s q u e co n el m o d e lo de cons is te nc ia secuencia l n o no s ga ran tizarían un R esu ltado= 100 .

Ejem plo 5 .1 0

Modelo de ordenación débil para consistencia.

Este m o d e lo es un e je m p lo t íp ic o d e lo s m o d e lo s re la jad o s de co n s is tenc ia q u e in te n ta n re d u c ir to d a s las res tr icc io n e s im p ue s ta s p o r el m o d e lo de cons is te nc ia secuencia l tra n s fir ié n d o le pa rte de la re sp o n sa b ilid a d al u suario o desa rro llado r. Se basa en m an te n e r el o rd e n de lo s accesos a m e m o ria só lo c u a n d o ex is te un có d ig o e xp líc ito de s inc ron iza c ió n q u e así lo in d iq u e .

S egún este m o d e lo h a y d o s c lases de accesos a m e m o ria : las o p e ra c io n e s de d a tos (DO p) y las o p e ra c io ­nes de s inc ron iza c ió n (SO p). El d e s a rro lla d o r debe e tiq u e ta r c o m o o p e ra c io n e s de s inc ron iza c ió n aque llas en las q u e es necesario m a n te n e r un o rd e n c o n c re to , el re s to de o p e ra c io n e s serán de datos.

Page 288: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Si S O p es una o p e ra c ió n de s in c ron izac ión , el m o d e lo de o rd e n a c ió n d é b il garan tiza :

• Todas las D O p q u e aparecen an tes en el o rden de p ro g ra m a se han c o m p le ta d o an tes de e je cu ta r la S O p .

• Esta S O p se co m p le ta an tes q u e to d a s las D O p p o s te r io re s en el o rd e n de p rog ram a .

En el e je m p lo de la f ig u ra , lo q u e no s garan tiza el m o d e lo de o rd e n a c ió n d é b il es q u e to d a s las le c tu ra s y e scritu ras de l b lo q u e DOp1 fina liza rán an tes de la e je cu c ió n SO p1. Y a l m is m o t ie m p o , q u e esta s inc ron izac ión se c o m p le ta rá s ie m p re an tes de rea liza r las o p e ra c io n e s le c tu ra y e scritu ra de l b lo q u e D O p2. N o ha y n in g u na otra ga ran tía , es dec ir, n o hace fa lta q u e se cu m p la el o rd e n de p ro g ra m a para las D O p de l b lo q u e 1, si hub ie ra o tro b lo q u e co n S O p sus accesos a m e m o ria p o d ría n re o rd e n a rse e in te rca la rse co n el b lo q u e S O p1 , etc.

5.3.3. Soluciones para el problema de la sincronización

Como se h a m encionado con anterioridad, en las arquitecturas d e m em oria com partida la com u­nicación en tre procesos se realiza de m anera explícita a través d e las variables com partidas. Por ello es necesario sincronizar el acceso a estas variables com partidas.

Aunque casi to d as las arquitecturas incorporan m ejoras en el hardw are q u e ayudan a increm entar el rendimiento d e la sincronización y d e la com unicación en tre procesos (registros explícitos p a ra com uni­cación, líneas especiales en d bus com partido), d e nuevo la solución al problem a no viene d ad a desde el hardware, sino desde el sistem a operativo o la program ación explícita.

Sin em bargo, estas soluciones se basan en instrucciones o prim itivas de sincronización q u e debe ofrecer d repertorio de instrucciones d e la arquitectura. Las prim itivas atóm icas m ás habituales en los repertorios d e instrucciones son las siguientes:

• Test& Set. E sta primitiva permite leer una posición de la m onoria com partida m(x), volcar su conte­nido a un registro d d procesador local R y modificar el valor de la posición d e m em oria m(x) hacien­do que valga 1. Por tan to se pueden hacer de m anera atóm ica las operaciones R=m (x) y m(x)= 1.

• Sw ap. E sta prim itiva perm ite in tercam biar el contenido de u n a posición d e m em oria m(x) y un registro d d procesador local R . Es decir, se com pletan de m anera atóm ica las operaciones m (x)=R y R=m (x).

• Cóm pare& Swap. En este caso d intercam bio en tre un registro y u n a posición d e m em oria viene d e ­term inado p o r d contenido de otro registro. Es decir, si m (x )= R l, entonces se hace e l intercam bio R2=m(x) y m (x)=R 2.

• Fetch&Op. E sta prim itiva perm ite volcar d contenido de u n a posición de m em oria a un registro del procesador local y realizar u n a operación O p en tre este contenido y u n a variable a. Después, se

Page 289: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

escribe el resultado d e esta operación en la misma posición d e m em oria. P or lo tan to , se realizan de m anera atóm ica las operaciones m(x)=m(x) O p a y R=m (x).

• Load Linked& Store Conditional: La instrucción L L carga una poáción d e m em oria m(x) en un registro R y reserva el bloque d e cache en el que está la posición m(x). La instrucción SC in tenta actualizar d contenido d e la posición d e m em oria m(x). L a actualizadón sólo tiene éxito si se m an­tiene la reserva en la caché. L a reserva se pierde si se recibe una orden d e invalidación de otro pro ­cesador, si se produce u n reemplazamiento d e ese bloque en la caché o si se produce un cam bio de contexto. Si la actualizadón no tiene éxito porque la reserva se ha perdido, no se produce d Store.

Con estas prim itivas se puede realizar sincronización m ediante exdusión m utua, es decir, se puede garantizar q u e sólo u n proceso puede acceder a la m em oria com partida en u n m om ento dado (o a cua l­quier o tro recurso com partido).

R ira llegar a es ta exclusión m utua, suelen utilizarse cerrojos basados en las prim itivas d e sincroniza- d ó n . Sea cual sea la form a en la que se im plem enta el cerrojo, siempre se basa en dos acciones.

La prim era, el d e rre del cerrojo o lock, con la que un proceso in ten ta adquirir el derecho a u tilizar el recurso com partido. P or lo tan to , si varios procesos intentan cerrar el cerrojo al m ismo tiempo, sólo uno de ellos lo debe conseguir. L os dem ás deben q u ed a r a la espera de u tilizar el recurso com partido cuando les llegue su turno.

La segunda, la apertu ra d e cerrojo o unlock, con la q u e se libera el recurso com partido. Si ningún proceso estaba esperando por él, el próximo en hacer un lock, pod rá pasar a utilizarlo directam ente. Si había procesos esperando p o r el recurso, uno d e ellos p o d rá hacer el lock.

Ejem plo 5.11

Ejemplo de cerrojo simple.

V eam os p r im e ro un e je m p lo de u tiliza c ió n de c e rro jo para co n se g u ir exc lus ión m u tu a en el acceso a una va riab le co m p a rtid a .

S u p o n g a m o s q u e es tam os a c u m u la n d o en una v a ria b le a cu m la sum a de to d o s lo s e le m e n to s de un ve c to r de lo n g itu d K:

fo r ( i= 0 ; ¡ < k ; i+ + )

a c u m = a c u m + v e c to r [ i] ;

S i e je cu tam o s este m is m o có d ig o en una a rqu itec tu ra de m e m o ria co m p a rtid a , a cada p ro ce sa d o r le co rre sp o n d e rea lizar la acu m u la c ió n pa rc ia l de una pa rte de lo s e le m e n to s de l v e c to r (desde el índ ice in ic ia l has­ta el índ ice fin a l). D espués se hace la sum a de to d o s lo s a cu m u la d o res parc ia les en la va riab le g loba l acum :

fo r ( i= in ic ia l ; ¡ < f in a l; i+ + )

p a rc ia l = p a rc ia l + v e c to rp ) ;

b c k (c e rro jo )

a c u m = a c u m + p a rc ia l;

u n lo c k (c e rro jo )

Page 290: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Para ga ran tiza r la e xc lu s ió n m u tu a en el acceso a la va riab le co m p a rtid a a cu m se ha u tiliza d o un ce rro jo , q u e p e rm ite q u e se se ria licen las sum as de las acum u la c io n e s pa rc ia le s rea lizadas p o r lo s d ife re n te s p roce sa ­dores.

La im p le m e n ta c ió n de las fu n c io n e s lo ck y u n lo ck para el m an e jo de l c e rro jo dependerá de las p r im it iv a s de s inc ron iza c ió n q u e estén d isp o n ib le s en la a rqu ite c tu ra .

Por e je m p lo , la fu n c ió n de lo ck se pu e de ¡m p le m e n ta r co n Test&Set:

w h ile (T es t & S e t (c e r ro jo ) = = 1)

{}

Ftero ta m b ié n con C om pare& S w ap :

Aux=1;d o

c o m p a re & s w a p ( 0 , a u x , c e rro jo ) ;

w h ile (a u x = = 1)

c o m p a re & s w a p (o , a u x , c e rro jo )

¡f (c e r ro jo = = 0)

te m p = c e r ro jo ;

c e r ro jo = aux ;

a u x = te m p ;

O co n Fetch&Op, e sco g ie n d o c o m o ope ra c ió n el OR:

w h ile (F e tch & O R(ce

{}

Además d e la utilización de cerrojos para conseguir la exclusión m utua, existen otros m ecanismos para la sincronización y com unicación en tre procesos. P or ejem plo, se pueden utilizar barreras para la sincronización global, pero estas soluciones escapan d d alcance d e este libro.

Diseño de arquitecturas de memoria compartida-distribuidaComo ya se h a m endonado con anterioridad, este tipo de arquitecturas perm iten m ejorar la escala­

bilidad d e las d e m em oria com partida al elim inar el cu d lo d e botella que suponen la m em oria principal com partida y el bus.

Este bus se sustituye p o r una red d e com unicación m ás sofisticada que perm ite un m ayor ancho de banda, d e m anera q u e la m em oria se distribuye en tre los nodos, pero se tiene un único espacio d e direc- dones.

M I

Page 291: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Los problem as que surgen al trabajar con este tipo d e arquitecturas son los m ían o s que con las de m onoria com partida , ya q u e existe un único espacio d e direcciones físicas com partido: coherencia, co n ­sistencia y sincronización.

La consistencia y la sincronización se solucionan co n las m ism as alternativas que en d caso d e las arquitecturas de m em oria d istribu ida (teniendo en cuen ta q u e la red d e com unicaciones ya no es un bus y esto puede in tro d u d r algo m ás d e com plejidad), pero la solución para el problem a d e la coherencia es com pletam ente diferente q u e en estas arquitecturas, ya que al no existir un bus de medio com partido no puede utilizarse com o herram ienta el espionaje.

5.4.1. Soluciones para el problema de la coherencia

En el caso d e tener un único espacio d e direcdones distribuido sobre diferentes memorias físicas, la solución más sendlla para resolver d problem a d e la coherenda es m arcar los datos com partidos para no llevarlos a las cachés de los diferentes procesadores. Obviamente esta solución presenta dos desventajas importantes. L a prim era, puede llegar a ser muy com plicado q u e el com pilador o d program ador m arquen estos datos com partidos q u e deben ser siempre accedidos a i m em oria principal. L a segunda, el rendimiento de los accesos a m em oria em peora drásticam ente para los datos com partidos, ya que no se puede aprove­char la localidad espacial com o se hace habitualm ente y es com o si no existiera una jerarquía d e m onoria.

La solución son los protocolos d e coherenda basados en directorio, ya q u e los d e snoopy no pueden utilizarse con las redes d e com unicaciones utilizadas 01 este tipo d e arquitecturas (no son d e m edio com ­partido).

El directorio es, en prim era instancia, una estructu ra centralizada que m an tio ie el estado d e todos los bloques q u e contienen las m o n o rias principales del sistema (figura 5.18).

BO VO SO

BN VN SN

F ig u r a 5 .1 8

P ro to c o lo d e c o h e re n c ia b a s a d o en d ire c to r io c e n tra liz a d o .

Page 292: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Es decir, se asocia una en trada en el directorio a cada bloque d e m em oria principal y se m antiene actualizado su estado en cada caché del sistema. Es im portan te que se m antenga inform ación sobre qué caches tienen copias d e cad a bloque (vector d e com partidos, V) y si lo han m odificado (estado del blo­que, S).

El vecto r d e co m p artid o s suele con tener ta n to s e lem entos com o n o d o s tiene el sistem a, e indica qu é n o d o s tienen u n a co p ia co m p artid a d e c a d a b loque en su caché pon iendo u n 1 en la posición qu e co rresponde a ese nodo en el vector. C uando se produce u n a escritu ra en u n b loque en estado com partido sólo es necesario enviar un m ensaje d e invalidación a los p rocesadores indicados en este vector.

H ay q u e señ a la r q u e los p ro to co lo s b a sad o s en d irec to rio siem pre fu n c io n an m ed ian te invali­d ac ió n , ya q u e u n m ecanism o d e ac tualizac ión resu lta ría dem asiad o co sto so co n u n a red com o la qu e incluyen las a rq u itec tu ras d e m em oria c o m p a rtid a -d is trib u id a (h a r ía fa lta u n m ensaje nuevo p a ra cad a p ro cesad o r co n c o p ia d e un b loque en su caché p o r c a d a p a la b ra q u e se m od ificara de éste).

fó ra evitar que d directorio se convierta en u n nuevo cuello d e botella, la m ayor parte d e las arquitec­turas d e m em oria com partida-distribuida actuales distribuyen el directorio en tre tod o s los nodos del sis­tem a (figura 5.19). N orm alm ente a cad a nodo le corresponden las en tradas del directorio que alm acenan d estado de los bloques ubicados en su m em oria principal. Hay que recordar q u e en estas arquitecturas d espacio d e direcciones está dividido de form a estática en tre los procesadores y p o r lo tan to esta división es conocida p o r todos ellos.

M em oriaPrincipal

M em rv iaPrincipal

M em oriaCaché M em oria

PrincipalM emoria

C aché

El diroctoripx so almacena

en la Memoria Pnncipal de cada nodo

R ed d e In te rc o n e x ió n

F ig u r a 5 .1 9

P ro to c o lo d e c o h e re n c ia b a s a d o en d ire c to r io d is t r ib u id o .

Cuando el directorio está d istribuido se suele u tilizar la siguiente nom enclatura:

• Nodo loca l. O rigina la solicitud d e lectura o escritu ra d e un dato.• Nodo propietario. N odo en el q u e residen el dato (en la m em oria principal) y su estado (en la e n tra ­

d a del directorio q u e corresponda).

Page 293: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

• Nodo remoto. N odo q u e tiene copias adicionales del da to en su m em oria caché, en estado exclusivo o com partido.

Los tres nodos pueden coincidir, o bien d o s de ellos, y el protocolo no varía salvo en que los mensajes generados son locales (no hace falta q u e salgan a la red d e com unicaciones para enviarse).

C abe señalar q u e p a ra q u e este tipo d e p ro toco los funcionen se d eb e cum plir la h ipó tesis de consistencia secuencial, e s decir, q u e tod o s los m ensajes se reciben en el m ism o orden en el q u e se envían.

D e nuevo es necesario añad ir a la arquitectura controladores d e coherencia p a ra resolver d problem a de la coherenda desde el hardware. Pero en este caso hay que d iseñar d o s tipos d e controladores diferen­tes, los d e las m em orias cachés y los d e los directorios.

Por lo tanto, p a ra d iseñar un protocolo d e este tipo es necesario especificar:

• Los posibles estados d e un bloque alojado en u n determ inado m arco de la caché d e un procesador, desde el punto d e vista d e la propia caché y desde el punto d e vista del directorio.

• Los mensajes del protocolo, es decir, las órdenes o peticiones que los controladores envían p o r la ied a o tros controladores m ediante prim itivas d e envío Send. Es necesario especificar el tipo de mensaje, su contenido, y los nodos origen y destino del mismo.

• El d iagram a d e transición de estados d e los bloques en caché y en d directorio, con los eventos que pueden provocar estas transiciones y las acdones q u e hay q u e llevar a cabo an te determ inados eventos, transiciones o com andos.

D e nuevo existen m ultitud d e alternativas p a ra la im plem entación d e los protocolos d e coherencia, por lo que sigue siendo difícil p roponer una notación general. Sin em bargo, para la definición d e eventos, se puede m antener la diferenciación en tre eventos locales y globales.

Los eventos locales son exactam ente los mismos que en el caso d e arquitecturas de m em oria com ­partida.

E n el caso d e los even tos globales, siem pre se u tiliza en este libro la n o tac ión Recv(m ensaje) p a ra identificarlos. Es decir, hab rá siem pre u n tipo d e evento g lobal p o r cad a tip o d e m ensaje del pro tocolo .

Por ejem plo, Recv(Inv) sería el evento en el que se recibe en el nodo local u n m ensaje d e invalidación desde d nodo propietario. Aunque en algunos casos estas com unicaciones sean locales, siempre existe com unicación explícita para q u e la im plem entación del protocolo sea m ás sendlla.

El com portam iento del con tro lador d e la m em oria caché es m uy similar al d d diseñado para arqui­tecturas d e m em oria com partida, pero los eventos globales pasan d e ser com andos observados o espiados en el bus, a ser recepciones d e mensajes p o r la red.

D i cuan to al con tro lador d e un directorio, en general puede recibir tres tipos d e mensajes:

• Fallo d e lectura.• Fallo d e escritura.• R>st-escritura.

Y la recepción d e estos mensajes puede causar:

• Actualización d d estado d e un bloque o del vector de com partidos en el directorio.• Envío de mensajes en respuesta a solicitudes (para resolver u n fallo, para realizar una invalida­

ción etc).

En la tabla 5.1 se observa un conjunto d e mensajes típico para la im plem entación d e u n protocolo de coherencia d e caché sencillo basado en directorio.

Page 294: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

T a b l a 5 .1

C o n ju n to d e m e n s a je s p a ra la ¡m p le m e n ta c ió n d e un p ro to c o lo d e c o h e re n c ia de c a ch é b a s a d o en d ire c to r io d is tr ib u id o .

Etiqueta Origen Destino Contenido Significado

RM iss C achó Loca l D ire c to r ioP ro p ie ta r io

P, A El n o d o P t ie n e un fa llo d e le c tu ra p o r la d ire c c ió n A .

W M iss C aché Loca l D ire c to r ioP ro p ie ta r io

P, A El n o d o P t ie n e un fa llo de e s c r i tu ­ra p o r la d ire c c ió n A .

Inv D ire c to r ioP ro p ie ta r io

C aché R e m o ta A In v a lid a c ió n d e l b lo q u e q u e c o n ­t ie n e la d ire c c ió n A .

Fetch D ire c to r ioP ro p ie ta r io

C aché R e m o ta A O rd e n d e p o s t-e s c r itu ra d e l b lo q u e q u e c o n tie n e la d ire c c ió n A .

Fetch + lnv D ire c to r ioP ro p ie ta r io

C aché R e m o ta A O rd e n d e p o s t-e s c r itu ra s e g u id a de In v a lid a c ió n d e l b lo q u e q u e c o n tie n e la d ire c c ió n A .

Reply D ire c to r ioP ro p ie ta r io

C aché Loca l B lo q u e E nvío d e un b lo q u e p a ra re s o lv e r un fa llo .

W B C achéR e m o ta

D ire c to r ioP ro p ie ta r io

P, A , B lo q u e El n o d o P re a liza u n a p o s t-e s c r itu - ra d e l b lo q u e q u e c o n t ie n e la d i­re c c ió n A .

Ejem plo 5 .1 2

Protocolo de coherencia de caché basado en d irectorio d istribuido, de 3 estados en cachéyen directorio con invalidación.

En este e je m p lo te n e m o s un p ro to c o lo q u e d e fin e tre s es tados p o s ib le s para lo s b lo q u e s u b ica d o s en cachó:

• In v á lid o (I). El b lo q u e n o está en la caché y si lo ha es tado en a lgún m o m e n to , ha s id o in v a lid a d o , p o r lo q u e cu a n do el p ro ce sa d o r lo so lic ita para le e r o para e s c r ib ir se p ro d u ce un fa llo .

• C o m p a rtid o o Shared (S). El b lo q u e está en la cachó y es co h e re n te co n la m e m o ria p rin c ip a l. Puede que ex is tan o tra s co p ia s en estas m ism as co n d ic io n e s en las cachós de o tro s p rocesado res .

• M o d if ic a d o (M ). El b lo q u e está en la cachó y n o es c o h e re n te co n la m e m o ria p rin c ip a l. E sto s ig n ifica q u e se ha rea lizado al m e n o s una e scritu ra so b re él y q u e p o r lo ta n to , es la ún ica cop ia en las cachós de l s istem a.

Es decir, son lo s m is m o s estados q u e ya u tiliza m os en el p ro to c o lo M SI basado en e sp iona je (e je m p lo 5.4).En c u a n to a lo s es tados q u e pu e de te n e r un b lo q u e d esde el p u n to de v is ta de l d ire c to r io son tre s m u y

sim ila res :

• U ncached o n o cach e ad o (U). El b lo q u e n o está en n in g u na cachó de l s istem a.• C o m p a rtid o o S hared (S). El b lo q u e está en una o m ás cachós y es co h e re n te co n la m e m o ria p rinc ipa l.• M o d if ic a d o (M ). El b lo q u e está en una ún ica cachó y n o es co h e re n te co n la m e m o ria p rin c ip a l. Esto

s ig n ifica q u e se ha rea lizad o al m e n o s una e scritu ra so b re él y q u e p o r lo ta n to , si había o tra s co p ia s de es te b lo q u e en o tra s cachós, se h a b rán inva lid a d o .

Page 295: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Los m en sa je s q u e u tiliza este p ro to c o lo son lo s q u e h e m o s v is to en la ta b la 5 .1 . El d iag ram a de tra n s ic ió n de es ta do s d esde el p u n to de v is ta de las cachés para este p ro to c o lo es el s ig u ie n te :

N o es n e ce sa rio ana liza r las tra n s ic io n e s de es te d ia g ra m a en p ro fu n d id a d ya q u e so n las m ism a s que en el p ro to c o lo M S I b a sa do en e sp io n a je de l e je m p lo 5.4. La p rin c ip a l d ife re n c ia es q u e en es te ca so los e ven to s g lo b a le s n o c o n s is te n en d e te c ta r un c o m a n d o en el b u s c o m p a rt id o s in o en re c ib ir un m en sa je del d ire c to r io .

La n ovedad está m ás b ien en el d ia g ra m a de tra n s ic ió n de es tados desde el p u n to de v is ta de l d ire c to r io :

R c c v ( R M is s ) /

Page 296: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Para s im p lif ic a r el d iag ram a só lo se ha p u e s to una vez el e n v ío de l m ensa je de in v a lid a c ió n (S end(lnv)) p o r p a rte de l d ire c to r io , p e ro se envía un m ensa je de este t ip o a cada n o d o q u e aparece en el v e c to r de c o m p a r­t id o s de l b lo q u e in vo lu c ra d o .

T am bién para s im p lif ic a r el d ia g ra m a y q u e se co m p re n d a m e jo r, n o se han in c lu id o lo s m ensa jes que pueden lle g a r al d ire c to r io cu a n do las d is tin ta s cachés de l s is tem a rem p lazan sus b lo q u e s su c io s (sería un e ven to R ecv(W B) e sp on táneo , sin q u e haya h a b id o un m ensa je de Fetch o de F e tc h + ln v p re v ia m e n te ). En este caso , el m ensa je de W B lleva un b lo q u e en su in te rio r, p o r lo q u e lo ú n ic o q u e t ie n e q u e h a ce r el d ire c to r io es actua liza r el v e c to r de c o m p a rtid o s de l b lo q u e h a c ie n d o V = 0 , y pasar de l es tado M al es tado U. En el caso de ree m p lazam ien tos de b lo q u e s q u e n o han s id o m o d if ic a d o s , se u tiliza el m ensa je co n e tiq u e ta W B p e ro vacío (no hace fa lta ac tua liza r el b lo q u e en la m e m o ria p r in c ip a l) , e s to s ig n ifica q u e la caché ha rem p la za d o un b lo ­que lim p io . Por lo q u e el d ire c to r io actualiza el v e c to r de c o m p a rtid o s y de ja al b lo q u e en el e s ta d o S , a n o ser que el p ro ce sa d o r de l q u e llegue el m ensa je fue ra el ú n ic o co n co p ia de l b lo q u e , p o r lo q u e se pasa ta m b ié n al es tado U y a q u e V = 0 .

A n a lic e m o s en es te caso las tra n s ic io n e s q u e se p ro d u c e n d esde cada u n o de lo s estados:

i ESTADO 1 ESTADO EVENTO

DELAU U I ll'iV»

DELA QUE LA

TRANSICIÓN TRANSICIÓN PROVOCAEXPLICACIÓN

u S Recv(RMiss) E l d ire c to r io envía cop ia de l b lo q u e so lic ita d o al p ro ce sa d o r lo ca l y p o n e un 1 en el v e c to r de co m p a rtid o s en la p o s ic ió n q u e c o rre s ­ponde .

M R ecv(W M iss) E l d ire c to r io envía cop ia de l b lo q u e so lic ita d o al p ro ce sa d o r lo ca l y p o n e un 1 en el v e c to r de co m p a rtid o s en la p o s ic ió n q u e c o rre s ­ponde .

s S Recv(RMiss) E l d ire c to r io envía co p ia de l b lo q u e so lic ita d o al p ro ce sa d o r loca l y añade un 1 en el v e c to r de c o m p a rtid o s en la p o s ic ió n q u e co ­rresponde.

M R ecv(W M iss) y P c o m p a r­te el b lo q u e

El d ire c to r io envía un m ensa je In v a to d o s las cach ó s re m o ta s que tienen co p ia de l b lo q u e en el q u e el p ro ce sa d o r lo ca l va a escrib ir. A ctua liza el v e c to r de c o m p a rtid o s d e ja n d o un ú n ic o 1 en la pos i­ción de l p ro ce sa d o r q u e va a rea liza r la escritu ra .

M R ecv(W M iss) y P no

c o m p a rte el b lo q u e

El d ire c to r io envía un m ensa je de in va lid a c ió n a to d a s las cachós rem o ta s q u e t ie n e n cop ia de l b lo q u e en el q u e el p ro ce sa d o r loca l va a escribir.El d ire c to r io envía cop ia de l b lo q u e so lic ita d o al p ro ce sa d o r lo ca l y pone un 1 en el v e c to r de co m p a rtid o s en la p o s ic ió n q u e c o rre s ­ponde.

M S Recv(RM iss) El d ire c to r io envía un m ensa je de Fetch a la cachó re m o ta q u e tie n e el b lo q u e m o d ific a d o .Cuando rec ibe el W B desde esta cachó, el d ire c to r io envía cop ia del b lo q u e so lic ita d o al p ro ce sa d o r loca l y p o n e un 1 en el v e c to r de c o m p a rtid o s en la p o s ic ió n q u e co rre sp o n de .

M R ecv(W M iss) El d ire c to r io envía un m ensa je de F e tc h + ln v a la caché re m o ta que tie n e el b lo q u e m o d ific a d o .Cuando rec ibe el W B desde esta cachó , el d ire c to r io envía cop ia del b lo q u e so lic ita d o al p ro ce sa d o r lo ca l y p o n e un ú n ic o 1 en el v e c to r de c o m p a rtid o s en la p o s ic ió n q u e co rresponde .

Se pu e de o b se rva r q u e co n el c o n ju n to de e tiq u e ta s q u e m a n e ja m o s en este e je m p lo , cu a n do un p ro c e ­sador q u e t ie n e un a c ie rto de escritu ra q u ie re n o tif ic a r al d ire c to r io q u e va a rea lizar una e scritu ra so b re ese b lo q u e q u e ya tie n e , lo hace con un m ensa je W M is s (ya q u e n o te n e m o s d is p o n ib le el W H it).

Esta n o tif ica c ió n es im p re s c in d ib le para q u e el d ire c to r io in v a lid e el re s to de p o s ib le s co p ia s de este b lo ­que en el s is tem a. Pero c o m o pu e de co m p ro b a r, m e d ia n te el v e c to r de co m p a rtid o s , q u e a u n qu e el m ensa je re c ib id o es un W M iss, el p ro ce sa d o r loca l ya tie n e una co p ia de l b lo q u e en su cachó, n o le re sp o n d e co n un R eply innecesario .

Page 297: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Ejem plo 5 .1 3

Aplicación práctica del protocolo del ejem plo 5.12.

Para co m p re n d e r m e jo r el fu n c io n a m ie n to de este p ro to c o lo , v a m o s a p la n te a r un caso p rá c tic o en el que se u tiliza rá para m a n te n e r la cohe renc ia de una a rq u ite c tu ra de m e m o ria co m p a rtid a -d is tr ib u id a .

S u p o n g a m o s q u e te n e m o s una a rq u ite c tu ra de este t ip o co n tre s p ro ce sa d o re s (PO, P1 y P2) cuyas cachés están in ic ia lm e n te vacías. ¿C óm o e vo lu c io n an lo s co n te n id o s de las cachés, de lo s d ire c to r io s y el p ro to c o lo si se e jecuta la s ig u ie n te secuencia de le c tu ras y escritu ras en lo s b lo q u e s 0 y 1 de M P? S u p o n g a m o s q u e am bos b lo q u e s se encuen tran u b ica d o s en la m e m o ria p rin c ip a l de l POy q u e el d ire c to r io está d is tr ib u id o , de m anera q u e só lo no s in te resa la e vo lu c ió n de l d ire c to r io de PO.

P ro ce sa d o r 0 lee el B lo q u e 1—■ ~ ■■ ■■P ro ce sa d o r 1 lee el B lo q u e 1

P O U tB l 0 P l IEE B1

* Nota: Las lecturas y escrituras se realizan con instrucc iones de load y s to re a palabras concretas, en este caso estamos s im p lificando la manera de expresar el pa trón de accesos a m em oria po rque lo ún ico qu e nos im porta es en qu é bloques se encuentran esas palabras y s i se solicita una lectura o una escritura.

En la s ig u ie n te ta b la , lo s m en sa je s se espec ifica rá n co n un s e n c illo fo rm a to (e tiq u e ta , d ire c c ió n de b lo ­q u e , d e s tin o ), d ó n d e D IR_P0 es el d ire c to r io de PO y M C _P 0 es la m e m o ria cachó de l p ro c e s a d o r 0, p o r e je m p lo .

L e c tu ra /e s c r itu ra E ve n to loca l M ensa jes

PO lee B1 Fallo de lec tu ra M C PO: Send (RM iss,B1,D IR PO) DIR_P0: Send(Reply,B1,M C_P0)

P1 lee B1 Fallo de lec tu ra M C P1: Send (RM iss,B1,D IR PO) DIR_P0: Send(Reply,B1,M C_P1)

P2 e sc ribe BO Fallo de escritu ra M C P2: Send (W M iss,B 0,D IR PO) DIR_P0: Send(Reply,B0,M C_P2)

PO e sc ribe B1 A c ie r to de escritu ra M C PO: Send (W M iss,B 1,D IR PO) DIR_P0: S end(lnv,B 1 ,M C _P 1)~

Page 298: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

L e c tu ra /e s c r itu ra E ve n to loca l M ensa jes

PO lee BO Fallo de lec tu ra M C PO: Send (RMiss,BO,DIR PO) DIR PO: Send(Fetch,BO ,M C P2) MC P2: Send(W B,BO,DIR PO) DIR_P0: Send(Reply,BO,MC_PO)

P2 e sc ribe B1 Fallo de escritu ra M C P2: Send (W M iss,B 1,D IR PO) DIR PO: S end (F e tch + lnv ,B 1 ,M C PO) M C PO: Send(W B,B1,D IR PO)DIR PO: S end(R eply,B 1 ,M C P2)

En a lg u n o s casos lo s m ensa jes son en tre la m e m o ria caché y el d ire c to r io de un m is m o p rocesado r, p o r lo q u e n o llegan a sa lir a la red s in o q u e se tra n s fie re n d ire c ta m e n te a tra v é s de la m e m o ria de l n o d o loca l. Pero el fo rm a to es e xa c tam e n te el m is m o en to d o s lo s casos, sea nece sario sa lir a la red o no.

En el caso en el q u e PO e sc ribe B1 y t ie n e un a c ie rto de e scritu ra se p u e d e o b se rva r q u e el m ensa je con e tiq u e ta W M iss q u e envía al d ire c to r io es só lo para a n u n c ia r q u e va a e s c r ib ir en el b lo q u e , en rea lida d no necesita q u e se le resue lva el fa llo . Y de h echo el d ire c to r io n o de vu e lve un m ensa je de R ep ly co n el b lo q u e p o rq u e PO aparece en el v e c to r de c o m p a rtid o s y eso s ign ifica q u e ya t ie n e co p ia de este b lo q u e . Por ta n to , el d ire c to r io , s im p le m e n te , re sp o n d e e n v ia n d o una in v a lid a c ió n a to d o s lo s p ro ce sa d o re s q u e tie n e n ta m b ié n cop ia de él, en este caso , P1.

Con este e je m p lo se pu e de o b se rva r q u e este se n c illo p ro to c o lo de tre s estados resue lve el p ro b le m a de la cohe renc ia ta m b ié n en el ca so de las a rq u ite c tu ra s de m e m o ria c o m p a rtid a -d is tr ib u id a .

La estructu ra de directorio que se h a explicado hasta ahora , a pesar d e e s ta r distribuida, puede p re­sentar problem as d e escalabilidad. H ay que tener en cuen ta que el vector de com partidos de cad a bloque necesita un b it po r cad a nodo del sistem a (es lo q u e se llam a un vector d e com partidos com pleto), p o r lo que el directorio puede llegar a ocupar un espacio inadm isible en la m a n o ria principal si la arquitectura se escala hasta un núm ero determ inado d e nodos.

P ara evitar este problem a se han propuesto d o s soluciones:

• Vector de compartidos por grupos. En este caso, cada bit del vector d e com partidos representa a un grupo d e nodos del sistema. Con que uno d e los nodos d e un grupo ta ig a copia de un bloque en su caché, la posición correspondiente del vector d e com partidos en el directorio se p ondrá a 1. O b ­viamente, el problem a de esta im plonentación es que cuando se invalida un bloque, se debe enviar d mensaje d e invalidación a todos los nodos q u e form an un grupo, ya q u e el directorio no puede saber cuáles de ellos tienen copia del bloque en su caché y cuáles no, sólo sabe q u e existe alguna caché d e ese grupo de nodos q u e tiene copia y por lo tanto, está obligado a enviar la invalidación a todos ellos.

• Directorio limitado. E sta alternativa lim ita el número d e cachés q u e pueden tener cop ia d e un blo­que sim ultáneam ente En este caso, lo q u e alm acena el vector d e com partidos es el identificador de b s nodos q u e en cada m om ento tieno i copia del bloque. Si llega una fallo de lectura d e un nodo por un determ inado bloque y ya se h a llegado al límite d e copias en d sistema para ese bloque, el directorio deberá decidir con algún algoritm o de selección qué copia debe invalidarse p a ra poder enviar el bloque al nodo q u e acaba de tener el fallo sin sobrepasar así el número máximo d e copias en caché perm itidas en el sistema.

Por lo tan to , am bas alternativas resuelven el problem a del espacio q u e ocupa el directorio en la m e­m oria principal para sistemas con un gran número d e nodos, pero sacrifican a cam bio d ancho d e banda de la red d e interconexión d e la arquitectura, ya que goieran tráfico adicional (m oisajes d e invalidación extra) respecto del caso en el q u e se utiliza el vector d e com partidos soicillo.

Page 299: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Por últim o, hay que señalar q u e los problem as d e im plem entación q u e este tipo d e protocolos p re­sentan en la práctica, sea cual sea la estructu ra del d irectorio, están relacionados con d cum plim iento de la hipótesis d e consistencia secuencial p a ra la red d e com unicaciones (y eso escapa a los objetivos d e este libro) y con la ex istenda d e m ás un nivel d e caché. E n este últim o caso la so lu d ó n es la m ism a q u e para las arquitecturas d e m em oria com partida.

Diseño de arquitecturas de memoria distribuidaComo ya se ha m encionado con anterioridad, u n a arquitectura d e m em oria d istribuida se com pone

de un conjunto d e nodos d e cóm puto com pletos e independientes, conectados en tre sí m ediante una red de com unicadones. P or eso este tipo d e sistem a se suele denom inar m ulticom putador, com o se h a com en­tado con anterioridad.

C uanto m ás distribuidos y m enos acoplados estén los recursos d e cóm puto que com ponen la a rq u i­tectura, m ás im p o rtan d a cobran los sistemas operativos, d middleware, los m odelos de program adón y cualquier herram ienta q u e contribuya a la in teg radón d e estos recursos. P or eso la com prensión en pro ­fundidad de este tipo d e arquitecturas no se puede hacer desde el hardw are exclusivamente.

H oy en d ía se distinguen dos grandes tipos d e arquitecturas d e m em oria distribuida, los clusters y los grids. A unque existen otros paradigm as d e com putación distribuida com o Peer2Peer o Cloud, q u e no están todavía m uy extendidos m ás q u e en ciertas aplicaciones m uy concretas.

5.5.1. Clusters

U n cluster es una arquitectura d e m em oria d istribu ida com puesta p o r un conjunto de nodos d e cóm ­puto independientes y conectados por u n a red contro lada d e altas prestaciones.

Este tipo d e sistemas han aparecido d e m anera natural en empresas, universidades y centros de inves­tigación, debido principalm ente a:

• Los g randes avances en las prestaciones d e los m icroprocesadores d e consum o habitual.• A la aparición de redes d e com unicación y protocolos d e alto rendim iento.• Al desarrollo d e herram ientas software q u e facilitan su configuración y adm inistración.

Se puede d istinguir en tre d istin to s tipos d e clusters. Prim ero se pueden clasificar en D edicados o N o ded icados atendiendo al tipo de u tilización q u e se haga d e los recursos d e cóm puto q u e form an el cluster. E n u n c luster ded icado estos recursos están d isponibles p o r com pleto el 100% del tiem po para la ejecución d e las tareas q u e se lancen en d sistem a. Sin em bargo en un d u s te r no dedicado, algunos recursos e s ta rán disponibles parcial o to ta lm en te sólo en c iertos instan tes d e tiem po p a ra el cluster. Por ejemplo, cuando se pretende aprovechar los ciclos d e C P U no u tilizados de las com pu tado ras personales d e los trabajadores d e una organización, se puede e s ta r ejecutando u n a ta rea d d c luster en d 100% d e los recursos d u ra n te la noche, pero en cu an to uno d e los trabajadores se siente d e lan te de su co m p u tad o ra para trabajar, la can tidad d e recursos d isponible p a ra el c luster dism inuirá. E ste tipo de arqu itec tu ras se denom inan en ocasiones NOW (NetW ork O f W orkstations), ya q u e en realidad no son m ás q u e redes d e o rdenadores q u e sólo en determ inados m om entos trabajan com o u n a única arquitectura.

A tendiendo a las características d e los nodos d e cóm pu to q u e form an el cluster, encon tram os sistem as hom ogéneos o heterogéneos. L os prim eros clusters e ran sistem as hom ogéneos en los que todos los nodos eran idénticos y la com unicación en tre d o s nodos cualesquiera del sistem a suponía exactam ente el m ism o tiem po. En un sistem a d e este tipo puede aparecer heterogeneidad deb id a a dos factores:

Page 300: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

• A las diferentes características hardw are d e las com putadoras que com ponen el sistem a (procesa­dor, m em oria, etc).

• A las diferentes características de las redes d e com unicaciones q u e perm iten la com unicación en tre estos nodos en lo que se refiere a latencia y a ancho d e banda.

La evolución natural d e los clusters h a sido hacia sistem as heterogéneos. P or ejem plo, muchos clus- ters q u e se em plean actualm ente en em presas e instituciones científicas no se han form ado con equipos que se hayan adquirido específicamente p a ra crear los clusters, sino q u e se h a aprovechado hardw are disponible^ que en la m ayor pa rte d e los casos es heterogéneo. Tam bién es típico q u e se adquieran equipos para d iseñar clusters hom ogéneos pero que con el paso del tiem po se inco rpo ra l al sistem a nuevos nodos o que se actualicen los nodos ya existentes. D e nuevo en la m ayor p a rte de los casos las am pliaciones o actualizaciones llevan a la aparición d e heterogeneidad en d sistem a.

Por lo tan to , la m ayor parte d e los clusters que existen en la actualidad son heterogéneos o term ina­rán riéndolo.

P or últim o, se puede d is tingu ir en tre c lusters p ropietarios, d iseñados p o r un fabrican te concre­to , o c lusters Beowulf. E n este caso, los nodos d e proceso son PC s y u tilizan un sistem a operativo Linux. M uchas veces se co nsidera u n m ulticom putador casero q u e puede aprovechar com ponentes com erciales, b a ra to s y po ten tes y recursos an ticu ad o s o in frau tilizados q u e d e o tra m anera no se utilizarían .

Sea cual sea el tipo de cluster diseñado, estos sistemas presentan una serie d e ventajas si se com paran con las arquitecturas d e m em oria com partida o com partida-distribuida:

• R eladón coste/prestaciones. L os clusters obtienen excelentes prestaciones utilizando hardware comercial cuya utilización está m uy extendida, por lo q u e los precios d e los com ponentes d e la arquitectura suden ser m uy bajos.

• Escalabilidad. E ste tipo d e arquitecturas perm ite configurar sistem as con g ran variedad d e tam a­ños, desde unos pocos nodos hasta miles d e ellos, sin q u e esto se refleje dem asiado negativam ente en sus prestadones.

• D isponibilidad. Cuando se d ispone del software adecuado, un fallo en un nodo o ind u so en varios nodos del c luster no im plica un fallo general de to d a la arquitectura.

• Flexibilidad. Los clusters perm iten realizar modificaciones en su configuradón d e m anera muy rencilla, e ind u so se pueden hacer estos cam bios d e m anera dinám ica, agregando o d im inando nodos del sistem a en tiem po d e ejecución.

• Aprovechamiento de los recursos. E sta flexibilidad lleva directam ente a u n m ejor aprovecham iento de los recursos disponibles, ya que se pueden agregar nodos al cluster cuando sea necesario p o r su carga d e trabajo , y liberarlos cuando estén infrautilizados.

• G ed m ien to progresivo. C uando el sistema se queda obsoleto o es necesario aum entar su capaci­dad de cóm puto, basta con sustituir los nodos m ás antiguos por o tros m ás potentes o con añad ir nuevos nodos al sistema. E sta característica tam bién se denom ina en ocasiones escalabilidad in- cremental.

• Rápida respuesta a los avances tecnológicos. E sta posibilidad d e crecim iento progresivo facilita la rápida incorporación d e la tecnología m ás m oderna al sistema.

Además, com o no existe una m em oria com partida n i un espacio de direcciones com partido, este tipo de arquitecturas no presentan los problem as d e coherenda, consistenda y rincronizadón antes estud ia­dos. Pero todavía existen algunas desventajas en la utilización d e este tipo d e sistemas.

Primero hay q u e tener en cuen ta que la utilización de m em oria distribuida, y por lo tanto, de com u­nicación explícita en tre procesos, añade dificultad a la u tilizadón eficiente d e la red de com unicaciones de la arquitectura, q u e puede llegar a convertirse en el cuello d e botella del sistem a.

Page 301: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Además, en este tipo de arquitecturas existe todavía u n a carencia d e estándares q u e dificulta la m i­gración d e cierto tipo d e aplicaciones a un esquem a d e m em oria distribuida. El único aspecto en el que ociste un acuerdo global en to d a la com unidad d e usuarios d e este tipo d e sistemas es en la utilización de M PI (Message Passing Interface) com o librería d e paso d e mensajes. Este es el único estándar (y no lo es de m anera estricta, sólo de fac to ) q u e existe para este tipo d e arquitecturas.

Por últim o, hay que analizar d e m anera algo m ás extensa los problem as d e fa lta d e imagen d e sistema único y d e equilibrio d e carga así com o las soluciones m ás extendidas p a ra su resolución.

5 .5 .1 .1 . S o l u c i o n e s p a r a l a f a l t a d e i m a g e n d e s i s t e m a ú n i c o

P ara so lucionar el p roblem a d e la fa lta d e imagen d e sistem a único es necesario in sta lar un middleware sobre el sistem a operativo local d e cad a uno d e los nodos q u e com ponen el c luster o parchear/m odificar estos sistem as operativos locales para q u e funcionen com o u n sistem a operativo distribuido (figura 5.20).

S o lu c io n e s p a ra e l p ro b le m a d e im a g e n d e s is te m a ú n ico .

Page 302: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

En cualquiera d e los dos casos, la intención es proporcionar u n a capa interm edia en tre los usuarios y sus aplicaciones, y la arquitectura, q u e proporcione los siguientes servicios:

• E spado de procesos único. P ara q u e los identificadores de proceso sean únicos en todo d sistem a y esto facilite las com unicaciones en tre procesos, la c read ó n y te rm inadón d e procesos independien­temente del nodo en el q u e se lance o ejecuten, etc

• Sistema d e planificación d e trabajos único. P ara que el usuario pueda lanzar sus trabajos en el sistema sin preocuparse d e en q u é nodo o nodos se van a ejecutar realmente.

• S stem a d e ficheros único. Para q u e el usuario p e rd b a q u e existe u n a única jerarqu ía d e ficheros bajo el m ismo directorio raíz.

• E spado d e E/S único. Para que cualquier nodo del cluster pueda acceder a cualquier periférico o dispositivo de alm acenam iento com o si estuviera conectado localmente, incluso sin conocer su ubicación física.

• Interfaz d e usuario único. D e esta form a to dos los usuarios del d u s te r tendrán u n interfaz com ún de acceso sea cual sea el punto desde el que están accdiendo al cluster.

Además, la imagen d e sistema único se favorece si existe u n punto d e en trad a único a la arquitectura y u n pun to d e contro l y gestión del c luster tam bién único.

D e to d as form as todavía no existe n inguna herram ienta que perm ita, tan to al adm inistrador com o a los usuarios, ver al d u s te r com o un sistema d e cóm puto único fuertem ente acoplado.

5 .5 .1 .2 . S o l u c i o n e s p a r a e l e q u i l i b r i o d e c a r g a

El equilibrio d e la carga d e trabajo en tre los nodos que com ponen un cluster, es uno d e los factores determ inantes en el rendim iento del sistema. P ara optim izar la utilización d e los recursos disponibles hay que ev itar situaciones en las q u e la llegada aleatoria d e tareas al cluster provoque q u e unos nodos del sistema estén sobrecargados m ientras q u e o tros estén infrautilizados o incluso com pletam ente desocu­pados, ya q u e estas situaciones implican graves penalizaciones en el tiempo d e respuesta d d sistem a (que v a ld rá determ inado por el tiem po d e respuesta del nodo m ás lento).

D e nuevo la so ludón para este problem a no viene d ad a desde la propia arquitectura o hardw are sino que involucra a niveles superiores. L os algoritm os d e equilibrio de carga tienen com o objetivo repartir las tareas q u e se ejecutan en d sistema d e m anera q u e cada nodo ejecute una carga p ropordonal a su cap ad d ad d e cóm puto y se optim ice la utilización de los recursos.

Este tipo d e algoritm os pueden program arse a m edida p a ra un determ inado sistema o incluso para una determ inada com binación sistem a-aplicadón, aunque existen soluciones generales q u e en m uchos casos ya se incorporan al middleware o sistema operativo m encionados en la sección anterior.

5.5.2. Crids

U n G rid está form ado por un conjunto d e recursos d istribuidos geográficam ente y conectados m e­d iante u n a red.

Este tipo d e arquitecturas son la extensión del concepto del cluster heterogéneo, perm itiendo conectar todo tipo de recursos, que no tienen p o r q u é estar ubicados a i el m ismo espacio geográfico, norm alm ente m ediante una red de com unicadones d e área extensa (es decir, a i un a i to m o m ucho m enos contro lado y de m enores p restadones q u e en el caso d e u n cluster).

Las a rqu itec tu ras G rid perm iten la creación d e organizaciones v irtuales (VO) m edian te la com ­partic ión d e recursos en tre d iferentes em presas, en tidades y organism os (figura 5.21). P or lo tan to se tra ta d e sistem as m uy d inám icos cuya com posición y configuración puede variar en cualqu ier m o­m ento.

Page 303: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

F ig u r a 5 .2 1

A rq u ite c tu ra G r id típ ic a .

Los problem as que plantean estos sistemas todavía no están resueltos d d todo, p o r lo q u e se en ­cuentran casi exdusivam ente en en to rnos académicos, aunque parece que es el futuro d e la com putación distribuida o q u e llevará a nuevos tipos d e arquitecturas que lo serán (como los sistem as Cloud).

Los principales problem as que p lantean este tipo d e arquitecturas están re ladonados con los siguien­tes aspectos:

• Descubrim iento d e servicios.• Gestión d e recursos.• Comunicaciones.• Seguridad.• Tolerancia a fallos.• íb rtab ilidad d e aplicaciones.

Cuando se habla d e un G rid hoy en d ía , es casi inevitable hablar d e Globus, herram ienta q u e se ha convertido prácticam ente en el estándar para tecnología G rid (de nuevo, e stándar de fac ió ) ya q u e pro ­porciona u n a infraestructura tecnológica robusta y m uy com pleta p ara resolver todos estos problemas.

Este middleware ha sido program ado por una com unidad d e expertos y es d e código abierto. Se tra ta de u n conjunto d e servicios (de hecho, actualm ente se basa en Web Services) y librerías que d an soporte a los adm inistradores y usuarios d e arquitecturas G rid . N o resuelven los problem as an tes mencionados, pero sí que proporcionan la m ayor parte d e las herram ientas necesarias p a ra hacerlo.

Page 304: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Resumen de decisiones de diseño de sistemas multiprocesador y multicomputador

D i s e ñ o d e r e d e s d e n t r o d e a r q u i t e c t u r a s

Decisión Alternativas D ecisiones asociad as

Topología E stá tica

D in á m ic a D e m e d io c o m p a r t id o o c o n m u ta d a s (m o n o e ta p a , m u lt ie ta p a b lo q u e a n te s o

m u lt ie ta p a n o b lo q u e a n te s )

Tipo de técn ica de conm utación C irc u ito s P aque tes

V ir tu a l c u t- th ro u g h V e rm ifo rm e

Tipo de d ecisió n de encam inam iento

In c o n s c ie n te A le a to r ia , ro ta to r ia o d e te rm in is ta

A d a p ta t iv a A lg o r itm o d e a d a p ta c ió n

Responsabilidad de la decisión de encam inam iento

En o r ig e n F ija o c o n c a p a c id a d de a d a p ta c ió n

D e c is ió n d is tr ib u id a

D e c is ió n ce n tra liza d a

Im plem entación del encam inam iento

Tab las M á q u in a s de e s ta d o s

T écn icas de control de flujo

D i s e ñ o d e a r q u i t e c t u r a s d e m e m o r i a c o m p a r t i d a

Decisión Alternativas D ecisiones asociad as

So lución al problem a de In v a lid a c ió n P ro to c o lo (e s ta d o s , c o m a n d o scoherencia con protocolos de A c tu a liz a c ió n y d ia g ra m a d e tra n s ic ió n de

espionaje (snoopy) e s ta d o s ) e im p le m e n ta c ió n

M odelo de consistencia S e cu e n c ia lR e la ja d o

So lución al problem a de C e rro jo ssincronización B arre ras

O tro s

D i s e ñ o d e a r q u i t e c t u r a s d e m e m o r i a c o m p a r t i d a - d i s t r i b u i d a

Decisión Alternativas D ecisiones asociad as

So lución al problem a de coherencia co n protocolos de invalidación b asad o s en

directorio

D ire c to r io c e n tra liz a d o D ire c to r io d is tr ib u id o

P ro to c o lo (e s ta d o s , c o m a n d o s y d ia g ra m a d e tra n s ic ió n de e s ta d o s ) e im p le m e n ta c ió n

Page 305: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

Decisión Alternativas D ecisiones asociad as

M odelo de consistencia S e cu e n c ia lR e la ja d o

So lución al problem a de sincronización

C e rro jo sB a rre ras

O tro s

Sistem a operativo o m iddlew are que da soporte a

la com partición del esp acio de direcciones

D i s e ñ o d e a r q u i t e c t u r a s d e m e m o r i a d i s t r i b u i d a

Decisión Alternativas D ecisiones asociad as

D iseño hardw are del sistem a: tipo de nodos (procesador,

m em oria, d isco , SO ), red , etc

S is te m a s h o m o g é n e o s / h e te ro g é n e o s

S is te m a s p ro p ie ta r io s /a b ie r to s S is te m a s d e d ic a d o s /n o

d e d ic a d o s

So lución al problem a de imagen de sistem a único

S is te m a o p e ra t iv o M id d le w a re

G estión de recu rso s, equilibrio de carga y planificación

Tolerancia a fallos

Seguridad

BIBLIOGRAFÍA Y LECTURAS RECOMENDADASANDREWS, G. R. (1999): Foundations o f Multiíhreaded, Parallel, and Dislributed Programming, Addison Wesley. BUYYA, R. (1999): High Performance Cluster Computing (volúmenes 1 y 2), Prentice Hall.CULLER, D., SINGH, J. R & GUPTA, A. (1998): Parallel Computer Architecture: A Hardware/Software Approach,

Morgan Kaufmann.DALLY, W. J. & TOWLES, B. P. (2004): Principies and Practices o f Interconnection Networks, Morgan Kaufmann. DUATO, J; YALAMANCHILI, S. & NI, L. (2002): Interconnection Networks, Morgan Kaufmann.EL-REWINI, H. & ABD-EL-BARR, M. (2005): Advanced Computer Architecture and Parallel Processing, Wiley. HENNESSY, J. L. & PATTERSON, D. A. (2007): Computer Architecture: A Quantitative Approach (4.a ed.), Morgan

Kaufmann.HWANG, K. (1992): Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw Hill. MAGOULES, F.; PAN, J.; TAN, K. A. & KUMAR, A. (2009): Introduction to Grid Computing CRC Press. ORTEGA, J.; ANGUITA, M. & PRIETO, A. (2005): Arquitectura de Computadores, Thomson.PFISTER, G. (1997): In search o f clusters (2.a ed.), Prentice Hall.SHIVA, S. G. (2005): Advanced Computer Architectures, CRC Press.

Page 306: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

PROBLEMAS5 . 1 . U na em presa q u e distribuye software p a ra gestión em presarial com prueba que una función co n ­

creta de este software ta rd a 5 segundos en ejecutarse sobre un determ inado procesador. Si el 68% d e esta función puede paralelizarse en una arquitectura d e m em oria com partida con cuatro núcleos d e este mismo procesador, ¿cuál es d tiem po d e ejecución mínimo q u e puede conseguirse para es ta función utilizando la arquitectura d e m em oria com partida?

5 . 2 . U na aplicación d e cóm puto científico ta rd a 10 segundos en leer sus operandos, 120 segundos en realizar operaciones m atem áticas com pletam ente parald izables sobre u n a arquitectura d e m e­m oria com partida y 6 segundos en escribir sus resultados. ¿Cuál es la fracción serie d e esta apli­cación? ¿C uál es d speedup m áxim o que podríam os conseguir paralelizando esta aplicación?

5 . 3 . Se diseña un procesador con un único nivel d e m a n o ria caché con tasa de fallos del 6% y tam año de bloque d e 256 palabras de 64 bits cada una. Este procesador funciona con una frecuenda de reloj d e 1 G H z y realiza en m edia 1.25 accesos a m em oria a i cada ciclo d e rd o j. Se desea diseñar una arquitectura d e m em oria com partida con estos procesadores. ¿Cuál es el ancho d e banda mínimo q u e debe proporcionar el bus com partido d e esta arquitectura si se quieren incluir 4 procesadores?

5 . 4 . En d problem a 5.3, ¿qué ocurre si se duplica el tam año del bloque de la caché? ¿Cuál debería ser la tasa d e fallos d e la m em oria caché d e cad a procesador p a ra que se puedan conectar hasta 8 procesadores si se vuelve al tam año d e bloque del problem a 5.3 y al ancho d e banda obtenido a i este problem a?

5 . 5 . Se diseña una arquitectura d e m em oria com partida d e 4 procesadores co n cachés d e post-escri­tura q u e utiliza u n protocolo d e cohero ic ia d e caché snoopy con invalidación d e 4 estados:

• Inválido. B loque inválido, n o presente en la m em oria caché.• Exclusivo. Ú nica copia del sistema, coherente con m em oria principal.• Com partido. Varias copias en el sistem a, coherentes en tre sí y con la m a n o ria principal.• M odificado. Ú nica copia válida del sistem a, n o coherente con la m a n o ria principal.

R ira el funcionam iento correcto de este protocolo se utiliza u n a señal S (Shared) en el bus com ­partido que sirve p a ra distinguir los da to s com partidos d e los privados. A esta señal, q u e funcio­na m ediante un O R cableado, están conectados todos los controladores de caché d e m anera que cada vez q u e observan u n evento en el bus relacionado con u n determ inado bloque, vuelcan un 1 si tio ien copia d e d icho bloque y un 0 si no la tio ien .Los com andos d e este protocolo son Miss e Inv, y las acciones con WB (volcado d e bloque a m em oria principal) e Invalidar (invalidación en m a n o ria caché local).

a) Deducir d d iagram a d e transición d e estados que m uestra la evolución d e los bloques en una m em oria caché del sistema según este protocolo.

b) M ostrar la evolución d e las m em orias cachés implicadas, los eventos y acciones q u e se pro ­ducen y los com andos q u e se envían p o r el bus cuando se produce la siguiente secuencia de lectura y escrituras.

• PO lee del bloque 0.• P3 lee del bloque 2.• P l lee del bloque 0.• P2 escribe en el b loque 1.

Page 307: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

• PO escribe en el b loque 1.• P2 lee el b loque 0.• P3 escribe en el b loque 2.• PO escribe en el b loque 0.

Suponer q u e el estado inicial d e las cachés es vado y utilizar u n a tabla d e este tipo:

Evento C om andos/A cciones Estado de las cachés

Pi:Pj:

Pi pj Pk

a a

5.6. Repetir el problem a 5.5 si los fallos de caché, en lugar d e resolverlos siempre la m o n o ria princi­pal, los resudven o tras m em orias caché siempre q u e sea posible.

5.7. En la siguiente tabla se detallan los tiem pos q u e supone en cada una d e las im plem entaciones de los dos problem as anteriores resolver un fallo desde la m em oria principal (TfalloM P), desde o tra m em oria caché (TfalloM C), invalidar u n bloque (TIN V ) y hacer un W riteback de un bloque a m em oria principal (TW B). L a im plem entación 1 corresponde al caso en el que los fallos se resuelven siem pre desde la m em oria principal y la im plem entación 2 al caso en el q u e se pueden resolver desde o tra m em oria caché siempre y cuando sea posib le P ara el ejem plo concreto de código q u e se h a utilizado en am bos problemas, d iscu tir acerca d e la conveniencia d e u n a y o tra implementación. ¿Se pueden generalizar las conclusiones obtenidas?

Im plem entación 1 Im plem entación 2

T f a l l o M P 100 ns 100 ns

T f a l l o M C 140 ns 30 ns

T|NV 10 ns 10 ns

T wb 60 ns 120 ns

5.8. Se diseña u n a arquitectura de m em oria com partida d e 4 procesadores con cachés híbridas de escritura d irecta y post-escritura q u e utiliza un protocolo de coherencia d e caché snoopy con invalidación d e 4 estados:

• Inválido. B loque invalidado.• Válido. Coherente con M P y con o tras copias posibles en MC.• Reservado. El bloque se h a escrito solam ente u n a vez, y es coherente con MP. Es decir, cuando

se escribe sólo u n a vez sobre un bloque, se utiliza escritu ra d irecta p a ra actualizar la MP.• Sucio. El bloque se h a escrito d o s o m ás veces y es la única copia válida d d sistem a.

Los com andos de este protocolo son R M iss y WMiss, y las acciones con WB (volcado de bloque a m em oria principal), E D (escritura d irecta d e u n a única palabra a m o n o ria principal) e Invali­d a r (invalidadón en m em oria caché local).

a ) D e d u á r d d iagram a d e transición d e estados que m uestra la evolución d e los bloques en una m em oria caché del sistem a según este protocolo.

Page 308: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

b) M ostrar la evolución de las m em orias cachés implicadas, los eventos y acciones q u e se pro ­ducen y los com andos q u e se envían p o r el bus cuando se produce la siguiente secuencia de lectura y escrituras:

• PO lee el b loque 3.• P1 escribe en el b loque 3.• P2 escribe en el b loque 4.• P1 escribe en el b loque 3.• P2 escribe en el b loque 3.• P3 lee el b loque 4.

Suponer q u e el estado inicial d e las cachés es el siguiente:

PO: Vacío.P1: B loque 3 válido, bloque 4 reservado.P2: Bloque 3 válido.P3: Vacío.

U tilizar u n a tabla d e este tipo:

Evento C om andos/A cciones Estado de las cachés

Pi P j Pk

B B S5.9. Se diseña una arquitectura d e m em oria com partida d e 4 procesadores con cachés d e post-escri­

tura q u e utiliza un protocolo d e coherencia d e caché snoopy con actualización d e 4 estados:

• E stado inicial o uncached (U). El bloque n o está en la caché, p o r lo que cuando el procesador lo solicita p a ra leer o p a ra escribir se produce un fallo.

• Exclusivo (E). El bloque está en la caché y n o h a sido m odificado m ediante escrituras locales. Es la única copia en el sistema.

• Válido (V). El bloque está en la caché y no h a sido modificado m ediante escrituras locales. Existen o tras copias en las cachés d e o tros procesadores, todas ellas coherentes en tre sí.

• M odificado (M ). H bloque está en la caché y n o es coherente con la m em oria principal porque d procesador local ha realizado al m enos u n a escritura sobre él. Puede q u e existan o tras copias en las cachés d e o tros procesadores, to d as ellas coherentes en tre sí.

R ira d funcionam iento correcto de este protocolo se utiliza u n a señal S (Shared) en el bus com ­partido que sirve para distinguir los da to s com partidos de los privados. A esta señal, q u e funcio­na m ediante un O R cableado, están conectados todos los controladores d e caché d e m anera que cada vez que observan un evento en el bus re ladonado con un determ inado bloque, vuelcan un 1 si tienen copia de dicho bloque y un 0 si no la tienen.Los com andos d e este protocolo son RM iss, W Miss y U pd, y las acciones con WB (volcado de bloque a m em oria p rindpal) y A ctualizar_M C (actualización local con los contenidos d e un com ando U pd).

a) D ed u d r d d iagram a d e tran sid ó n d e estados que m uestra la evolución de los bloques en una m em oria caché del sistema según este protocolo.

b) M ostrar la evolución de las m em orias cachés implicadas, los eventos y acciones q u e se pro ­ducen y los com andos q u e se envían p o r el bus cuando se produce la m ism a secuencia de

Page 309: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

lecturas y escrituras que en d problem a 5.5. Suponer tam bién que el estado in ida l d e las cachés es vacío y utilizar el mismo tipo d e tabla y nom enclatura.

c) C om parar para este ejemplo el rendim iento d e los protocolos d e invalidadón y actualiza- d ó n . ¿Se pueden generalizar las conclusiones extraídas d e esta com paración?

5.10. Un sistem a de m em oria com partida-distribuida con 4 procesadores y cachés privadas asociadas a cada procesador, utiliza u n protocolo d e directorio d e invalidadón para garantizar la coheren­d a d e las cachés. E ste protocolo se basa en la utilización d e tres estados para el directorio y para las m em orias caché:

• Inválido (I). B loque invalidado. Este estado en el d irectorio se denom ina N o Cacheado (N C), es decir, cuando no hay ninguna caché en d sistem a con copia del bloque.

• C om partido (C). U na o varias copias del bloque coherentes en tre sí y con la m em oria princi­pal.

• Exclusiva (E). U na única copia en el sistema, n o coherente con m em oria principal.

Las cachés poseen el siguiente estado inicial:

PO: Vacío.P1: B loque 3 com partido , b loque 1 exclusivo.P2: B loques 0 y 3 com partidos.P3: Vacío.

Además se pueden enviar mensajes con d form ato (etiqueta, bloque, destino), siendo las e tique­tas posibles R M iss (fallo d e lectura), W H it (acierto d e escritura), W Miss (fallo d e escritura), WB (volcado d e bloque u orden d e volcado de bloque) e Inv (invalidación). El cam po bloque indica qué bloque está im plicado en la o p e rad ó n y el cam po destino indica a q u é procesador se le envía d mensaje.Si los bloques 0, 1 ,2 y 3 se encuentran en la m em oria principal del procesador PO, su directorio en la s ituadón inicial es:

B0 0010 C

B1 0100 E

B2 0000 NC

B3 0110 C

M ostrar en una tabla com o la siguiente la evolución d e las cachés y d d directorio d e PO, y todos b s m ensajes que se envían, con las siguientes lecturas y escrituras:

• P3 lee del b loque 3.• P1 lee del b loque 1.• P2 escribe en el bloque 3.• P3 lee del b loque 1.• P1 escribe en el bloque 3.

Estado de la s cachés

P¡ P j Pk

B B B

Page 310: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

5.11. Se diseña u n a arquitectura d e m em oria com partida-distribuida d e 8 procesadores q u e utiliza un protocolo d e coherencia de cachés basado en directorio. E ste protocolos utiliza los siguientes 4 estados para los bloques en las m em orias caché y a i el directorio:

• Inválido. B loque inválido.• Exclusivo. Ú nica copia del sistema, coherente con m em oria principal.• C om partido. Varias cop ias en d sistem a, coherentes en tre sí y co n la m em oria principal.• M odificado. Ú nica copia válida del sistem a, n o coherente con la m o n o n a principal.

Los mensajes q u e se pueden enviar con este protocolo tieno i el form ato (etiqueta, bloque, desti­no). El cam po bloque indica q u é bloque está implicado o í la operación y el cam po destino indica a q u é procesador se le envía el mensaje.

a) U tilizando el conjunto d e e tiquetas propuesto en este libro para los protocolos basados en directorio distribuido com o punto d e partida, definir el conjunto d e etiquetas necesario para im plem entar este protocolo.

b) D ed u d r el d iagram a d e transición d e estados q u e m uestra la evolución d e los bloques en el directorio d d s is to n a según este protocolo.

c) M ostrar la evolución del directorio y d e las cachés con la secuoicia d e lecturas y escrituras d d p ro b lo n a 5.5. Suponer que el propietario d e todos los bloques involucrados en las ope­raciones d e lectura y escritura es PO y q u e las cachés están vacías inicialmente.

Evento M ensajes Directorio Estado de las cachés

Pi Pj Pk

— _ a( i

5.12. Se diseña u n a arquitectura d e m em oria com partida-distribuida d e 8 procesadores q u e utiliza un protocolo d e cohero ic ia d e cachés basado o í directorio. Este protocolos utiliza los siguientes 4 estados:

• Inválido. B loque inválido.• Exclusivo. Ú nica copia del sistema, coherente con m em oria principal.• C om partido. Varias cop ias en d sistem a, coherentes en tre sí y co n la m em oria principal.• M odificado. Ú nica copia válida del sistem a, n o coherente con la m o n o ria principal.

Los m oisajes q u e se pueden enviar con este protocolo tieno i el form ato (etiqueta, bloque, desti­no). El cam po bloque indica q u é bloque está implicado o í la operación y el cam po destino indica a q u é procesador se le envía el mensaje.

a ) Definir el conjun to d e O iquetas posibles p a ra este protocolo si el d irectorio está cen tra li­zado.

b) Si el directorio se alm acena o í la m em oria del procesador P7, m ostrar la evolución del d i­rectorio y d e las cachés con la secuencia d e lecturas y escrituras del problem a 5.5. Suponer

Page 311: Diseño y Evaluación de Arquitecturas de Computadoras

5. S ISTEM AS M ULTIPROCESADOR Y M ULTICO M PUTADO R

que el propietario d e todos los bloques involucrados en las operaciones d e lectura y escritu­ra es PO y q u e las cachés están vacías inicialmente.

Page 312: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

AUTOEVALUACIÓN _________________________________________1. ¿Qué diferencias hay entre las arquitecturas de memoria compartida y las de memoria com-

partida-distri buida?

2. ¿Qué significa que en las arquitecturas de memoria compartida la comunicación entre pro­cesos es implícita?

3. ¿Cuál es la principal característica de una red crossbar?

4. ¿En qué consiste la conmutación virtual cut-through y cuáles son sus ventajas?

5. ¿Cómo se resuelve el problema de la coherencia en arquitecturas de memoria compartida?

6. ¿Qué diferencias hay entre los protocolos de coherencia basados en invalidación y basados en actualización?

7. ¿En qué consiste el problema de la consistencia y qué alternivas hay para resolverlo?

8. Cuando se estudian protocolos de coherencia, ¿qué es un directorio y para qué se utiliza?

9. ¿Qué diferencias hay entre un cluster y un grid?

10. ¿En qué consiste la falta de imagen de sistema único y cómo se puede resolver este proble­ma?

Page 313: Diseño y Evaluación de Arquitecturas de Computadoras

r

Evaluación de prestaciones

C o n t e n i d o s |6.1. D e fin ic ió n de m é trica s de re n d im ie n to6.2. M é tricas de re n d im ie n to senc illas6.3. E va luac ión y co m p a ra c ió n de re n d im ie n to6.4. Técn icas de m e d id a y benchm arks6.5. M é tricas de re n d im ie n to co m p le ja s

Page 314: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

La necesidad d e definir m étricas de rendim iento surge en m ultitud de contextos relacionados con la arquitectura d e com putadoras com o com parar diferentes alternativas d e diseño, predecir el im pacto que va a tener una m ejora, encon trar el conjunto d e parám etros que hace que un diseño consiga su rendim ien­to m áxim o o establecer las alternativas de m ejora d e u n a arquitectura.

D e hecho a lo largo de todo este libro ya se han em pleado m étricas y expresiones relacionadas con la evaluación de prestaciones para tom ar decisiones d e diseño, com parar alternativas y cuantificar la ganancia obtenida co n ciertas mejoras.

En este capítulo se resumen los aspectos básicos d e la evaluación de rendim iento de arquitecturas de com putadoras. Por tan to , se proporcionan unas guías y recom endaciones para escoger m étricas de rendimiento adecuadas y se definen m étricas sencillas que se puedan em plear en contextos generales de evaluación. También se estudia cóm o realizar la interpretación d e estos resultados y cóm o com parar unos con otros, introduciendo las leyes d e A m dhal y G ustafson y su utilización en diferentes escenarios.

Además, se presentan las diferentes técnicas d e m edida que pueden em plearse para ob tener los va­lores de las m étricas escogidas en sis to n as reales y se estudian las diferentes aplicaciones que se pueden ejecutar en u n sistem a p ara realizar estas m edidas d e rendim iento, proporcionando así u n a introducción al concepto d e benchm ark.

Por últim o se discuten m étricas d e rendim iento m ás sofisticadas q u e perm itan la evaluación d e ar­quitecturas com puestas p o r m ás un procesador com o las estudiadas en el capítulo 5 d e este libro. En esta últim a parte d d capítulo se estudian las diferentes definiciones d e speedup y m étricas com o la eficiencia o la escalabilidad.

un Definición de métricas de rendimientoH asta este m om ento, en este libro se han estudiado d funcionam iento y el diseño d e los p rindpales

com ponentes que se encuentran en u n a arquitectura m onoprocesador y d e las arquitecturas m ultiproce- sador y m ulticom putador. Sin em bargo, com o se h a m endonado en la introducción d e este capítulo, y como se anunció en el capítulo 1, no es sufidente con adquirir estos conocim ientos, tam bién es necesario saber cóm o van a evolucionar estas arquitecturas, cóm o se pueden mejorar, cuánto m ejor son unas que otras, etc.

En todos estos contextos en los q u e puede ser necesario llevar a cabo la evaluación d e rendim iento de una arquitectura, existen ciertas características que siempre es deseable que la m étrica cum pla y que perm itirán q u e la evaluación d e rendim iento d e u n a arquitectura sea m ás com pleta y fiable. L as m ás im portantes son:

• Facilidad de medida. Es deseable q u e la m étrica d e rendim iento sea fácil d e m edir para q u e sea am ­pliam ente utilizada y así existan resultados con los que com parar el obtenido. Además, la fad lidad de m edida h a rá m ás difícil q u e se com etan errores en la evaluación d e rendim iento.

• Repetibilidad. U na m étrica d e rendim iento es repetible si siem pre q u e se m ide sobre la m ism a arquitectura en las m ism as condiciones se obtiene el mismo valor (exceptuando, obviamente, la variabilidad típica q u e se produce en la experim entación). Es decir, se tra ta d e u n a m étrica deter­minista.

• Fiabilidad. U na m étrica d e rendim iento es fiable si el valor obtenido p a ra la arquitectura A es m a­yar q u e para la arquitectura B y el rendim iento d e la arquitectura A en el aspecto que cuantifica la métrica, es siempre m ayor para esta arquitectura.

• Consistencia. U na m étrica es consistente si su definición, su significado y sus unidades d e m edida no varían d e unas arquitecturas a otras.

• L ineal ¡dad. U na m étrica es lineal a su relación con el aspecto de rendim iento que cuantifica es li­neal, es decir, a p o r ejemplo al duplicarse el rendim iento se duplica el valor d e la m étrica. Este tipo

Page 315: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

de relación hace m ucho m ás fácil la interpretación de los resultados de las medidas. Si al hacer una m ejora en d diseño d e un procesador su rendim iento se duplica pero el valor d e la m étrica pasa de0.8 a 0.9, probablem ente no interpretem os bien los resultados d e la evaluación de rendim iento, sin em bargo si pasa d e valer 2 a valer 4, es mucho m ás sendllo in terp retados correctam ente.

Por supuesto, tam bién es deseable q u e d coste d e las m edidas sea bajo, que la m étrica no dependa de intereses comerciales, q u e esté estandarizada, etc.

J^ro obviam ente es muy com plicado conseguir u n a m étrica d e rendim iento q u e cum pla todas estas características y aún así siga siendo fád l d e medir, desgradadam ente la m ayor parte d e las veces hay que sacrificar alguna d e estas propiedades al escoger las m étricas que se van a em plear en u n a evaluación de rendimiento.

Métricas de rendimiento sencillas

H abitualm ente se utilizan com o m étricas d e rendim iento aspectos que no cum plen las características m encionadas en la secdón anterior, com o puede ser la frecuencia d e rd o j d e un procesador, o los M IPS (millones d e instrucciones p o r segundo) o M FLO PS (millones d e instruedones en com a flotante por segundo) que puede ejecutar.

M IP S = r— T = ¡rte p v lo 6 O T T - 1 0 1

M F L O P S = ° peraCÍ° n ese" FP tepu ■ 106

Tal y com o se h a estudiado en el capítulo 1 d e este libro, el tiem po q u e u n determ inado código ta rd a en ejecutarse en un procesador es inversam ente proporcional a su frecuencia d e funcionam iento. Pero, según la ecuación d e prestaciones del procesador, tam bién depende del C PI d e la arqu itec tu ra y del número d e instrucciones del código. Es decir, u n procesador A con u n a frecuencia d e reloj m ayor que otro procesador B no necesariam ente ejecutará un código m ás rápido que B. P or lo tan to , la frecuencia de reloj com o m étrica d e rendim iento no cum ple con una d e las características m ás im portantes d e las enum eradas en la sección anterior: la fiabilidad. Y adem ás tam poco es lineal. Sólo se puede u tilizar para realizar u n a buena evaluación d e rendim iento si se están com parando procesadores con exactam ente d mismo diseño (mismo repertorio d e instrucciones, mismo CPI) y q u e sólo varían en la frecuencia de reloj.

Pero su facilidad d e m edida, repetib ilidad y consistencia hace q u e se use en m uchos casos com o m étrica d e rendim iento general, tam bién en com paraciones d e d iseños diferentes, d e ahí q u e algunos fabricantes d e procesadores in tenten u tilizar técnicas d e diseño q u e aum enten al m áxim o la frecuencia de reloj (po r ejem plo, la hipersegm entación, q u e perm ite q u e el procesador se segm ente con un alto número d e e tap as q u e puede a lcanzar fád lm en te el valor d e 30) a co sta d e au m en tar tam bién el C PI, sabiendo q u e en m uchos casos se identificará u n a frecuencia d e reloj a lta con un rendim iento tam bién alto.

M ás o m enos lo mismo ocurre con los M IPS y los M FLO PS, utilizados a i m uchos casos com o m étri­ca d e rendim iento del procesador a pesar d e ser m étricas no fiables, no lineales y además, inconsistentes. Hay q u e tener en cuen ta que dos procesadores con repertorios de instrucciones diferentes pueden llegar a realizar cantidades d e trabajo m uy diferentes con una única instrucción (por ejemplo, si se com para un repertorio C ISC con uno R ISC ), p o r lo q u e d e nuevo un valor m ayor para los M IPS o los M FLO PS no implica necesariam ente un rendim iento mayor.

n i

Page 316: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Lo mismo ocurre con métricas típicas p ara la m em oria y d sistema d e E/S (la la tenda y d ancho de banda), que se pueden utilizar cuando se com paran alternativas con exactam ente el mismo diseño, pero que no son fiables en el resto d e los casos, cuando se com paran sistemas d e muy d ifero ites características.

Entonces, ¿qué m étricas sencillas y generales se pueden utilizar p a ra evaluar el rendim iento d e una arquitectura d e m anera fiable? En la tabla 6.1 se m uestra un resumen d e las q u e se han utilizado a lo largo de este libro p a ra evaluar el rendim iento d e procesadores, jerarqu ías d e m o n o ria y sistem as d e E/S.

Existen o tras m étricas de rendim iento sencillas, m o io s generales, pero q u e tam bién pueden ser fiables 01 m uchos casos. Es el caso del consum o d e potencia o del tiem po d e ejecución (tam bién denom inado tio n p o d e respuesta), que no sólo tiene en cuen ta el tiempo d e C P U d e una determ inada ta rea a n o todo d tiem po que transcurre desde que ésta com ienza su ejecución hasta q u e finaliza. Es decir, este tiem po in ­cluye los accesos a m em oria y las transacdones d e E/S, las esperas por los recursos en el caso d e sistemas operativos m ultitarea, d tiempo que d sistema operativo necesita para realizar sus tareas, etc. En oca­siones, desde el punto d e vista d d adm inistrador, se em plea com o m étrica la productividad del sistema, inversamente relacionada con los tiem pos d e ejecución.

T a b l a 6 .1

M é tr ic a s d e re n d im ie n to s e n c illa s y f ia b le s .

Com ponenteevaluado M étrica Significado Expresión

Procesador T ie m p o d e CPU T ie m p o q u e un c ó d ig o c o n I in s tru c c io n e s e n ­s a m b la d o r ta rd a en e je ­c u ta rs e en e l p ro c e s a d o r

tcpu = / ' C P I • T

Jerarqu ía de m em oria

T ie m p o m e d io d e a cce so a m e m o r ia

T ie m p o q u e el p ro c e s a ­d o r ta rd a en m e d ia en re a liz a r un a cce so a m e ­m o r ia

t M E M = 7a d e r to M C + T F * p F

Bus A n c h o d e b a n d a C a n tid a d de in fo rm a c ió n q u e p u e d e tra n s fe r ir el b u s p o r u n id a d d e t ie m ­p o (n o rm a lm e n te B/s)

B W = a n c h o d e d a to s • / • n .° d e t r a n s fe r e n ­c ia s p o r c ic lo

En el caso d e la evaluación d e los dispositivos d e E/S, las m étricas suden ser particulares para cada tipo de dispositivo, a co n tin u ad ó n se d an algunos ejemplos:

• Dispositivos de alm acenam iento. C ap aád ad , rpm (revoluciones por minuto), tiem pos d e búsque­da, tiem pos d e lectura y escritura, veloddad d e grabación. Si se tra ta de un RA ID , adem ás los valores del M T T F y del M T T D L q u e se estudiaron en el capítu lo 4.

• M onitores. Resolución, tam año de la diagonal, contraste.• Dispositivos d e im presión. Resolución, núm ero d e páginas p o r m inuto.• Altavoces. P o ten d a nom inal, im pedancia.

f H Evaluación y comparación de rendimientoL a evaluadón de rendim iento d e un sistema no suele tener significado p o r sí misma, en casi todos los

casos adquiere este significado com parando los valores obtenidos para las m étricas escogidas co n otros anteriores del mismo sistem a o con los obtenidos p ara o tros sistemas.

Page 317: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

Por eso es m uy habitual u tilizar cocientes p a ra com parar el rendim iento d e dos sistemas A y B o de un mismo sistema con dos diferentes configuraciones A y B, d e m anera que si M es la m étrica d e rendim iento escogida, y cuan to m ayor sea su valor, mayor es el rendim iento, este cociente es:

M BM a

Y si este cociente es igual a 1, el rendim iento de las d o s alternativas es el mismo, si es m ayor q u e 1, el rendimiento d e la alternativa B es m ayor que el de la A , y a el cociente es m enor que 1, d rendim iento de B es m enor q u e el d e A. Además, este cociente indica cuánto m ayor o m enor es d rendim iento en cada caso.

En el caso de utilizar m étricas rdacionadas con el tiem po d e C P U o d e ejecudón, es al contrario , ya que cuan to mayor es este tiem po peor es el rendim iento. Y en m uchos casos en lugar d e u tilizar m edidas individuales o aisladas, se utilizan m edias aritm éticas o ponderadas.

Ejem plo 6 .1

C o m p a r a c ió n d e r e n d im ie n t o e n t r e d i f e r e n te s c o n f ig u r a c io n e s

d e u n a m is m a c o m p u ta d o r a .

Se desea e va lu a r el re n d im ie n to de tre s co n fig u ra c io n e s d ife re n te s de una m ism a c o m p u ta d o ra : C 1, C2 y C3. Para e llo se descargan tre s a p lica c io n e s de p rueba de una con o c id a pág ina de in te rn e t ded icada a la eva­luac ión de re n d im ie n to : PA (in tens iva en u so de l p ro ce sa d o r), PB (in tens iva en u so m em o ria ) y PC (in tens iva en E/S). Los t ie m p o s de e je cu c ió n q u e se m id e n para estas tre s a p lica c io n e s son , en segundos :

C1 C2 C3

PA 100 110 130

PB 50 45 40

PC 22 15 12

Media aritmética para la stre s aplicaciones

57.33 56.67 60.67

Con es to s re s u lta d o s se p u e d e c o m p a ra r el re n d im ie n to de las tre s c o n fig u ra c io n e s e s tu d ia d a s con fra se s d e l t ip o "La c o n f ig u ra c ió n 1 es N veces m ás rá p id a q u e la c o n fig u ra c ió n 2 ". P o r e je m p lo , la c o n fi­g u ra c ió n C1 es 1.3 veces m ás ráp id a (o un 3 0 % m ás ráp ida ) q u e la c o n fig u ra c ió n C3 en la e je c u c ió n de la a p lic a c ió n in te n s iv a en u s o d e l p ro c e s a d o r PA (c o m p a ra n d o lo s 100 s e g u n d o s de C1 co n lo s 130 d e C3). S in e m b a rg o , la c o n fig u ra c ió n C 3 e s 1.25 ve ce s m ás rá p id a (o un 2 5 % m ás rá p id a ) q u e la c o n fig u ra c ió n C1 en la e je c u c ió n de la a p lica c ió n in te n s iva en u s o d e m e m o ria PB (c o m p a ra n d o lo s 50 se g u n d o s d e C1 con los 4 0 de C3).

Pero s i co n estos resu lta d o s tu v ié ra m o s q u e esco g er una c o n fig u ra c ió n q u e o b tu v ie ra el m e jo r re n d im ie n to g lo b a l, p o d e m o s u tiliza r las m ed ia s a ritm é tica s de lo s tre s t ie m p o s . A s í sabem os q u e la c o n fig u ra c ió n C2 es la m ejor, un 1.01 m ás ráp id a q u e la C1 y un 1.07 m ás ráp id a q u e la C3.

Si no s d a m o s cuen ta de q u e el 90% de l t ie m p o el s is tem a está e je cu ta n d o ap lica c io n es q u e hacen un uso in te n s ivo de l p rocesador, el 8 % de l t ie m p o de la m e m o ria y el 2% res ta n te de E/S, p o d ría m o s u tiliz a r esta in fo rm a c ió n para ca lcu la r una m ed ia pon de ra d a de lo s t ie m p o s (en lu g a r de a ritm é tica ) y esco g er así la m e jo r co n fig u ra c ió n p o s ib le d a n d o m ás p e so a la q u e o b tie n e un m e jo r re n d im ie n to en las a p lica c io n e s cuya e je cu ­c ión es m ás frecu e n te .

Page 318: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

C1 C2 C3

PA 100 110 130

PB 50 45 40

PC 22 15 12

Media aritmética para la stre s aplicaciones

57.33 56.67 60.67

Media ponderada (0.9 • tPA + 0.08 • tPB + 0.02 • tPC

94.44 102.9 120.44

Con esta in fo rm a c ió n acerca de la fre c u e n c ia de e je cu c ió n de las ap lica c io n es esco g ería m o s la c o n fig u ra ­c ión C 1, q u e es 1.09 ve ce s m ás ráp id a q u e la C2 y 1.28 veces m ás ráp id a q u e la C3.

Este m é to d o para esco g er la m e jo r co n fig u ra c ió n u tiliz a n d o la m ed ia pon de ra d a es m u c h o m ás f ia b le que el a n te rio r, el p ro b le m a es q u e n o s ie m p re se t ie n e in fo rm a c ió n acerca de las fre cu e n c ia s de e je cu c ió n de las ap licac iones para p o n d e ra r la m ed ia , p o r lo q u e se tie n e q u e re c u rr ir a la a ritm é tic a , q u e su p o ne q u e to d a s las ap lica c io n es se e jecu tan con la m ism a frecuenc ia .

La ganancia, aceleración o speedup que se puede obtener realizando u n a m odificación a u n a ar­qu itectu ra es tá m uy relacionada con este tipo d e cocientes, sólo hay q u e tener en cuen ta q u e se define como un cociente d e tiem pos d e C P U o d e ejecución y cu an to mayores son estos tiem pos, peo r es el rendim iento.

Com o ya se estudió en el capítu lo 1, se define d speedup com o:

t con mejora

D e m anera que hay tres alternativas:

• S= 1: L a m odificación no afecta al rendim iento d e la arquitectura.• S< 1: L a m odificación ha em peorado el rendim iento de la arquitectura.• S> 1: L a m odificación he m ejorado realm ente el rendim iento d e la arquitectura.

Ejem plo 6 .2

Cálculo del speedup.

Un d ise ñ a d o r de p ro ce sa d o re s debe d e c id ir si a u m e n ta r el n ú m e ro de e tapas de se gm en tac ión d e su n u e ­v o d iseño . Para to m a r esta dec is ión eva lúa q u e a u m e n ta r de 4 a 6 e tapas le p e rm ite a u m e n ta r la fre c u e n c ia de re lo j de l p ro ce sa d o r en un 15% , p e ro q u e el CPI pasa de va le r 1 a v a le r 1.23.

Por lo ta n to , para saber si a u m e n ta r el n ú m e ro de e tapas su p o ne una m e jo ra o n o , ca lcu la el sp e e d u p que ob tendría m e d ia n te la ecu a c ió n de p re s ta c io n e s de l p ro ce sa d o r:

P ro cesa d o r co n 4 e ta p a s

/CP/ = 1

f

IP ro cesa d o r co n 6 e ta p a s <CP/ = 1.23

1.15 ^

Page 319: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

Ya q u e el n ú m e ro de in s tru cc io n e s q u e co m p o n e n un có d ig o n o cam b ia p o rq u e n o se m o d if ic a el re p e rto ­r io de in s tru cc io n e s . Por ta n to :

f t ) r lo q u e a u m e n ta r el n ú m e ro de e tapas de se g m e n ta c ió n de l p ro ce sa d o r n o supond ría una m e jora .

El m is m o d ise ñ a d o r q u e el de l e je m p lo 6.2 se p lantea m o d if ic a r el d ise ñ o de l p ro ce sa d o r in c lu y e n d o un d iv is o r en co m a flo ta n te , ya q u e hasta el m o m e n to las d iv is io n e s se em u laban p o r so ftw a re .

Esta m o d ific a c ió n im p lica d is m in u ir el n ú m e ro de in s tru cc io n e s q u e se e jecu tan en un 10% (p o rq u e se inc luye en el re p e rto r io una in s tru c c ió n específica para rea liza r las d iv is io n e s ) y a u m e n ta r el p e r io d o de re lo j de l p ro ce sa d o r de 0 .3 a 0 .32 ns, p o r ta n to :

Ya q u e el CPI e m peo raba lig e ra m e n te (las d iv is io n e s en co m a f lo ta n te son p o c o fre cu e n te s ), p e ro se ha co n se g u id o e v ita r co n a lguna pequeña m o d ific a c ió n . Por ta n to :

Tras c o m p ro b a r q u e la m o d if ic a c ió n eva luada es e fe c tiv a m e n te una m e jo ra , el d is e ñ a d o r se p re gun ta

C om o S = 1 .0 4 , es decir, la m e jo ra es de un 4 % , c o m o m u c h o convend ría in c re m e n ta r el co s te de l d iseño en un 4 % . S i el in c re m e n to de l co s te es superior, n o co m pensa ría rea lizar la m e jo ra .

La ley d e A m dhal perm ite calcular la ganancia obtenida p a ra u n a tarea (speedup) en un determ inado sistema con una modificación concreta. E sta ganancia está siempre lim itada p o r la fracción de tiempo que puede utilizarse la m ejora realizada en d sistem a (si es que finalm ente la modificación resulta ser una mejora).

Según esta ley, el speedup depende siem pre d e d o s factores. H prim ero es la fracción del tiem po de ejecudón q u e se puede u tilizar la m ejora (F) y d segundo es la g an a n d a que se introduce con la m ejora

Ejem plo 6 .3

Análisis coste/prestaciones.

/P ro cesa d o r s in d ivisor e n FP CPi

T = 0.3 ns

0 .9 - /

P ro cesa d o r co n d ivisor e n FP CPI

T = 0.32 ns

^ _ (s¡n cMur _ ( / • CPI • T) s in d iv iso r _ / • 0.3

t ^ ( / • CPI ‘T ) co n d iv iso r 0.9 / 0.32c o n e fM íO f

= 1.04 >1

c u á n to le co m p e n sa in c re m e n ta r el c o s te de l d is e ñ o de l p ro c e s a d o r para c o n s e g u ir esta m e jo ra en el re n ­d im ie n to .

6.3.1. Ley de Amdhal y Ley de Gustafson

Page 320: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

duran te esta fracción de tiem po (G). Hay q u e tener en cuenta q u e se puede calcular el tiempo d e ejecu­ción d e la ta rea con la m ejora a partir d e estas d o s m agnitudes y del tiempo d e ejecución antiguo, lo que perm ite ob tener el speedup según la ley d e A m dhal.

¡antes de kt mejora = t

F- 1tdespués de h mejora — ( 1 “ F ) * í H

g _ ¡antes de la mejora

¡después de la mejora

Ejem plo 6 .4

Aplicación de la ley de Am dhal.

En un d e te rm in a d o p ro ce sa d o r las in s tru cc io n e s en teras se e jecu tan en 1 c ic lo de re lo j, m ie n tra s q u e las de com a flo ta n te neces itan 5 c ic lo s de re lo j para co m p le ta rse .

En m ed ia , las a p lica c io n e s q u e se e jecu tan en este p ro ce sa d o r in v ie rte n un 30% de l t ie m p o en e je cu ta r op e rac iones en co m a flo ta n te . Y n o s gusta ría sa b e r si d esde el p u n to de v is ta co s te -p re s ta c io n e s sería in te re ­sante re d ise ñ a r el p ro ce sa d o r para q u e las o p e ra c io n e s de com a f lo ta n te fu e ra n 10 ve ce s m ás ráp id a s a costa de d u p lic a r el co s te to ta l de l procesador.

Para to m a r esta d e c is ió n basta co n saber si el speedup q u e se o b tie n e rea lizando esta m o d ific a c ió n en el d ise ñ o de l p ro ce sa d o r es de 2, ya q u e así la gananc ia o b te n id a co n la m e jo ra sería c o m p a ra b le a la in ve rs ión realizada.

Si se u tiliza la le y de A m d h a l, te n e m o s q u e F = 0 .3 (la m e jo ra pu e de u tiliza rse un 30% de l t ie m p o ) y G = 1 0 (la ganancia en la p a rte m e jo rada , en este caso la e jecuc ión de las in s tru cc io n e s en co m a f lo ta n te , es 10) p o r lo que:

o a n ie s d e lo mejoro = ------ = ---------- = 1.37 < 2

* después dolo mejoro (1 — /=■) + — (1 _ 0 .3 ) + —G 10

Por lo q u e se m e jo ra ría el re n d im ie n to g lo b a l de l p ro ce sa d o r en un 37% , y este es, m ás o m en o s , el in ­c rem e n to en el cos te de l d ise ñ o q u e se cons id e ra acep tab le , en p r in c ip io só lo p o r esta m e jo ra n o com pensa d u p lic a r su coste.

Ejem plo 6 .5

Aplicación de la ley de Am dhal con más de una mejora.

N os es tam os p la n te a n d o rea liza r d o s m o d ific a c io n e s en el d ise ñ o de un p ro ce sa d o r:

• M e jo ra r la A LU de e n te ro s de m ane ra q u e el CPI de las in s tru cc io n e s a ritm é tic o -ló g ic a s co n e n te ro s pase de 1 a 0.8.

• M e jo ra r el co p ro ce sa d o r en co m a f lo ta n te para q u e las in s tru cc io n e s en co m a flo ta n te se e jecu ten al d o b le de ve loc idad .

Si este p ro ce sa d o r e jecu ta el 4 5 % de l t ie m p o in s tru cc io n e s a r itm é tic o -ló g ic a s co n e n te ro s y el 10% del t ie m p o in s tru cc io n e s en com a f lo ta n te , el sp e e d u p q u e se p o d ría o b te n e r co n cada una de estas m e jo ra s es:

Page 321: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

M ejora p ara in s tru cc io n es e n te ra s

F = 0 . 4 5

CP1 iG = — = —— = 1 . 2 5

CPI 0 . 8

Fbrque no cambian ni el número de instrucciones ni la frecuencia de reloj. Entonces:

£ _ ^a rte s d e le m ejora ________ 1_________ ] ________________ ^

^después e/e la m ejora (1 - F ) + - ( 1 - 0 . 4 5 ) + —

G 1 . 2 5

M ejora para in stru cc io n es F P \ ~ 0 ' 1[ G = 2

^a rte s de ¡a m ejora _________] __________ ___________ \ _ y Q g

t F 0 . 11 a rte s de la m ejora ( 1 - f ) + - ( 1 - 0 . 1 ) + -------

G 2

Como ninguna de las dos mejoras sale demasiado cara y el speedup obtenido con cada una de ellas no es espectacular, nos planteamos incorporar ambas al diseño. Pero en este caso, ¿cuál sería el speedup? La utilización de las dos mejoras no se solapa en el tiempo, o se utiliza una o se utiliza la otra (las instrucciones de enteros no utilizan el hardware para coma flotante y las de coma flotante no utilizan la ALU de enteros), por lo que se puede plantear de nuevo la ley de Amdhal, pero en este caso generalizando para varias mejoras:

a rte s de la m ejora

^depués de le m ejora ( 1

o _ ^a rte s de le m ejora _ 1

*después de la m ejora ( 1 - Y.F) + Z —G

Y esta expresión se puede utilizar siempre y cuando la utilización de las mejoras no se solape, es decir, que cuando se esté utilizando una, no se pueda utilizar ninguna de las otras.

En nuestro ejemplo, aplicando las dos mejoras al diseño del procesador tendríamos un speedup de:

g _ ^a rte s de le m ejora ___________ 1____________ ] _______________________ ^ < jg

* después de le m ejora ( 1 - I f ) + I — ( 1 - 0 . 4 5 - 0 J + 0 4 5 + 0 ' 1

G 1 . 2 5 2

Cuando la ley de A m dhal se aplica a arquitecturas m ultiprocesador y m ulticom putador, establece un límite m áxim o para la ganancia q u e se puede obtener paralelizando u n a aplicación sobre N procesado­res. Este lím ite lo fija la fracción serie o secuencial d e la aplicación, 1-F, q u e en este caso es la fracción de tiempo que no se puede u tilizar la m ejora que im plica la paraldización:

^ tontes de la mejora tsecuendal 1

tdespués de la mejora t paralelo / J _ p \N

s r 1•max(Ar-*<««) —1 - F

Page 322: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Sin em bargo, este planteam iento se puede considerar algo pesimista, ya q u e en m uchos casos, al aum entar el número d e procesadores sobre los que se ejecuta u n a aplicación tam bién aum enta d tam año de la p a rte paralela d d program a, sin que aum ente la fracción serie. Por ejemplo, es típico aum entar la resolución espacio-tem poral del problema, realizando cálculos para u n núm ero mayor d e puntos. D e estas consideraciones surge la ley d e G ustafson, que al contrario q u e la ley d e A m dhal, no supone q u e el tam año del problem a es fijo.

Según esta ley, si sobre N procesadores el tiem po d e ejecución de un program a es la sum a del tiempo que ta rd a en ejecutarse la fracción serie y la fracdón p a ra ld a , al p asar a ejecutar este mismo program a sobre un único procesador y no poder a aprovechar el parald ism o, la fracdón paralela ta rdará N veces m ás en ejecutarse:

tantes de lamejora = ( 1 F ) ' t + N ' F ' t

tdespués déla nvjora = ¿ = (1 — F ) ' t + F ' t

S = = ( 1 - F ) + N - Ftdespués de la mejora

P sr lo que el speedup máximo no está lim itado, en principio, por la fracción serie del program a:

^ m a x f N —*oo) = 0 0

Ejem plo 6 .6

Comparación de la ley de Am dhal y la ley de Gustafson.

Para comprender mejor la diferencia entre las leyes de Amdhal y Gustafson, estudiemos la evolución del speedup que se consigue paralelizando una aplicación, en función de su fracción serie y del número de proce­sadores disponibles para su ejecución paralela:

Ley de Am dhal

Procesadores (N)

Page 323: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

Ley de Gustafson

Procesadores (N)

Lo p r im e ro q u e se observa es q u e am bas leyes p re d ice n la m ism a e v o lu c ió n de l speedup para el caso ó p t im o en el q u e to d a la a p lica c ió n es pa ra le liza b le (F=1).

A d e m á s , se pu e de o b se rva r q u e en el re s to de casos la le y de A m d h a l es bas tan te m ás p es im is ta q u e la de G usta fson , ya q u e el speedup se ve fu e rte m e n te pena lizado p o r la fra cc ió n se rie de la a p lica c ió n , p o r p e ­queña q u e esta sea y p o r m u c h o s p ro ce sa d o re s q u e se puedan u tiliz a r para e je cu ta r la pa rte pa ra le la de d icha ap licac ión .

Esta a p a ren te co n tra d icc ió n n o lo es, ya q u e las do s leyes se basan en p rem isas d ife re n te s : la le y de A m d ­ha l es vá lida c u a n d o las a p lica c io n e s t ie n e n un v o lu m e n de tra b a jo f i jo m ie n tra s q u e la le y de G usta fson tie n e en cuenta q u e c ie rta s ap lica c io n es pueden a u m e n ta r el v o lu m e n de tra b a jo c u a n d o a um en ta el n ú m e ro de p rocesado res . Y a fo rtu n a d a m e n te e s to es bas tan te fre c u e n te ya que , c o m o se m en c io n a b a an tes, en m uch a s a p lica c io n es es t íp ic o a u m e n ta r la re s o lu c ió n esp a c io -te m po ra l de l p ro b le m a cu a n do a u m en ta el ta m a ñ o del s istem a.

De c u a lq u ie r m ane ra s ie m p re sa b e m o s q u e la le y de A m d h a l no s da la e s tim a c ió n m ás p e s im is ta del sp e e d u p q u e se pu e de ob tener, y si es p o s ib le a u m e n ta r el ta m a ñ o de l p ro b le m a , el sp e e d u p q u e se consiga f in a lm e n te estará segu ro p o r e n c im a de este va lor.

m Técnicas de medida y benchmarksSea cual sea la m étrica de rendim iento escogida para cuantificar las prestaciones de un sistema, es

necesario establecer una m etodología para realizar las m edidas de rendim iento y escoger qué program a o conjunto d e program as se deben ejecutar en el sistema p a ra llevarlas a cabo. L a evaluación d e rendi­miento del sistema se realiza en m uchas ocasiones m ediante simulaciones, pero estas técnicas escapan del alcance d e este libro.

En la mayor parte d e los casos los usuarios o diseñadores desean evaluar d rendim iento del sistema ejecutando en d sus propias aplicaciones, d e m anera q u e puedan predecir exactam ente cuáles serán las prestadones obtenidas p a ra la carga típica que el sistema va a ejecutar. Pero tam bién en la mayor parte de los casos esto no es posible por problem as de portabilidad que obligarían a recom pilar las aplicadones, porque éstas no están preparadas p ara realizar las m edidas d e rendim iento, porque estas m edidas serían dem asiado costosas en tiempo y/o en recursos, etc.

R )r estos m otivos se suele recurrir a un tipo especial d e program as denom inados benchm arks, especí­ficamente diseñados p ara realizar la evaluación d e rendim iento. E sto implica que son fáciles d e insta lar y

Page 324: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

ejecutar, y q u e adem ás cum plen con unos requisitos m ínim os d e portabilidad q u e perm iten su ejecución sobre d ifero ites plataform as.

6.4.1. Técnicas de medida

P ira obtener los valores d e las m étricas d e rendim iento escogidas existen diferentes técnicas d e m edi­d a q u e se pueden clasificar en cuatro g randes g rupos q u e se explican a continuación. E n cualquier caso, escoger la técnica d e m edida m ás adecuada para cada situación no es tarea sencilla, pero siempre hay que tener en cuen ta el tipo d e m étrica d e rendim iento q u e se desea m edir (ya q u e no todas las técnicas serán adecuadas para ciertas métricas), el coste en tiem po y recursos q u e im plica hacer las medidas, las perturbaciones que las propias m edidas pueden introducir en d sistem a y la predsión d e los resultados obtenidos.

6 .4 .1 .1 . U t i u z a c i ó n d i r e c t a d e l a i n f o r m a c i ó n m a n t e n i d a p o r e l s i s t e m a o p e r a t i v o

Prácticam ente todos los sistemas operativos actuales m antienen in form adón sobre las diferentes ta ­reas q u e se están ejecutando en el sistem a y sobre la utilización que están haciendo d e sus recursos.

Aunque la finalidad d e m antener esta inform ación no es proporcionar u n a herram ienta d e m edida de rendim iento, el sistem a d e inform ación del sistem a operativo realiza funciones similares a las d e cua l­quier m onitor de rendim iento. L a inform ación típica que suele m antener el sistema operativo incluye la utilización del procesador y d e la m em oria, el número d e tareas en el sistema, el tiempo de inicio y de finalización d e cada tarea, el tiem po que cad a tarea h a pasado realm ente en el procesador, etc.

La principal ventaja d e utilizar este tipo de inform ación es que no hace falta desarro llar código espe­cífico p a ra realizar las m edidas d e rendim iento, pero la principal desventaja es la sobrecarga q u e el acceso a es ta inform ación m antenida p o r el sistem a operativo puede suponer dependiendo d e la frecuencia con la q u e se realice.

Además, el form ato en el que esta inform ación se alm acena no suele ser m uy am igable e im pone bastantes restricciones en su utilización. Por último, hay que tener en cuenta q u e d sistem a operativo no suele m antener inform ación acerca de la longitud d e las colas d e e jecudón d e los d istin tos recursos (distintos del procesador), del núm ero d e eventos re ladonados con las funciones d e E/S o del núm ero de cam bios de contexto, sólo p o r poner algunos ejemplos.

6 .4 .1 .2 . M o n i t o r e s s o f t w a r e

En este caso para realizar las m edidas d e rendim iento se ejecuta u n a aplicación espedficam ente pro ­gram ada para recoger y tra ta r la in fo rm adón necesaria. N orm alm ente esta inform ación se recoge d e la m antenida p o r el sistema operativo, por o tras aplicaciones o d e o tro tipo d e variables del sistema.

Este tipo d e m onitores pueden utilizar d o s técnicas de m edida:

• Detección de eventos. El m onitor con tro la ciertas en tradas del sistema operativo para detectar eventos tales com o interrupciones, llam adas al sistema, fallos d e página o finalización de tu m o s de planificadón del procesador. D e nuevo existen d o s opciones:

— Cuenta de eventos. Sólo interesa conocer el número d e eventos de u n determ inado tipo q u e se han producido cuando finaliza la m onitorización del sistema.

— Traza. En este caso no sólo se alm acena un con tado r con el número d e eventos que se han pro ­ducido sino tam bién alguna parte del estado del sistem a q u e perm ita identificar a cada evento que se h a producido d e m anera única. El problem a d e este tipo d e m onitores es que consum en muchos m ás recursos del sistema para hacer la evaluación de rendim iento, m ás tiempo y m ás alm acenam iento.

Page 325: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

• Muestreo. En este caso d m onito r se activa cad a d e rto tiem po (periodo d e m onitorización) p a ra recoger in fo rm adón sobre el estado del sistema.

La principal ventaja d e los m onitores software es q u e se pueden adecuar a las necesidades del usuario y recogen la inform ación necesaria p a ra realizar las m edidas d e rendim iento escogidas, n i m ás n i menos. Además se puede incorporar al m onitor el tratam iento d e la inform ación recogida, de m anera q u e si la métrica d e rendim iento se obtiene d e m anera indirecta y no puede medirse directam ente, el m onito r p ro ­porciona el valor final d e la m étrica. Pero estos m onitores suden ser m uy dependientes de la arquitectura y del sistem a operativo, incluso en pequeños matices, por lo q u e no suelen ser reutilizables.

Com parando los m onitores que fu n d o n an por detección d e eventos y p o r muestreo, se encuentran algunas diferencias significativas. En general, la de tecdón d e eventos suele darse a un nivel m ás bajo que d muestreo por lo que p ara utilizar m onitores p o r d e tecd ó n d e eventos su d e ser imprescindible parchear d k em d d d sistema operativo, ya que si no, no sería posible detectar los eventos (interrupdones, fallos de página, cam bios d e contexto, etc). P or d contrario , los m onitores que funcionan por muestreo suelen ir po r encim a del sistem a operativo, sin necesidad d e m odificar ninguna d e sus ru tinas ya q u e sólo recogen información acerca d e ciertos aspectos del estado del sistema.

En cuan to a la sobrecarga q u e este tipo d e m onitores suponen para el sistema, d número d e eventos de un determ inado tipo q u e se va a p roducir es com pletam ente impredecible cuando se com ienza la m o­nitorización, así q u e no es posible saber a priori cual va a ser la sobrecarga in troducida por u n a detección de eventos. Por d contrario , una vez que se fija el periodo de m onitorización d e un m onitor por muestreo, se conoce con exactitud la sobrecarga que el m onitor va a suponer para d sistema, porque se sabe cuántas veces va a ejecutarse en un periodo d e tiem po concreto.

Cuando el evento que se m onitoriza se produce con una gran frecuencia, la sobrecarga que d m onitor por detección d e eventos supone p a ra d sistem a es inaceptable (especialmente si se basa en la realización de trazas) y se obtiene m ejor rendim iento co n un muestreo. Sin em bargo, cuando d evento se produce con una frecuencia m uy baja, el m onitor por detección d e eventos no supondrá u n a gran carga para d sistema y adem ás, se ejecutará sólo cuando sea necesario. Además, en este últim o caso la elección del periodo de m onitorización para el m onitor p o r m uestreo será crítica para la realización de las m edidas, ya q u e si no se escoge bien puede q u e d e r to s eventos pasen inadvertidos p a ra d m onitor.

6 .4 .1 .3 . M o n i t o r e s h a r d w a r e

Las m edidas d e rendim iento han adquirido tan ta im p o rtan d a en el área d e la arquitectura d e com ­putadoras que los fabricantes han term inado por incluir en el propio hardw are m onitores que perm itan con tar con gran precisión u n a m ultitud d e eventos.

Los eventos que perm iten medir este tipo d e m onitores son los de m ás bajo n ivd, relacionados estre­cham ente con la arquitectura del sistema. Las ventajas q u e presentan estas herram ientas d e m edida son tres:

• No se consum en recursos (tiem po de procesador y alm acenam iento) para realizar la m onitoriza- d ó n del sistema.

• Se pueden m onitorizar eventos d e m uy bajo nivel que son com pletam ente transparentes para el software e incluso para el sistem a operativo.

• Son m ucho m ás precisos q u e los m onitores software en la medición d e algunas magnitudes.

La p rindpa l desventaja d e estos m onitores es q u e las m agnitudes q u e se pueden m edir son físicas, no lógicas. Por lo tan to es mucho m ás difícil d istinguir en tre las diferentes tareas que están utilizando los re­cursos (no hay identificad ores d e proceso a este nivel). Además, la instalación, configuración y utilización de las librerías que perm iten acceder a estos m onitores su d e ser com plicada y exige un gran conocim iento de la arquitectura q u e se está m onitorizando.

Page 326: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

6 .4 .1 .4 . A n á l i s i s d e p r o g r a m a s ( p r o f i l i n g )

Esta técnica suele utilizarse cuando la evaluación d e rendim iento es a un nivel m ás alto y va orientada a la optim izadón de un código o d e un sistema. En estos casos casi siempre se emplean medidas de tiem pos y d e utilización d e recursos. P or ejemplo, un desarrollador puede analizar qué fracdón d d tiempo d e ejecu- d ó n total se consum e en los diferentes bloques d e u n a aplicación para saber en cuáles se tiene que cen trar para m ejorar el rendimiento global. O un adm inistrador puede analizar en qué parte del sistema pasan más tiempo las aplicadones que se ejecutan en él para detectar y d im in ar los posibles cuellos d e bo td la .

La m anera genera1 d e realizar este tipo d e análisis es el muestreo m ediante interrupciones software. Se escogen aleatoriam ente ciertas partes del código que se analiza o c iertas aplicaciones q u e se ejecutan en el sistem a q u e se evalúa (norm alm ente, fijando un periodo d e muestreo, de m anera que cad a cierto tiempo se produce u n a in te rru p d ó n y la RTI es la encargada de recoger la inform ación), y se infiere a partir del com portam iento d e e sta m uestra (utilización d e recursos y/o tiem pos d e ejecución) cuál es el com portam iento general del p rogram a o sistema.

En el caso de analizar el com portam iento d e u n único program a, se puede utilizar la cuen ta d e blo­ques básicos si no se desea realizar una estim ación estadística sino u n a evaluación exacta del program a. En este caso se divide el código en bloques básicos, q u e no son m ás q u e conjuntos de instrucdones en los que no hay ningún salto, es ded r, que se asegura q u e se van a ejecutar todas d ía s u n a vez q u e com ience la ejecudón d e ese bloque.

Se insertan en cad a bloque básico una serie d e instrucciones y directivas que perm iten realizar su análisis y co n ta r cuán tas veces se ejecutan en to tal, p o r lo que al finalizar la ejecudón d e la aplicación, se puede recoger to d a esta inform ación y realizar un profiling com pleto.

Obviamente, esta técnica no está sujeta a errores aleatorios com o el muestreo, el problem a es q u e hay que m odificar el código y que la gecución d e las instrucciones q u e se añaden p a ra realizar la evaluación de rendim iento puede añad ir una gran sobrecarga a la aplicación, incluso, provocando un cam bio en la utilización d e la je rarqu ía d e m em oria (se alm acena u n a gran can tidad d e inform ación relativa al profiling porque hay una gran can tidad de bloques básicos) q u e pueda em peorar mucho su tiempo d e ejecución. Por lo que sólo se utiliza cuando se necesita u n a gran precisión en la evaluación de rendim iento.

6.4.2. Tipos de benchmark

Existen m ultitud d e dom inios de aplicación en los que hoy a i d ía puede ser necesario realizar una evaluación d e rendim iento, y por ello, existen tam bién d istin tos tipos d e benchm arks. P or ejem plo, un diseñador d e procesadores que está realizando simulaciones para escoger en tre d o s alternativas d e p la­nificación dinám ica necesitará un código rápido y sencillo que perm ita realizar m edidas d e rendim iento asociadas sólo al procesador, pero u n a m ultinacional q u e debe escoger en tre diferentes servidores p a ra ejecutar sus aplicaciones d e gestión corporativa, necesitará benchm arks mucho m ás variados y com plejos para poder tom ar su decisión.

Aunque existen diferentes clasificaciones d e benchm arks, a continuación se detalla u n a d e las m ás aceptadas:

• Benchmark sintético. Se tra ta d e u n program a desarrollado específicamente para le evaluación de rendimiento, p o r lo tanto, com pletam ente artificial y q u e no realiza ningún trabajo útil. Para que pueda extraerse inform ación útil a partir d e las m edidas tom adas d u ran te su ejecución, se in ten ta que d conjunto d e instrucciones q u e contiene este benchm ark sea un conjunto representativo del tipo de aplicación q u e el sistema va a ejecutar en la realidad (proporción d e operaciones d e enteros y d e com a flotante, porcentaje d e instrucciones q u e acceden a m o n o ria o que son saltos condicio­nales, etc). Sin onb arg o , aunque estas proporciones se estudien m inuciosam ente o í las aplicacio­nes reales y se reproduzcan o í el benchm ark sintético, es posible que los efectos introducidos por d orden d e las instrucciones en las aplicaciones reales (dependencias y riesgos) y por el patrón de

Page 327: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

accesos a m em oria, hagan q u e los resultados del benchm ark sean diferentes d e los que luego se o b ­tengan en la realidad. P or o tro lado, suelen ser benchm arks m uy sencillos d e desarrollar y utilizar. U n ejem plo son los conocidos benchm arks W hetstone y D hrystone.

• Microbenchmark. Se tra ta d e un benchm ark sintético mucho m ás corto y sencillo q u e se cen tra en evaluar el rendim iento de u n com ponente m uy concreto del sistema, p o r ejemplo, el con tro lador de m em oria o una determ inada un idad d e com a flotante. Para desarrollarlos hay q u e tener un gran conocim iento d e arquitectura d e com putadoras, y suden utilizarse p a ra detectar cuellos d e botella y para caracterizar el rendim iento máximo d e las diferentes unidades de un sistema, por ejemplo, para realizar u n a simulación.

• Kernel. Se tra ta d e la parte m ás costosa d e ejecutar o m ás representativa de una aplicación real. U n kernel su d e estar com puesto sólo p o r unas pocas líneas de código, p o r lo q u e al no utilizar la aplicación com pleta para realizar m edidas de rendim iento, se elim inan los problem as d e dificultad de ejecución, portabilidad o alto coste d e ejecución. L a idea detrás d e este tipo d e benchm ark es que escogiendo d e m anera inteligente la p a rte d e la aplicación real q u e se convierte en el kernel para m edida d e rendim iento, se puede p red ed r d rendim iento que d sistema tendría para la apli­cación com pleta realizando m edidas sólo sobre el kernd . El problem a es que en m uchos casos no es posible encon trar en una pequeña parte d e u n a aplicación los riesgos d e datos y control, los accesos a m em oria, las operaciones d e E/S, etc. q u e hacen q u e la aplicadón com pleta obtenga unas prestaciones determ inadas. U n p a r d e ejem plos conocidos de keraels son los liv e rm o re loops y b s Ñ AS keraels.

• Benchmark de juguete. Es u n a aplicación real q u e produce un resultado real, pero q u e es sencilla y que utiliza un conjunto d e datos d e en trad a pequeño. E jem plos típicos son el algoritm o de ordena- d ó n quicksort, las to rres de H anoi, o la transform ada de Fourier rápida. Aunque hace unos años fueron m uy populares, los resultados obtenidos con uno sólo d e estos algoritm os no son adecua­dos p a ra realizar u n a evaluación d e rendim iento com pleta.

• Conjunto de aplicaciones benchmark. Por todos los inconvenientes señalados en los anteriores tipos de benchm ark, se h a llegado a la conclusión d e que en la mayor p a rte de los casos la m ejor opción es utilizar un conjunto d e aplicaciones representativas de la carga típica d d sistema, previam ente estandarizadas p o r algún organism o o em presa. Existen conjuntos p a ra la evaluación d e sistemas cuando su carga típica son aplicaciones científicas y d e ingeniería (po r ejemplo el conjunto Perfect Q u b ) o aplicaciones de gráficos y m ultim edia (por ejem plo SPEC viewperf) por poner sólo un par d e ejemplos. Para q u e la ejecudón d e esos benchm arks sea sencilla y no dem asiado costosa, re suelen utilizar conjuntos d e datos d e en trad a m ás sendllos q u e en la realidad. Esto puede hacer que no se caracterice del todo bien el rendim iento d e la je rarqu ía d e m em oria o del sistema d e E/S, pero hasta d m om ento estos conjuntos d e aplicaciones h an dem ostrado ser una buena o p d ó n en la mayor p a rte de los casos.

SPEC.

S tanda rd P erfo rm ance E va lua tion C o rpo ra tio n (SPEC) es una o rgan izac ión q u e se encarga de p ro p o n e r y m a n te n e r c o n ju n to s de a p lica c io n e s b e n chm a rk para d ife re n te s c a m p o s de a p lic a c ió n , y de es tandariza r las m é tr ic a s y m e to d o lo g ía s de m ed id a asoc iadas a estos co n ju n to s .

N os ce n tra re m o s en es te caso p rá c tic o en SPEC CPU, q u e es el c o n ju n to de b e n chm a rks m ás u tiliza d o para caracte riza r el re n d im ie n to de CPUs en s is tem as de p ro p ó s ito genera l. Por e je m p lo , el c o n ju n to SPEC CPU 2006 está c o m p u e s to p o r 29 ap lica c io n es q u e eva lúan el re n d im ie n to de l s is tem a ta n to en o p e ra c io ­nes co n e n te ro s (12 de las ap licac iones) c o m o en o p e ra c io n e s en com a f lo ta n te (las o tra s 17). D e n tro de

C a s o p r á c t ic o 6 . 1 .

311

Page 328: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

este c o n ju n to de b e n chm a rks h a y ap lica c io n es de c o m p ila c ió n y p ro g ra m a c ió n en d ife re n te s lengua jes, com p re s ió n de d ife re n te s t ip o s de d a tos , a lg o r itm o s gené ticos , in te lig e n c ia a rtific ia l y ju e g o s , s im u lac ión , có m p u to c ie n tíf ic o , etc.

B en ch m arks p a ra e n te ro s B en ch m arks pa ra c o m a f lo ta n te

410 .bw aves416.gam ess433 .m ilc

400 .p e rlb e n ch 434.zeusm p401 .bz ip2 435 .g rom acs403 .gcc 436 .cactusA D M4 2 9 .m c f 437.les lie3d4 4 5 .g o b m k 444.nam d4 5 6 .h m m e r 447.dea lll458 .s jeng 450 .sop lex4 6 2 .lib q u a n tu m 453 .povray464 .h264 re f 454 .ca lcu lix4 7 1 .o m n e tp p 459.G em sFDTD4 73 .as ta r 4 6 5 .to n to483 .xa la n cb m k 470. Ibm

481.w r f482 .sph inx3 999.specrand

Se tra ta de un c o n ju n to de a p lica c io n e s q u e rep resen ta de la m anera m ás co m p le ta p o s ib le la ca rga de tra b a jo h a b itu a l de las co m p u ta d o ra s de p ro p ó s ito genera l actua les. Para to d o s lo s b e n chm a rks ex is te una d o cu m e n ta c ió n q u e describe exha us tiva m e n te el t ip o de tra b a jo q u e rea lizan, las e n tradas q u e necesitan, las sa lidas q u e p ro d u ce n , el le n g u a je de p ro g ra m a c ió n en el q u e están e scritos y lo s aspec tos re lac ion a d o s con su p o rta b ilid a d (ya q u e se eva lúan co n estos b e n chm a rks una gran va riedad de p la ta fo rm as).

SPEC n o só lo p ro p o rc io n a este c o n ju n to de a p lica c io n e s s in o ta m b ié n una m é trica de re n d im ie n to asociada y una m e to d o lo g ía para su m ed id a . Lo p r im e ro q u e se hace es m e d ir el t ie m p o de e jecuc ión del s is tem a eva luado para cada una de las a p lica c io n e s de l c o n ju n to de benchm arks .

A c o n tin u a c ió n se no rm a lizan lo s t ie m p o s o b te n id o s , d iv id ié n d o lo s p o r lo s t ie m p o s o b te n id o s para esas m ism as a p lica c io n e s en un s is tem a de re fe renc ia p ro p o rc io n a d o p o r SPEC. Por ú lt im o , se hace la m ed ia g e o m é trica de to d o s estos t ie m p o s n o rm a liza d o s , y esa es la m é tr ic a q u e p e rm ite c u a n tific a r el re n d im ie n to de l s istem a.

¿Por q u é se u tiliza la m ed ia geom é trica ? En p r in c ip io es razonab le u tiliza r a lg ú n t ip o de m ed ia , ya que n o es m u y p rá c tic o m a n e ja r 29 t ie m p o s de e je cu c ió n d ife re n te s para rea liza r una eva lu a c ió n de re n d im ie n to y o b te n e r co n c lu s io n e s genera les y sencillas. Y se u tiliza la g e o m é trica p o rq u e t ie n e una p ro p ie d a d q u e no tienen o tra s m ed ia s c o m o pueda ser la a ritm é tica ; si se m o d if ic a el sistem a de re fe renc ia en a lgún m o m e n ­to (el q u e se u tiliza para la n o rm a liza c ió n de lo s tie m p o s ), el v a lo r a b s o lu to de la m é trica de re n d im ie n to para un sistem a c o n c re to se m o d ific a ta m b ié n , pe ro su re lac ión co n la m é trica o b te n id a para o tro s s is tem as (el s is tem a 1 es 2 veces m ás rá p id o q u e el s is tem a 2, e tc.) se m a n tie n e exac tam en te igua l.

Y es to es im p o rta n te para una m é trica c o m o la de SPEC, q u e pub lica en su pág ina w e b (w w w .s p e c .o rg ) eva luac iones de re n d im ie n to de m u ltitu d de s is tem as y p la ta fo rm a s p o r lo q u e se u tiliza m u y a m e n u d o para hacer co m p a ra c io n e s de re n d im ie n to y para e n co n tra r co n fig u ra c io n e s óp tim as.

Métricas de rendimiento complejasLas m étricas sencillas definidas al principio d e este capítulo suelen ser suficiente p ara evaluar el ren ­

dim iento d e arquitecturas sencillas com puestas p o r un único procesador, una jerarqu ía d e m em oria y un sistema d e E/S.

Page 329: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

í^ ro en el caso d e sistem as m ultiprocesador o m ulticom putador, sean estos tradicionales o vayan im plem entados en un único chip, casi siempre son necesarias m étricas adicionales p ara ob tener u n a eva­luación d e rendim iento com pleta.

Estas m étricas suelen estar relacionadas con diferentes aspectos, com o puedan ser la d ic iencia con la que se utilizan todos los recursos disponibles, el consum o d e potencia, el rendim iento del sistem a de comunicaciones, la fiabilidad, la estabilidad, la disponibilidad, la to le ran d a a fallos, la flexibilidad, la sensibilidad o la robustez.

Además p ara realizar m edidas d e rendim iento en estos sistemas existen benchm arks específicos com o SPEC H PC , los Ñ AS Parallel Benchm arks (NPB) o PA R K B EN C H , p o r poner sólo algunos ejemplos.

Si adem ás estos sistemas paralelos están im plem entados on-chip, suelen utilizarse m étricas d e ren ­dim iento d e m ás bajo nivel com o puedan ser el área, el consum o de potencia, el núm ero d e pines, etc; y benchm arks mucho m ás específicos.

6.5.1. Speedup en sistemas paralelos y eficiencia

Estas m étricas son d e las m ás utilizadas en d caso d e arquitecturas m ultiprocesador y m ulticom puta­dor. En estos sistem as co n varios procesadores, el speedup su d e utilizarse para cuantificar cuán to m ás rá ­pido puede ejecutarse u n a aplicadón si se p ara ld iza sobre N procesadores que si se ejecuta en uno sólo.

En este contexto se han definido d istin tos tipos d e speedup:

• Speedup relativo:

t de ejecución del código P en 1 procesadorSrd =

t de ejecución del código P en N procesadores

Speedup real:

/ de ejecución del mejor código secuencial en 1 procesadorS r e a l = ------------

t de ejecución del código P en N procesadores

Speedup absoluto:

s _ t de ejecución del mejor código secuencial en e l mejor procesador t de ejecución del código P en N procesadores

Speedup norm alizado:

s_ = ______________________s ______________________coste sistema paralelo / coste sistema 1 procesador

Como se puede observar, la diferencia en tre las tres prim eras definiciones se encuentra en el tiempo de ejecución utilizado para caracterizar d com portam iento de la aplicación en d caso d e ejecutarla sobre un único procesador.

El speedup absoluto es el m ás fiable si se desea cuantificar la ganancia real q u e se obtiene al ejecutar una ap licadón sobre N procesadores, ya que com para el tiempo d e ejecución en esta situación con el que se ob tendría en el m ejor d e los casos para un único procesador, se escoge la m ejor im plem entación secuencial posible d e la ap licadón y adem ás se ejecuta sobre d procesador m ás rápido. Sin em bargo se utiliza m uy poco, ya q u e en pocas ocasiones se tiene acceso al mejor procesador p ara realizar las medidas,

Page 330: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

y adem ás este m ejor procesador no es siempre el mismo, al con trario , varía bastan te a m enudo con las mejoras q u e se van introduciendo en los diseños.

El speedup real se utiliza algo m ás ya q u e no exige esta ejecución sobre el m ejor procesador, pero sí que exige program ar dos versiones d e la aplicación, la paralela y la secuencial en su m ejor versión, es decir, con todas las optim izaciones posibles. N orm alm ente se ejecuta la aplicación en el sistem a paralelo y a continuación en el m iañ o sistem a pero utilizando uno sólo d e los procesadores. El problem a es que, en ocasiones, al ejecutar la versión secuencial sobre u n único procesador, no hay suficiente m em oria para hacerlo.

Siempre q u e se m aneje este tipo de speedup hay q u e tener en cuen ta q u e los valores obtenidos son mejores cuanto peor es el procesador sobre el q u e se ejecuta la versión secuencial d e la aplicación. En el caso del speedup absoluto, es muy com ún q u e la paralelización de la aplicación, si és ta no tiene u n a com ­plejidad suficiente, no resulte en una m ejora. Es decir, que se obtenga un speedup p o r debajo d e 1 debido a los retardos q u e introduce la com partición d e la m em oria o la com unicación en tre procesadores, y que no existen en la versión secuencial, que adem ás se ejecuta sobre el m ejor procesador posible.

Sin em bargo, al u tilizar el speedup real, la com paración d e los tiem pos d e ejecución suele favorecer a la versión paralela, porque no se ejecuta la versión secuencial sobre la m ejor p lataform a posible.

Y si se utiliza el speedup relativo, esto ocurre en mayor m edida, porque el código utilizado p a ra hacer las m edidas d e la versión secuencial n i siquiera tiene q u e estar optim izado. Se suele utilizar com o código secuencial el que se em plea com o pun to d e p artida p a ra la paralelización d e la aplicación. Y d e nuevo, cuando m enos eficiente sea esta versión del código, m ayor valor tendrá d speedup.

En resumen, la utilización del speedup relativo o del speedup real es m ucho m ás sencilla q u e la del absoluto, pero hay que ser cuidadosos puesto que puede llevar a conclusiones erróneas (sobrevalorando la m ejora q u e se puede obtener g ra d a s a la paralelizadón). Además, cabe destacar q u e en cualquiera de las tres prim eras definiciones d d speedup, aunque lo norm al es que el límite m áxim o al paralelizar una aplicación sea el número de procesadores sobre d que se ejecuta la aplicación paralela, S max=N , algunos autores h an dem ostrado que este lím ite puede superarse. P or ejem plo, por aspectos rdacionados con la jerarquía d e m a n o ria q u e limiten en gran m edida el tiem po d e ejecución d e la versión secuencial d e la aplicación cuando se ejecuta sobre u n único procesador.

En cuanto a la ú ltim a definición del speedup, el norm alizado, in ten ta tener en cuenta el coste del sistema co n un procesador y d d d sistem a paralelo para norm alizar el speedup obtenido con la para le­lización d e la ap licadón , q u e puede ser el absoluto, el real o el relativo (dependiendo del q u e se utilice, el coste del sistem a con un procesador será uno u otro).

Aunque esta defin idón resulta m uy atractiva en m uchos casos d e evaluación d e rendim iento, la prin- d p a l dificultad que p lan tea e stá en definir a su vez el coste d e los d o s sistem as que se com paran. ¿Qué aspectos se tio ien en cu o ita? P or u n lado, hay elem entos hardw are y software. Y por otro, hay costes de adquisición, de puesta en m archa, d e m antenim iento, etc, q u e no siempre son fáciles de cuantificar.

En esta m ism a línea d e norm alización del speedup existe una m étrica m ucho m ás fiable y so icilla de medir denom inada eficiencia. L a idea fundam ental d e trás de esta definición es q u e no es lo mismo ob te­ner un determ inado speedup al paralelizar u n a aplicación si se hace sobre 3 procesadores que sobre 30. Si fuera así, la paralelización sobre el sistem a con m enor número d e procesadores estaría utilizando de m anera mucho m ás eficioite los recursos y p o r lo tan to , ofrecería unas mejores prestaciones.

Pbr tanto, se define la eficiencia como:

5£ ~ N

D onde S es d speedup absoluto, real o relativo, y N es el núm ero d e procesadores. O bviam oite, com o los speedups real y relativo se ven favorecidos por sistonas d e u n procesador co n rendim iento pobre y por implementaciones secuenciales poco optim izadas, lo mismo ocurre co n la eficiencia, p o r lo que hay que ser p ru d o ite en la in te rp re tad ó n d e sus valores.

Page 331: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

6.5.2. Escalabilidad

Como ya se h a explicado en secciones anteriores, el speedup que se puede conseguir al paralelizar una aplicación no depende sólo del número de procesadores de la arquitectura paralela sino tam bién de ciertas características de la aplicación. Intuitivam ente, u n sistema se considera escalable si al aum entar el número d e procesadores y el tam año del problem a, es capaz d e aum entar tam bién su rendim iento (o por lo menos, d e m antenerlo).

Se definen d istin tos tipos de escalabilidad dependiendo d e qué aspecto de rendim iento es el que tiene que escalar al aum entar el tam año del problem a y del sistema. Aunque existen m ultitud de definiciones de métricas d e escalabilidad, todas ellas siguen la m ism a m etodología p ara m edir el valor d e esta m étrica:

• Se escoge u n aspecto de rendim iento q u e caracterice el com portam iento del sistema: speedup, efi­ciencia, latencia, calidad d e servicio, potencia, etc.

• Se analiza el valor d e este aspecto d e rendim iento en diferentes configuraciones del sistema, incre­m entando progresivam ente el número d e procesadores, y para diferentes tam años del problem a.

• El sistem a se considera escalable si puede incrementar, o por lo m enos m antener constan te el as­pecto d e rendim ioito escogido p a ra caracterizar d com portam iento del sistema, al aum entar el número d e procesadores (escogioido un tam año adecuado del problem a).

• El grado d e escalabilidad suele estar determ inado p o r el co d en te en tre el increm ento en d tam año del problem a y el incronento en el número d e procesadores d d sistem a necesario para conseguir que el ro id im iento se m antenga constante.

Ejem plo 6 .7

Definición de la Escalabilidad R

En lo s tra b a jo s de Prsad J o g a le k a ry M u rra y W o o d s id e se d e fin e una m é trica m u y co m p le ta para cu a n tific a r la esca lab ilidad de a rq u ite c tu ra s de m e m o ria d is tr ib u id a q u e v a m o s a in te n ta r co m p re n d e r a co n tin ua c ió n .

En este ca so el a sp ec to de re n d im ie n to e s co g id o para esca la r co n el in c re m e n to de l ta m a ñ o de l s is tem a y del ta m a ñ o de l p ro b le m a es la p o ten c ia de l s is tem a (P), d e fin id a co m o :

T

D o n d e A es p ro d u c tiv id a d de l sistem a (n ú m e ro de ta reas c o m p le ta d a s p o r un idad de t ie m p o ) y T es el t ie m p o de e je cu c ió n m e d io de una tarea.

La esca lab ilidad P en tre una c o n fig u ra c ió n 1 y una co n fig u ra c ió n 2 de l s is tem a (i//1_>2) se d e fin e co m o :

D o n d e C es una m é trica para el co s te de l s is tem a de fin ida p o r el u su a rio en fu n c ió n de sus neces idades (dependerá de si el s is tem a es un c luster, un g rid , un c lo u d , una a rq u ite c tu ra o n -c h ip , etc).

La esca lab ilidad pe rfe c ta sería y/1_>2= 1 , ya q u e im p lica q u e la c o n fig u ra c ió n 2 pu e de c o n s e g u ir una p ro ­d u c tiv id a d k veces m a y o r q u e la c o n fig u ra c ió n 1, m a n te n ie n d o el m is m o t ie m p o de e jecuc ión m e d io para una tarea y a u m e n ta n d o el co s te en un fa c to r k. Por enc im a de 1 el s is tem a presen ta esca lab ilidad p o s itiv a , y p o r d e b a jo , n o es escalable.

Page 332: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

Los a u to re s p ro p o n e n estab lece r una estra teg ia de esca lado para rea liza r un aná lis is de esca lab ilidad c o m ­p le to de l s is tem a. Esta es tra teg ia debe f ija r :

• Q ué c o n fig u ra c io n e s de l s is tem a se in c lu ye n en el aná lis is . N o rm a lm e n te se in c rem e n ta p ro g re s iv a m e n ­te el n ú m e ro de p ro ce sa d o re s desde 1 hasta el m á x im o posib le .

• En cada nueva co n fig u ra c ió n pu e de m o d ific a rs e só lo el n ú m e ro de p ro ce sa d o re s re sp e c to de la a n te r io r (estra teg ia de esca lado f ija ) o si p o r el co n tra rio , pueden m o d ific a rs e lo s aspectos d e n o m in a d o s p o s ib ili- ta d o re s de esca lab ilidad (es tra teg ia de esca lado variab le ) para c o n s e g u ir q u e la p o ten c ia de l s is tem a no decrezca. Los p o s ib ilita d o re s de esca lab ilidad están típ ic a m e n te re lac ion a d o s co n el ta m a ñ o de l p ro b le ­m a, el d ise ñ o de la a p lica c ió n , la can tidad de m e m o ria de l s is tem a , etc.

Ejem plo 6 .8

Generalización de la escalabilidad R

La d e fin ic ió n de la esca lab ilidad de l e je m p lo a n te r io r presenta un p ro b le m a t íp ic o : si el t ie m p o m e d io de e jecuc ión tie n e un va lo r m u y p e q ue ñ o , el va lo r de la esca lab ilidad t ie n d e a in f in ito , lo q u e hace q u e sea m u y d ifíc il de in te rp re ta r. Por eso lo s m is m o s au to res han p ro p u e s to una genera lizac ión de esta m é trica , re d e fin ie n - do la p o ten c ia co m o :

P = X - f { T , T J

D o n d e X es de n u e vo la p ro d u c tiv id a d de l s is tem a (n ú m e ro de ta re a s c o m p le ta d a s p o r u n id a d de tie m p o ), T es el t ie m p o de e jecuc ión m e d io de una ta rea y T ^ es el t ie m p o de e je cu c ió n m e d io espe rado , es dec ir, un va lo r al q u e se desearía lle g a r para este s is tem a y esta ap licac ión .

La fu n c ió n f se pu e de d e fin ir de d ife re n te s m ane ras , lo s a u to re s p ro p o n e n la s ig u ie n te en su tra b a jo :

f [ T , T ) = — -—

~ i + - L

Por lo q u e la esca lab ilidad P e n tre una c o n fig u ra c ió n 1 y una co n fig u ra c ió n 2 de l s is tem a (i//1_>2) se d e fine com o :

5v c , w y

“ p, V<VF2 + WC,

D o n d e C es de n u e vo una m é trica para el cos te de l s is tem a d e fin ida p o r el u su a rio en fu n c ió n de sus ne ­cesidades.

Page 333: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

BIBLIOGRAFÍA Y LECTURAS RECOMENDADASBUYYA, R. (1999): H igh Performance Cluster Computing (volúmenes 1 y 2), Prentice Hall.CULLER, D.; SIN GH, J. P. & GUPTA, A. (1998): ParaUel Computer Architecture: A Hardware!Software Approach,

Morgan Kaufmann.G U N TH ER , N. (2000): The Practical Performance Analyst, iUniverse.HENNESSY, J. L. & PATTERSON, D. A. (2007): Computer Architecture: A Quantitative Approach (4.a ed.), Morgan

Kaufmann.HWANG, K. (1992): Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw Hill.JAIN, H. K. (1991): The A rt o f Computer System s Performance Analysis: Techniques fo r Experim ental Design, M ea-

surement, Simulation, and Modeling, Wiley.JO GALEKAR, P. & W OODSIDE, M. (2000): “Evaluating the scalability o f distributed systems”, IE E E Transac-

tions on Paral leí and D istributed System s, 11(6), 589-603.LILJA, D. J. (2005): M easuring Computer Performance: A Practitioner's Guide, Cambridge University Press.SAHNI, S. & THANVANTRI, V (1996): “Performance metrics: keeping the focus on runtime”; IE E E Parallel &

D istributed Technology: System s & Applications, 4(1), 43-56.SHIVA, S. G. (2005): Advanced Computer Architectures, CRC Press.SPEC (Standard Performance Evaluation Corporation), http://www.spec.org/.Top500 Supercomputer Sites, http://www.top500.org/.

Page 334: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

PROBLEMAS6.1. Se desea evaluar d rendim iento d e tres configuraciones diferentes d e u n a com putadora: C1, C2

yC 3. P ara ello se utiliza u n co n o d d o benchm ark com puesto p o r tres aplicadones: PA, PB y PC. Los tiem pos d e ejecudón q u e se m iden p a ra estas tres aplicaciones son, en segundos:

C1 C2 C3

PA 122 89 104

PB 50 140 99

PC 113 105 110

a) C om parar el rendim iento d e las tres configuraciones estudiadas con frases d d tipo “La con- figuradón X es N veces m ás rápida que la configuración Y” . H acer esta com paración con el tiempo de ejecución to ta l y con la m edia aritm ética d e los tiempos. Establecer conclusiones acerca d e estas com paraciones y d e d d ir cuál es la m ejor configuración.

b) Tenemos a nuestra disposición los tiem pos q u e este benchm ark ta rd a en ejecutarse en una m áquina d e referencia d e la o rganizadón propietaria del benchm ark, q u e son 90, 45 y 102 segundos para las tres aplicaciones. Si querem os utilizar esta referenda para com parar los resultados d e nuestra m áquina con los d e o tros usuarios, ¿cuál es la m anera co rrecta de hacerlo? Si lo hacem os así, ¿cuál es la m ejor configuración?

c) U n mes después de ob tener los resultados d e nuestra evaluadón d e rendim iento, vemos que la m áquina d e referencia h a cam biado, siendo aho ra los tiem pos d e referencia 80, 34 y 93 segundos. ¿C am biará en algo la decisión que tom am os acerca d e la m ejor configuración si utilizam os estos nuevos tiempos?

d) Si nos dam os cuen ta d e q u e el 90% del tiem po estam os utilizando aplicaciones del tipo de PA, el 8% del tiem po del tipo d e PB y el 2% restante d d tipo de PC, ¿cuál sería la mejor configuración?

6.2. Se diseña un procesador nanoM IPS en el q u e las instrucdones en teras se ejecutan en 1 ciclo de reloj y las d e com a flotante necesitan en m edia, 8 ciclos. L os program as q u e se van a ejecutar en este procesador invierten un 30% del tiem po en ejecutar operadones en com a flotante. D esde el punto d e vista coste-prestaciones ¿sería rentable rediseñar d procesador p a ra que las operacio­nes de com a flotante fueran 5 veces m ás rápidas a costa d e aum entar d coste to ta l de l procesador en un 50%?

6.3. Se está valorando la posibilidad d e incluir u n a extensión m ultim edia en un repertorio d e instruc­dones. E sta extensión consigue q u e las operadones re ladonadas co n m ultim edia se ejecuten 16 veces m ás rápido.

a) D ibujar un gráfico donde se muestre la evoludón del speedup obtenido con la m ejora con d porcentaje d e tiempo q u e puede em plearse la extensión m ultim edia.

b) ¿Qué porcentaje d e tiem po se debería utilizar la extensión d d repertorio p ara conseguir una m ejora global d e 2?

c) ¿Y para conseguir la m itad del speedup máximo?

6.4. Se valora in troducir en el diseño d e un procesador tres m ejoras con gan an d as G 1=3, G 2= 10 y G3=25, q u e no pueden utilizarse sim ultáneam ente. Si las m ejoras 1 y 2 se pueden utilizar cada

Page 335: Diseño y Evaluación de Arquitecturas de Computadoras

6. EVALUACIÓN DE PRESTACIONES

una el 25% del tiem po, ¿qué fracción del tiempo se debe u tilizar la m ejora 3 p a ra que el speedup total sea d e 8?

6.5. U na em presa adquiere un servidor valorado en 2000 euros en el que se ejecuta u n a aplicación A l el 40% del tiempo y u n a aplicación A2 el resto del tiem po. La prim era aplicación consum e un 10% d e su tiem po en operaciones d e E/S, un 20% en operaciones en com a flotante y el resto en operaciones enteras. L a segunda aplicación realiza operaciones d e E/S d 60% d d tiem po, y d resto lo dedica a operaciones con enteros. Se decide m ejorar el sistema d e E/S a i u n 180% y m ejorar el coprocesador para operaciones en com a flotante d e m anera que duplique su veloci­dad. ¿Cuál sería la m áxim a inversión que com pensaría realizar para hacer estas m ejoras desde el punto d e vista coste-prestadones?

6 .6. La universidad acaba d e adquirir u n a arquitectura d e m em oria com partida para ejecutar una aplicación de am u lad ó n el 70% del tio n p o y o tra d e cálculo científico el resto del tiempo. La aplicación d e sim uladón dedica d 35% del tio n p o a realizar operaciones en com a flo tante y el 10% del tio n p o a realizar accesos a disco. L a d e cálculo dentífico realiza accesos a disco el 25% del tiempo que se está ejecutando. Todas las instrucciones tio ien un CPI=1 y p ara ejecutar una operación a i com a flotante el procesador necesita e jecutar en m edia 150 instrucciones enteras, ya q u e no incorpora unidades en com a flotante. Se propone adqu irir u n coprocesador p a ra las operaciones d e com a flotante que sólo necesite una in strucdón para realizar u n a operación en com a flotante y q u e tenga p a ra estas instrucciones un C PI=10. L a o tra opción sería adqu irir un nuevo disco duro con el doble d e veloddad . ¿Cuál d e las d o s o p d o n es se debería escoger?

6.7. En una arquitectura de m em oria d istribuida d e 64 procesadores se ejecuta u n a aplicación con un 60% d e fracción serie. Calcular:

a) El speedup m áxim o que puede conseguirse al paralelizar es ta ap licadón respecto d e su ver­dón secuencial.

b) L a eficiencia m áxim a que puede conseguirse en esta parald ización.

6.8. Se ejecuta u n a aplicación de cálculo dentífico en una arquitectura de m o n o n a com partida en la que el 17% d d tiem po se invierte en realizar operaciones d e E/S que no son paraldizables.

a) ¿Qué speedup máximo puede obtenerse si se paraleliza es ta aplicadón sobre 32 nodos?b) La aplicación in ida l resudve una serie d e ecuaciones diferenciales sobre u n a m alla espacial

de 100 cortes p o r dim ensión. Si se am plía el sistema a 64 nodos, d número d e cortes puede incranen tarse hasta 1000 p o r dim ensión. ¿Cuál es a i este caso la ganancia m áxim a q u e se puede conseguir co n la parald ización?

Page 336: Diseño y Evaluación de Arquitecturas de Computadoras

DISEÑO Y EVALUACIÓN DE ARQ UITECTURAS DE CO M PUTADO RAS

AUTOEVALUACIÓN _________________________________________1. ¿Qué características son deseables en una métrica de rendimiento?

2. ¿Qué significa que una métrica sea lineal?

3. ¿Es la frecuencia de reloj una buena métrica de rendimiento? ¿Por qué?

4. ¿Qué enuncia la ley de Amdhal y cuáles son las implicaciones de esta ley?

5. ¿Qué diferencias hay entre la ley de Amdhal y la de Gustafson?

6. ¿Qué ventajas e inconvenientes tiene utilizar directamente la información de rendimiento proporcionada por el sistema operativo para realizar una evaluación de rendimiento?

7. ¿Qué es un m onitor software y qué alternativas existen para su programación?

8. ¿Qué diferencias hay entre un kernel y un benchmark de juguete? ¿Cuáles son sus ventajas e inconvenientes?

9. ¿Qué diferencias hay entre el speedup relativo, el real y el absoluto?

10. ¿Cómo se d e fin e la eficiencia d e una a rquitectura paralela?

Page 337: Diseño y Evaluación de Arquitecturas de Computadoras

índice analítico

3Dnow!, 15Acceso a memoria, 79, 80Acceso Directo a Memoria (DMA), 126Adelantamiento o cortocircuito, 43,44,45AGP, 117,119Algoritmo

de encaminamiento, 252 de ordenación quicksort, 311 de equilibrio de carga, 286 de Tomasulo, 146, 148, 172

Aliasing, 151 Alineación

de accesos a memoria, 8 de los registros del procesador, 8

Almacenamiento de operandos, 3 ,4 interno tipo acumulador, 3 interno tipo GPR, 3 interno tipo pila, 3 local, 212

ALUOp, 28ALUSrcA multiciclo, 28ALUSrcB multiciclo, 28Análisis de programas (profiling), 310Ancho

de banda, 81,111,207,212,243, 300 de datos, 111,212

Aprovechamiento de los recursos, 284 Arbitraje del bus, 114 Arquitecturas

débilmente acopladas, 239 de memoria compartida, 237,254

de memoria compartida-distribuida, 238,274 de memoria distribuida, 239,283 fuertemente acopladas, 237

Atomicidad, 270

Back-End, 139Benchmark

de juguete, 311 sintético, 310 tipo Kemel, 311

Benchmarks, 307 Dhrystone, 311 Livermore loops, 311 ÑAS Kemels, 311 Whetstone, 311

Big Endian, 7Bits de veneno (poison bits), 181Branch folding, 160BTB (Branch Target Buffer), 154Bucle de espera, 120Buffer

de escritura, 92, 194 de prebúsqueda, 200 de predicción de saltos, 151 de predicción destino de salto, 151, 154 de Reordenamiento (ROB), 174

Burst Extended Data Out (BEDO DRAM), 102 Bus

compartido, 237 de memoria, 117 del sistema, 117

Buses, 110, 246

Page 338: Diseño y Evaluación de Arquitecturas de Computadoras

ÍNDICE A N A LÍT IC O

asincronos, 113 d e c ic lo partido, 114 d e E /S , 112d e expansión, 117sem isíncronos, 114 síncronos, 113

C achéd e trazas, 205 d e víctim as, 194, 195 no bloqueante, 81 , 196 predictiva, 197, 198 pseudoasociativa, 197, 199 segm entada, 204

C achés m ultinivel, 83 , 192 C anales d e m em oria principal independientes, 210 C A S (C olum n A ddress S trobe), 101 CDB (C om m on Data B us), 146, 174 C erro jo , 273 C hipset

norte, 117 sur, 118

C ISC (C om plex Instruction Set C om puter), 2 , 299 C loud, 2 8 3 ,2 8 7 C luster, 283

B eow ulf, 284 D edicado, 283 N o D edicado, 283

C M T (C oarse M ultiThreading), 181, 183 C odificación

d e longitud fija, 12 d e longitud variable, 12 h íbrida, 12

C ódigo d e H am m ing, 219 C ódigos d e identificación, 115 C oherencia, 7 8 ,2 3 7 ,2 5 7 ,2 7 5 C olisiones, 246 C om m it, 173C om paración d e rendim iento , 300 C om pare& Sw ap, 272 C om unicación

explícita, 240 im plícita, 237

C onexión punto a pun to , 21 5 , 245 C onjunto d e aplicaciones benchm ark , 311 C onm utación, 249

d e c ircuitos, 249 d e paquetes, 250 verm iform e, 251 virtual cut-through, 250

C onsignas, 145C onsistencia, 2 3 7 ,2 5 5 ,2 6 9 ,2 7 5 ,2 9 8 C onsum o d e potencia, 300, 313 C ontador

d e program a, 20d e program a d e excepción o E PC , 34

C ontro l d e escritu ras, 147 Control

de flu jo , 253 de flu jo asincrono, 253 de flujo basado en créditos, 253 de flu jo d e conm utación, 253 de flu jo físico, 253 de flu jo STO P& G O , 253

C ontroladord e DM A (D M A C ), 126 d e interrupciones o P IC , 123 d e m em oria, 101, 117

C PI, 299C recim iento progresivo, 284 C uenta d e eventos, 308

DD R, 103DDR2 y D D R 3, 103 Decode (D ), 15 D ecodificación, 139

m ultinivel, 23 Descubrim iento d e servicios, 287 D esenrollado d e bucles, 168 Detección d e even tos, 308 Dirección

física, 79, 86 , 87 virtual, 79

Direccionam ientoindirecto co n registro, 12 relativo a l PC , 12

D irecciones d e m em oria, 7 D irectorio , 275

lim itado, 282 Disponibilidad, 1 1 2 ,2 1 8 , 284, 313 DMA

Físico, 127 m odo ráfaga, 127 m odo robo d e ciclo, 127 Virtual, 127

DRAMconvencional, 100, 101 síncrona, 103

DSP, 242Dual C hannel, 210

E/Saislada, 111m apeada en m em oria, 111

Ecuación d e prestaciones, 18 Eficiencia, 313, 314Ejecución d e instrucciones fuera d e orden , 139 Em isión

Page 339: Diseño y Evaluación de Arquitecturas de Computadoras

ÍNDICE A N A LÍT IC O

d e instrucciones, 139 m últiple d e instrucciones, 167

E m plazam iento asociativo, 85asociativo p o r conjuntos, 85 d irecto , 85

Encam inam iento, 252 Enm ascaram iento selectivo, 123 Equilibrio d e carga, 286 E scalabilidad, 2 8 4 ,3 1 5 E scena 3D , 224 Escritura D irecta, 88 Especulación, 173 Espera d e respuesta, 120 E stabilidad, 313 Estaciones d e reserva, 145, 147 Estado

d e las instrucciones, 142 d e las unidades funcionales, 142 de l banco d e registros, 142

Estrategia d e escalado , 316 E tiquetas o tags, 82Evaluación

d e prestaciones d e un procesador, 18 d e rendim iento, 298

Eventos g lobales, 2 5 7 ,2 7 7 Excepciones

im precisas, 63 precisas, 64

Exclusión m utua, 273 Execution (X ), 15E xtended D ata O ut D RA M o EDO D R A M , 102 Extensiones m ultim edia, 14

Facilidad d e m edida, 298 Fallo d e página, 105 Fallos

d e capacidad, 79 iniciales, 79 p o r conflicto, 79 prioritarios, 193

Fetch (F), 15 Fetch& O p, 272 Fiabilidad, 1 1 2 ,2 9 8 ,3 1 3 Flexibilidad, 2 8 4 ,3 1 3 F lit (F low contro l unit), 245 FPM D RA M (Fast Page M ode D R A M ), 101 Fracción serie, 305 Fragm entación, 105

ex tem a, 105 interna, 105

Frecuenciad e funcionam iento, 111 d e operación de l bus, 212

d e re lo j, 299 Front-End, 139 Funct, 20

G anancia o Speedup, 19, 302 G eom etría , 224G estión de l sistem a d e E /S , 110, 120 G lobus, 287G P U o G raphic Processing U nit, 223 G rid, 28 6 , 287

H ipeipaginación (trashing), 105 H ipersegm entación, 299 Hipertransporte, 215, 216

1,18IC H , 118 IDE/ATA, 118 Identificación

hardware p o r vectores, 122 softw are p o r encuesta (polling), 122

Inclusión, 77Inform ación m antenida p o r e l sistem a operativo, 308 Instrucciones

d e ch e ck , 181 d e test, 181

Interfaz, 110, 244 Interrupciones, 120

m ultinivel, 123 Itanium (arquitecturas E PIC ), 167

Jerarquíade buses, 117 d e m em oria, 76

Latencia, 81 , 1 1 2 ,2 4 3 ,3 0 0 Lectura d e operandos (L O ), 139 Ley de

A m dhal, 303 G ustafson, 306

Linealidad, 298 L íneas d e identificación, 115 Little E ndian, 7Load L inked& Store C onditional, 273 Localidad

espacial, 78 , 199 tem poral, 78 , 194

Lock, 2 1 2 ,2 7 3

M arcos, 82 M C H , 118 M em oria

caché, 76 , 82 , 192caché co n asignación e n escritu ra, 95

Page 340: Diseño y Evaluación de Arquitecturas de Computadoras

ÍNDICE A N A LÍT IC O

caché direccionadas co n las d irecciones virtuales, 200

caché físicam ente accedida, p e ro virtual m ente indexada, 202

caché s in asignación e n escritu ra, 95 centralizada, 237 principal, 76 , 100, 206 principal co n palabra ensanchada, 207 principal entrelazada, 207 principal segm entada, 211 sim étrica, 237 virtual, 76 , 104 virtual paginada, 105 virtual paginada/segm entada, 105

M em ory Access (M ), 15 M ensaje, 243 M E SI, 263M étodo d e la Pizarra, 141, 148 M étricas d e rendim iento , 298M FLO PS (m illones d e instrucciones e n co m a flotante por

segundo), 299M icrobenchm ark, 311M icroinstrucción, 30 , 31M icroprogram a, 30M iddle-Endian, 7M iddlew are, 2 3 9 ,2 8 7 ,2 8 9M IM D (M últip le Instruction M últiple D ata), 236MIPS

(m illones d e instrucciones p o r segundo), 299 M IPS64, 16M ISD (M últiple Instruction S ingle data), 236M M X , 15M odelo

d e consistencia, 2 5 6 ,2 6 9 d e consistencia d e o rdenación débil, 271 d e consistencia secuencial, 269 relajado d e consistencia, 270

M odod e direccionam iento d e registro, 10 d e direccionam iento d irecto o abso lu to , 10 d e direccionam iento indirecto co n desplazam iento , 11 d e direccionam iento inm ediato, 9

M odos d e direccionam iento , 7 M onitores

hardw are, 309 softw are, 308

M PI (M essage Passing Interface), 285 M PoC , M ultiP rocessor o n C h ip , 240 M SI, 259 M TTDL, 300 M TTF, 300 M uestreo, 309 M ulticom putador, 24 0 , 313 M ultifim cional, 58 , 59

M ultiprocesador, 23 7 , 313 M ultithreading, 181

N.° d e transferencias/ciclo, 111 N anoM ips, 1 5 ,2 0

c o n especulación, 175 m onociclo, 2 1 ,2 2 ,2 3 , 24 m ulticiclo, 2 6 ,2 8 ,2 9 , 30 , 35 m ultifim cional, 59 , 62 segm entado, 37 , 38 superescalar estático , 171

N etw ork O n C hip, N oC , 242 N o lineal, 59 N odo

local, 276 propietario, 276 rem oto, 277

N O W (N etw ork O f W orkstations), 283 N PU o N etw ork Processing U nit, 223 N U M A (N on U niform M em ory A ccess), 238

OD R (Octal Data R ate), 104 O pcode, 20 O peración d e E /S , 110 O rganizaciones virtuales (V O ), 286

Página, 104Palabra c rítica p rim ero, 97 Paralelism o

a nivel d e instrucción (IL P), 36 , 139, 181 a nivel d e p roceso , 36 d e datos, 236funcional: SISD (Single Instruction Single D ata), 236

Paridad, 219 PCI E xpress, 119,215 PCSrc m ulticiclo , 28 PC W rite m ulticiclo , 28 PC W riteC ond m ulticiclo , 28 Peer2Peer, 283 Penalización

p o r fallo , 192 p o r fallo en M C , 81

Petición d e interrupción (IR Q ), 121 Phit (PH ysical unIT), 245 Pila d e d irección d e re tom o, 160 Planificación

d e instrucciones d e acceso a m em oria, 139 d inám ica d e instrucciones, 138 d inám ica d e instrucciones cen tralizada, 139, 141 d inám ica d e instrucciones d istribuida, 139, 145 d inám ica d istribuida, 173

Políticad e em plazam iento, 85 d e escritura, 88

Page 341: Diseño y Evaluación de Arquitecturas de Computadoras

ÍNDICE A N A LÍT IC O

Post-Escritura, 88 Prebúsqueda, 199Predecodificación d e instrucciones, 139 Predicción

d e salto no tom ado, 49 d e salto tom ado, 50 d inám ica d e saltos, 150

Predictord e confianza d e saltos, 161 d e saltos adaptativo, 166 d e saltos corre lado , 162

Prioridad a los fallos, 193 Procesador

m onociclo , 1 9 ,2 0 m ulticiclo , 1 9 ,25 vectorial, 1 6 9 ,2 4 2

Procesam ientode Texturas y Fragm entos, 225 d e Vértices, 225

Productividad de l sistem a, 300 Protocolos

d e arbitraje, 114d e coherencia basados e n d irectorio , 275 d e coherencia d e actualización, 258 d e coherencia d e invalidación, 258 d e sincronización, 113

Puntos d e con tro l, 22 PW H it, 258 PW M iss, 258

R A ID , 217R ápida respuesta a los avances tecnológicos, 284RAS (R aw A ddress Strobe), 101R asterización, 224RAW o R ead A fter W rite, 41R D R A M , 104R earranque rápido, 97Recuperación

o f f line, 220 o n line, 220

Redd e área Extensa (W AN), 242 d e á rea local (LA N ), 242 d e á rea sistem a (SA N ), 242

Redesconm utadas o indirectas, 247 crossbar, 247 d e barras cruzadas, 247 d e C lo s , 248 d e M ariposa, 248 d e m edio com partido , 246 dinám icas, 246 d irectas, 245 estáticas, 245

jerárqu icas, 247 M onoetapa, 247 m ultibus, 247 m ultietapa bloqueante, 248 M ultietapa, 248 m ultietapa no bloqueante, 248 O m ega, 248

Redundancia, 218Redundant Array o f Inexpensive D isks, 217 Reem plazam iento

aleatorio , 88 FIFO , 88 LRU, 88

Registrod e futuro, 65 d e historia, 65de historia global d e saltos (GBH o G lobal Branch

History), 162 d e m áscara, 123

Registrosd e propósito general (G PR o G eneral Purpose Regis-

ters), 3 d e segm entación, 37 interm edios, 26

Relación coste/prestaciones, 284 Relleno d e ranura, 52 Renderizado, 224 R eordenación de l código, 47 R epertorio d e instrucciones, 2 R epetibilidad, 298 Resolución, 300 Riesgos

d e control, 4 1 ,4 8 d e datos, 4 1 ,4 3 estructurales, 4 0 ,4 3

RISC (R educed Instruction S et C om puter), 2 Robustez, 313Ruta d e datos, 2 0 ,2 5 , 3 7 ,4 8 Rutina

de Tratam iento d e E xcepción o R T E, 34 de T ratam iento d e Interrupción (R TI), 121

Salto retardado, 52Scoreboard, 141Segm entación, 36Segm ento, 104Sensibilidad, 313Señalización d iferencial, 213SIM D (Single Instruction M últip le Data), 1 6 9 ,2 3 6Sincronización, 237, 2 5 6 ,2 7 5Sistem a d e E /S , 108SM P (Sym m etric M ultiProcessing), 181 ,237 SM T, 183SoC , System o n C h ip , 240

Page 342: Diseño y Evaluación de Arquitecturas de Computadoras

ÍNDICE A N A LÍT IC O

Speedup, 300 abso lu to , 313 norm alizado, 313 real, 313 relativo , 313

SSE, 15Standard Perform ance Evaluation C orporation (SPEC ),

311Stripping, 218 Subinstrucciones, 167 Superescalar estático , 169 Sw ap, 272

T abla d e historia d e saltos, 151 Tam año

d e la caché, 83 d e la d iagonal, 300 d e m arco, 83

T asa d e fallos, 81, 192 T axonom ía d e Flynn, 236 T erm inación, 173 T est& Set, 272 Testigo (token), 247 T exturas, 224 T hree C h annel, 210 T iem po

d e acierto d e M C , 81 de C P U , 300 d e ejecución, 18, 300 d e respuesta, 18, 300 m edio d e acceso a m em oria, 81, 192, 300 m ed io hasta fallo d e un d isco (M ean T im e T o Failure o

M TTF), 221m edio hasta pérd ida d e datos (M ean T im e T o D ata Loss

o M T T D L ), 221Tipos

d e excepciones, 34d e fallos en la m em oria caché, 79

TLB , 200, 203, 204(Translation Lookahead B uffer), 106

Tolerancia a fallos, 1 1 2 ,2 1 8 , 313 Torres d e Hanoi, 311 Traducción

d e d irecciones asociativa, 106 d e d irecciones d irecta , 106 d e d irecciones m ix ta , 106

Transform ada d e Fourier rápida, 311 Tratam iento d e excepciones, 33, 63, 181 Traza, 308

UM A (Uniform M em ory A ccess), 237 Unidad

d e control, 2 3 ,2 9 , 38 d e control cableada, 29 d e control com o m áquina d e estados, 29 d e control global, 2 3 ,2 8 d e control m icroprogram ada, 29

U nidades funcionales segm entadas, 60 U SB, 119

Vectord e com partidos, 276 d e com partidos p o r g rupos, 282

Ventana d e instrucciones, 139, 141 Very L ong Instruction W ord (VLIW , Palabra d e Instrucción

M uy Larga), 167

W AR o W rite A fter R ead, 4 1 , 139 WAW o W rite A fte r W rite, 4 1 ,1 3 9 W eb Services, 287 W rite-m erging, 194 W riteback (W ), 15

X D R D R A M (eX trem e Data R ate DRA M ), 104

Z-B uffer, 225

Page 344: Diseño y Evaluación de Arquitecturas de Computadoras

Este libro de texto se centra en el diseño y evaluación de arqui­tecturas de com putadoras que incorporen las técnicas de au­m ento de prestaciones actuales en el diseño del procesador o procesadores, la jerarquía de m em oria y el sistema de E/S.

Se trata de un m anual que no ha sido concebido como libro de consulta o de referencia, sino com o una herram ien­ta m uy potente para el estudio autónom o y/o dirigido de los alumnos de las titulaciones relacionadas con la informática, las tecnologías de la información y las comunicaciones.

Adaptado a los nuevos planes de estudios universitarios, es accesible, am eno y está escrito con un enfoque com pletam en­te pedagógico (basado en la utilización de figuras ilustrativas, ejemplos resueltos, casos prácticos, pruebas de autoevaluación, resúmenes de conceptos im portantes) que surge de la experien­cia de años im partiendo materias en el área de Arquitectura de Com putadores de los dos autores del libro. Además, este libro lleva asociado un sitio web con recursos adicionales para estu­diantes y profesores.

Desde esta perspectiva didáctica, el libro se estructura en seis capítulos cuyo objetivo es el aprendizaje basado en com pe­tencias. Estos capítulos se centran en el estudio del diseño del procesador, la jerarquía de m em oria y el sistema de E/S, el au­m ento de prestaciones del procesador, la mejora de la jerarquía de m em oria y del sistema de E/S, el diseño de sistemas multi- procesador y m ulticom putador y la evaluación del rendim iento de las arquitecturas.