From 4fbbf90a4ac8a32e6701f608da6879cdb1b6964c Mon Sep 17 00:00:00 2001 From: Juan Marín Noguera Date: Fri, 4 Dec 2020 20:50:27 +0100 Subject: Some initial progress --- aoc/n.lyx | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 aoc/n.lyx (limited to 'aoc/n.lyx') diff --git a/aoc/n.lyx b/aoc/n.lyx new file mode 100644 index 0000000..aafa697 --- /dev/null +++ b/aoc/n.lyx @@ -0,0 +1,187 @@ +#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 +\begin_preamble +\input{../defs} +\end_preamble +\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 10 +\spacing single +\use_hyperref false +\papersize a5paper +\use_geometry true +\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 +\leftmargin 0.2cm +\topmargin 0.7cm +\rightmargin 0.2cm +\bottommargin 0.7cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle empty +\listings_params "basicstyle={\ttfamily}" +\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 Title +Arquitectura y Organización de Computadores +\end_layout + +\begin_layout Date +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +def +\backslash +cryear{2020} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "../license.lyx" + +\end_inset + + +\end_layout + +\begin_layout Standard +Bibliografía: +\end_layout + +\begin_layout Itemize +Universidad de Murcia. + Diapositivas de Arquitectura y Organización de Computadores. +\end_layout + +\begin_layout Itemize + +\lang english +Wikipedia, the Free Encyclopedia +\lang spanish + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://en.wikipedia.org/ +\end_layout + +\end_inset + +). + +\emph on +\lang english +Dark Silicon +\emph default +\lang spanish +. + +\end_layout + +\begin_layout Chapter +Introducción +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n1.lyx" + +\end_inset + + +\end_layout + +\end_body +\end_document -- cgit v1.2.3 From 8f0ea7300a3a2777744906578cfe3285ad16046d Mon Sep 17 00:00:00 2001 From: Juan Marín Noguera Date: Sun, 13 Dec 2020 12:04:48 +0100 Subject: AOC tema 2, inicio --- aoc/n.lyx | 14 +++ aoc/n2.lyx | 325 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 339 insertions(+) create mode 100644 aoc/n2.lyx (limited to 'aoc/n.lyx') diff --git a/aoc/n.lyx b/aoc/n.lyx index aafa697..87cd742 100644 --- a/aoc/n.lyx +++ b/aoc/n.lyx @@ -181,6 +181,20 @@ filename "n1.lyx" \end_inset +\end_layout + +\begin_layout Chapter +Arquitecturas superescalares +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n2.lyx" + +\end_inset + + \end_layout \end_body diff --git a/aoc/n2.lyx b/aoc/n2.lyx new file mode 100644 index 0000000..2033406 --- /dev/null +++ b/aoc/n2.lyx @@ -0,0 +1,325 @@ +#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 +Para reducir por debajo de 1 los CPI de un núcleo del procesador, debemos + lanzar y ejecutar varias instrucciones en cada ciclo de reloj, pero esto + implica más presión sobre la memoria y los registros, más posibilidad de + riesgos, más área de silicio y más consumo. + Distinguimos: +\end_layout + +\begin_layout Itemize + +\series bold +Arquitecturas superescalares +\series default +: Lanzan un número variable de instrucciones por ciclo, de 0 a 8, planificadas + de forma +\series bold +estática +\series default + por el compilador y +\series bold +dinámica +\series default + por el +\emph on +\lang english +hardware +\emph default +\lang spanish +. + La ejecución puede ser en orden o fuera de orden, especulativa o no. +\end_layout + +\begin_layout Itemize + +\series bold +VLIW +\series default + ( +\series bold +\emph on +\lang english +Very Long Instruction Word +\series default +\emph default +\lang spanish +): En cada ciclo se carga una +\series bold +macro-instrucción +\series default +, formada por varias instrucciones independientes agrupadas por el compilador. + El +\emph on +\lang english +hardware +\emph default +\lang spanish + es más simple, lo que permite una mayor frecuencia de reloj y un menor + consumo, pero no se beneficia de las técnicas de planificación dinámica + y el código suele ser más grande e incompatible entre distintas versiones + del procesador, por lo que actualmente está casi en desuso. +\end_layout + +\begin_layout Standard +Un núcleo superescalar tiene un sistema de memoria de alto rendimiento y + unidades funcionales redundantes, que administra con técnicas como: +\end_layout + +\begin_layout Itemize +Renombrado de registros para eliminar las dependencias de nombre. +\end_layout + +\begin_layout Itemize + +\series bold +Planificación dinámica +\series default +: Reorganizar la secuencia de instrucciones separando la decodificación + de la comprobación de dependencias y la emisión. +\end_layout + +\begin_layout Itemize +Ejecución fuera de orden para mitigar la degradación de rendimiento por + dependencias de datos. +\end_layout + +\begin_layout Itemize +Ejecución especulativa para mitigar los riesgos de control. +\end_layout + +\begin_layout Standard +\begin_inset Separator plain +\end_inset + + +\end_layout + +\begin_layout Enumerate + +\series bold +Obtención de instrucciones +\series default + ( +\series bold +IF +\series default +): Lee varias instrucciones por ciclo en orden y las añade a una +\series bold +cola de instrucciones +\series default +, que suaviza los fallos de la caché de instrucciones. + También hace +\emph on +\lang english +prefetching +\emph default +\lang spanish + de instrucciones. + La predicción de saltos de puede hacer aquí o en ID, y es estática si siempre + se predice el mismo comportamiento para el mismo salto o dinámica si no. +\end_layout + +\begin_layout Enumerate + +\series bold +Decodificación +\series default + ( +\series bold +ID +\series default +): Decodifica varias instrucciones por ciclo en orden para conocer su tipo, + las añade decodificadas en una +\series bold +ventana de instrucciones +\series default + y renombra los registros para evitar riesgos. + Si se quiere terminación en orden se almacenan las instrucciones en un + +\series bold +ROB +\series default + ( +\emph on +\lang english +Re-Order Buffer +\emph default +\lang spanish +), un +\emph on +\lang english +buffer +\emph default +\lang spanish + circular FIFO que almacena las instrucciones y posteriormente los resultados + hasta que se escriben en orden. +\end_layout + +\begin_layout Enumerate + +\series bold +Emisión +\series default + ( +\series bold +\emph on +\lang english +Issue +\series default +\emph default +\lang spanish +): Se comprueba que los operandos y recursos (unidades funcionales y puestos + de E/S) de cada instrucción estén disponibles y, cuando lo están, se manda + a ejecutar la instrucción. + Puede ser fuera de orden, permitiendo que instrucciones cuyos operandos + y recursos estén disponibles adelanten a otras más antiguas. +\end_layout + +\begin_layout Enumerate + +\series bold +Ejecución +\series default + ( +\series bold +EX +\series default +, +\series bold +X +\series default +): Fuera de orden, con varias unidades funcionales de cada tipo a ser posible + totalmente segmentadas. + Para que la latencia sea lo menor posible, se usa +\series bold +adelantamiento +\series default +, difundiendo el resultado de una operación a las pendientes tan pronto + esta termina, y técnicas como la predicción de valor o la reutilización + de valores. +\end_layout + +\begin_layout Enumerate + +\series bold +Pos-escritura +\series default + ( +\series bold +WB +\series default +): Se difunden los resultados sobre un +\series bold +bus de resultados +\series default +, actualizando el ROB, del que otras instrucciones pueden tomar sus operandos. + Los almacenamientos no hacen nada. +\end_layout + +\begin_layout Enumerate + +\series bold +Confirmación +\series default + ( +\series bold +\emph on +\lang english +Commit +\series default +\emph default +\lang spanish +): Actualiza el estado de la máquina (registros y almacenamientos en memoria) + en orden de programa desde el ROB, comprobando también las excepciones. + La terminación en orden facilita deshacer las instrucciones mal especuladas + y tratar las excepciones.` +\end_layout + +\begin_layout Section +Algoritmo de Tomasulo +\end_layout + +\end_body +\end_document -- cgit v1.2.3