Optimización del Rendimiento en Procesadores: Técnicas y Conceptos Clave
Clasificado en Informática
Escrito el en español con un tamaño de 5,11 KB
Optimización del Rendimiento en Procesadores
Métricas de Rendimiento
Rendimiento = Trespuesta-1 | Speedup = Rendimientox / Rendimientoy | tcpu = tusuario + tsistema = I * CPI * Tciclo | % uso CPU = tcpu / trespuesta | CPI = Sum(CPIInst * Freq) = Ciclos / Inst | AmdahlS = 1 / ((1 - F) + F / G), F = Fracción del tiempo de la mejora, G = Ganancia introducida durante ese tiempo | AmdahlSmax = 1 / (1 - F) | Pt = Pe + Pd = Vdd * Idd + 1/2 * Vdd2 * Cl * freq | E = P * t | Si no te habla de SEGUNDOS no puede ser AMDHAL (ByProf). Si te dice elegir mejora, Amhdal. Si no, Speedup norma.
Tiempo de Acceso a Memoria
Tacceso = Tacierto + Tf * P | Tcpu = I * (CiclosCPU + CiclosMem) * Tciclo | CiclosMem = Accesosmem * TF * P
Organización de Caché
- Directa: Etiqueta, línea (nº líneas), palabra (tamaño línea)
- Asociativa: Etiqueta, palabra
- Asociativa por Conjuntos: Etiqueta, conjunto (nº conjuntos), palabras
Políticas de Escritura en Caché
- Write-Through: Tacceso = %Lect * Tacierto + %Esc + Tmem + Tfallo * P
- Write-Back: Tacceso = Tacierto + TasaFallo * P: Penalización = TBloqMP * (1 - Modificados) + 2 * TBloqMP * Modificados
Procesadores Monociclo y Segmentado
Monociclo: Tciclo = Camino Crítico de la instrucción más larga (LDR), CPI = 1
Segmentado: CPI Ideal: 1, CPI Real: 1 + Ciclos perdidos por inst | Tciclo seg = Tciclo no seg / etapas | Freqseg = freqmono * etapas | TiempoNSG = I * Tciclo | TiempoSG = ((N - 1) + I) * Tciclo | Para saltos
CPI Real: 1 + Ciclos perdidos por salto * % saltos
Técnicas de Optimización del Rendimiento
Reducción del CPI y del Ciclo de Reloj
Los procesadores de alto rendimiento utilizan la reducción del CPI y/o del ciclo de reloj. El tamaño de los transistores influye en la velocidad y el consumo de energía. Transistores más pequeños son más rápidos y consumen menos. Mayor densidad de transistores permite procesadores más complejos o la integración de más procesadores en un solo chip. El reto es conseguir un equilibrio entre velocidad, consumo de potencia y coste en chips con miles de millones de transistores.
Segmentación del Procesador
Segmentar el procesador en más etapas permite aumentar la frecuencia (10-20 etapas). El número máximo de etapas está limitado por los riesgos del procesador, que aumentan el CPI debido a bloqueos. La sobrecarga y el coste debido a los registros de segmentación también son factores limitantes.
Micro-operaciones
Cada instrucción ensamblador se descompone en un conjunto de micro-operaciones simples que pueden ejecutarse en un procesador sencillo, favoreciendo el caso más común. Una instrucción única más compleja ocupa menos memoria y ahorra energía. Mantener un equilibrio entre todas estas cuestiones es fundamental para optimizar el rendimiento y el consumo energético.
Predicción Dinámica de Saltos
Predice si el salto se toma o no en función de la historia de la ejecución del programa.
- Branch Target Buffer (BTB): Tabla de las últimas instrucciones de saltos que el procesador ha ejecutado. Incluye la dirección de destino del salto y la historia de si el salto se ha tomado o no. Opera en la etapa Fetch: determina qué instrucción ejecutar sin perder ningún ciclo.
- Predicción de salto tomado: Carga en el PC la dirección de la instrucción almacenada en la entrada correspondiente del BTB. De uno o dos bits.
Procesadores Superescalares
Un procesador superescalar contiene varias copias del camino de datos segmentado para ejecutar múltiples instrucciones simultáneamente. Un procesador superescalar que ejecuta dos instrucciones por ciclo de reloj explota el paralelismo espacial, temporal y de instrucción.
Procesamiento Fuera de Orden
Procesa instrucciones independientes antes que las bloqueadas por dependencias (scoreboard, tabla que guarda las dependencias que se esperan). Renombrado de registros, no visibles al programador (no arquitecturales).