aboutsummaryrefslogtreecommitdiff
path: root/aoc/n1.lyx
blob: 1d59a1f2858cf69d6659a3a2a48ac6ec8b0080f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
#LyX 2.3 created this file. For more info see http://www.lyx.org/
\lyxformat 544
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass book
\use_default_options true
\begin_modules
algorithm2e
\end_modules
\maintain_unincluded_children false
\language spanish
\language_package default
\inputencoding auto
\fontencoding global
\font_roman "default" "default"
\font_sans "default" "default"
\font_typewriter "default" "default"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\use_microtype false
\use_dash_ligatures true
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\use_minted 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\is_math_indent 0
\math_numbering_side default
\quotes_style french
\dynamic_quotes 0
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
Llamamos 
\series bold
arquitectura
\series default
 de un computador a:
\end_layout

\begin_layout Enumerate
La 
\series bold
ISA
\series default
 (
\emph on
\lang english
Instruction Set Architecture
\emph default
\lang spanish
), el conjunto de instrucciones del procesador.
 Normalmente hay una ISA base, como x86, ARM o RISC-V, con extensiones.
\end_layout

\begin_layout Enumerate
La 
\series bold
microarquitectura
\series default
, la implementación de cada instrucción de la ISA.
\end_layout

\begin_layout Enumerate
El diseño del 
\emph on
\lang english
hardware
\emph default
\lang spanish
.
\end_layout

\begin_layout Standard
Llamamos 
\series bold
tamaño característico
\series default
 (
\emph on
\lang english
feature size
\emph default
\lang spanish
) al tamaño mínimo de un transistor en un chip.
 Fue reduciéndose de 
\begin_inset Formula $\unit[10]{\mu m}$
\end_inset

 en 1971 a 
\begin_inset Formula $\unit[10]{nm}$
\end_inset

 en 2019.
 Así, la 
\series bold
ley de Moore
\series default
 afirma que se podrá construir un chip con el doble de transistores cada
 18–24 meses, y la 
\series bold
ley de Dennard
\series default
 (
\emph on
\lang english
Dennard scaling
\emph default
\lang spanish
 o 
\emph on
\lang english
MOSFET scaling
\emph default
\lang spanish
) afirma que a medida que disminuye el tamaño de los transistores, la densidad
 de potencia consumida permanece constante.
\end_layout

\begin_layout Standard
Al disminuir el tamaño característico, la frecuencia de reloj puede aumentar
 de forma más o menos proporcional porque los transistores cambian de estado
 más rápido; la 
\series bold
densidad de integración
\series default
, o densidad de transistores, aumenta cuadráticamente, y en general se podía
 aumentar proporcionalmente el tamaño del chip.
 Estos transistores se usan para aumentar los recursos del chip mediante
 paralelismo y cachés, por lo que los programas limitados por CPU aumentaban
 su velocidad de forma cuadrática sin cambios.
 No obstante, actualmente esto plantea varios problemas.
\end_layout

\begin_layout Section
Potencia consumida
\end_layout

\begin_layout Standard
La energía debe ser traída al chip mediante pines, distribuida entre las
 distintas capas y disipada para evitar el sobrecalentamiento.
 La 
\series bold
potencia de diseño térmico
\series default
 (
\series bold
TDP
\series default
, 
\emph on
\lang english
Thermal Design Power
\emph default
\lang spanish
) es la usada como objetivo para la fuente de alimentación y el sistema
 de refrigeración.
 Se divide en 
\series bold
potencia estática
\series default
, producto del voltaje, la intensidad de potencia de fuga por transistor
 y el número de transistores, y 
\series bold
potencia dinámica
\series default
, proporcional al nivel de uso, el cuadrado del voltaje y la frecuencia
 de reloj.
\end_layout

\begin_layout Standard
Inicialmente la potencia estática era casi despreciable.
 Actualmente, al no poder bajar el voltaje por debajo de unos 
\begin_inset Formula $\unit[0.5]{V}$
\end_inset

, la potencia dinámica sigue aumentando al seguir aumentando la frecuencia
 y la potencia estática aumenta aun más rápido porque se sigue aumentando
 el número de transistores, por lo que la potencia estática está en torno
 al 
\begin_inset Formula $\unit[\text{25--50}]{\%}$
\end_inset

 de la potencia total.
 Además, deja de cumplirse la ley de Dennard y surge el 
\series bold
\emph on
\lang english
dark silicon
\series default
\emph default
\lang spanish
, un límite en el área total de un chip que se puede encender a la vez sin
 superar el 
\end_layout

\begin_layout Standard
La 
\series bold
densidad de potencia
\series default
 es la potencia disipada por unidad de superficie, y ha ido aumentando,
 pero el 
\series bold
rendimiento por vatio
\series default
 también ha aumentado mucho.
 Las soluciones de enfriamiento para alta densidad de potencia son caras
 o poco prácticas, por lo que se busca reducir la potencia con técnicas
 como:
\end_layout

\begin_layout Enumerate
Reducir la frecuencia de reloj dinámicamente.
\end_layout

\begin_layout Enumerate

\series bold
DVFS
\series default
 (
\emph on
\lang english
Dynamic Voltage Frequency Scaling
\emph default
\lang spanish
): Reducir el voltaje o la frecuencia de zonas que no se estén usando.
\end_layout

\begin_layout Enumerate
Apagar selectivamente núcleos del procesador.
\end_layout

\begin_layout Enumerate
Estados de bajo consumo en RAM, discos duros, etc.
\end_layout

\begin_layout Section
Problemas
\end_layout

\begin_layout Standard
Disminuir el CPI requiere aumentar el bus de datos.
 Se suele hacer con segmentación, pero a partir de 10 etapas aparecen muchos
 conflictos, por lo que se replica el cauce usando ejecución superescalar
 (varias instrucciones empezando y terminando a la vez) fuera de orden y
 especulativa.
 Esto requiere mucho 
\emph on
\lang english
hardware
\emph default
\lang spanish
, por lo que consume mucha energía.
\end_layout

\begin_layout Section
Acceso a memoria
\end_layout

\begin_layout Standard
La mejora en los procesadores es más rápida que en la memoria, y el bus
 entre ambas tiene muy alta latencia.
 La ejecución fuera de orden solo puede mitigar este problema parcialmente.
 
\end_layout

\begin_layout Section
Fiabilidad
\end_layout

\begin_layout Standard
Al reducir el tamaño de los componentes, estos son más sensibles a partículas
 cargadas en el ambiente, por lo que los bits pueden cambiar de valor.
 Por ello se crean memorias y cachés con códigos de corrección (
\series bold
ECC
\series default
, 
\emph on
\lang english
Error Correction Codes
\emph default
\lang spanish
).
 También surgen problemas de impedancia y capacitancia que dan lugar a 
\series bold
\emph on
\lang english
dark silicon
\series default
\emph default
\lang spanish
, parte del área del chip que no se puede usar por estos problemas.
 Finalmente, al ser los diseños de procesadores más grandes, es más difícil
 comprobar su corrección, y como los transistores reciben y alteran la señal
 de reloj, al aumentar su número puede haber modificaciones perceptibles
 en dicha señal, lo que llamamos 
\series bold
sesgo de reloj
\series default
 o 
\series bold
\emph on
\lang english
clock skew
\series default
\emph default
\lang spanish
.
\end_layout

\end_body
\end_document