diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-20 16:07:37 +0100 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-20 16:07:37 +0100 |
| commit | c6f69b3f45b81d19b8eeb87184bf16e6de0fad24 (patch) | |
| tree | 92d4e853e031c3ff144a72a2326312cf58e8dae3 /etc/n6.lyx | |
| parent | 1eea228b43c3e243c1e1e9baf21d5d0d3f970152 (diff) | |
2
Diffstat (limited to 'etc/n6.lyx')
| -rw-r--r-- | etc/n6.lyx | 717 |
1 files changed, 717 insertions, 0 deletions
diff --git a/etc/n6.lyx b/etc/n6.lyx new file mode 100644 index 0000000..37bb144 --- /dev/null +++ b/etc/n6.lyx @@ -0,0 +1,717 @@ +#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 +\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 swiss +\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 +Según el +\series bold +modelo von Neumann +\series default +, un computador está formado por: procesador, memoria y entrada/salida (E/S). + Podemos clasificar los dispositivos de E/S en dispositivos de +\series bold +almacenamiento +\series default +, +\series bold +interfaz con el usuario +\series default +, +\series bold +visualización y multimedia +\series default +, +\series bold +comunicaciones +\series default + y +\series bold +adquisición de datos +\series default +. + También podemos clasificarlos según su ancho de banda. +\end_layout + +\begin_layout Section +Puertos y buses +\end_layout + +\begin_layout Standard +Los periféricos tienen una serie de +\series bold +puertos +\series default + de E/S, registros externos a la CPU a través de los cuales se comunican + la CPU y los dispositivos, integrados en la +\series bold +controladora +\series default + del dispositivo. + Tipos de puertos: +\end_layout + +\begin_layout Itemize + +\series bold +De datos +\series default +: Lectura o escritura del dato a transferir. +\end_layout + +\begin_layout Itemize + +\series bold +De control +\series default +: Donde la CPU escribe las órdenes. +\end_layout + +\begin_layout Itemize + +\series bold +De estado +\series default +: Indica el estado en que se encuentra el dispositivo (por ejemplo, +\emph on +ready +\emph default +/ +\emph on +not ready +\emph default +). +\end_layout + +\begin_layout Standard +La comunicación se realiza por +\series bold +buses +\series default + o +\series bold +canales compartidos +\series default +, canales de comunicación en los que existen puntos de acceso en los que + un dispositivo puede conectarse para formar parte del bus y comunicarse + con el resto de dispositivos conectados. + El hecho de ser compartido implica que las señales transmitidas por un + dispositivo están disponibles para el resto. +\end_layout + +\begin_layout Standard +Si se conectan muchos dispositivos a un bus, sus prestaciones disminuyen, + al aumentar la latencia por el tiempo de coordinación, y se forma un +\series bold +cuello de botella +\series default + o +\series bold +congestión +\series default + por estar los dispositivos esperando a su turno para usar el bus. + Este problema se soluciona usando varios buses de distintas velocidades + organizados de forma jerárquica, con los dispositivos más exigentes conectados + a los buses más rápidos y cercanos al procesador. +\end_layout + +\begin_layout Standard +El +\series bold +control de acceso al bus +\series default + o +\series bold +arbitraje del bus +\series default + es un mecanismo para resolver conflictos en el uso del bus, como que varios + dispositivos intentasen realizar una operación a través del bus a la vez. + Este mecanismo decide qué dispositivo puede tomar control en cada instante. +\end_layout + +\begin_layout Standard +La forma más simple es establecer un +\series bold +amo +\series default + del bus ( +\emph on +master +\emph default +), normalmente la CPU, que es el único elemento que puede ordenar transferencias +, y el resto de dispositivos deben enviar una señal al amo para realizarlas; + sin embargo esto no suele ser posible. +\end_layout + +\begin_layout Standard +Un bus está formado por: +\end_layout + +\begin_layout Itemize + +\series bold +Líneas de control +\series default +: para gestionar el acceso y uso de las líneas de información. +\end_layout + +\begin_layout Itemize + +\series bold +Líneas de información +\series default +\SpecialChar endofsentence + +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Líneas de datos +\series default +: Para transmitir datos entre dispositivos. + El conjunto de estas es el +\series bold +bus de datos +\series default +, y su cardinal es la +\series bold +anchura del bus de datos +\series default +, factor clave para determinar las prestaciones del sistema. +\end_layout + +\begin_layout Itemize + +\series bold +Líneas de dirección +\series default +: Para determinar la fuente o destino del dato. + El conjunto de estas líneas es el +\series bold +bus de direcciones +\series default +, y su cardinal es la +\series bold +anchura del bus de direcciones +\series default +, que determina el número de direcciones disponibles y por tanto el máximo + de memoria y puertos direccionables. +\end_layout + +\end_deeper +\begin_layout Standard +Las líneas de información pueden ser +\series bold +multiplexadas +\series default +, si se usa el mismo conjunto de líneas para direcciones y datos en instantes + distintos definidos por un protocolo, o +\series bold +dedicadas +\series default +, en las que cada grupo de líneas tiene una función específica. +\end_layout + +\begin_layout Standard +La +\series bold +anchura del bus +\series default + es el total de líneas de información, y distinguimos entre +\series bold +buses en serie +\series default +, con una sola línea de información, y +\series bold +buses en paralelo +\series default +, con varias líneas transmitiendo bits simultáneamente. +\end_layout + +\begin_layout Standard +La +\series bold +longitud del bus +\series default + es su longitud física, desde menos de un metro hasta cientos de metros. + Los eventos en el bus se coordinan con una +\series bold +temporización +\series default +, que puede ser: +\end_layout + +\begin_layout Itemize + +\series bold +Síncrona +\series default +: Una de las líneas de control es de reloj, y en esta se transmite una secuencia + alterna de unos y ceros a intervalos iguales que marcan cuándo suceden + los eventos. + El tiempo entre dos flancos del mismo tipo es el +\series bold +tiempo de ciclo de reloj +\series default + o +\series bold +ciclo de bus +\series default +. +\begin_inset Newline newline +\end_inset + +Estos protocolos permiten un elevado ancho de banda, pero a cambio todos + los dispositivos deben funcionar a la misma frecuencia y puede aparecer + un problema por +\series bold +sesgo de reloj +\series default +, la diferencia de tiempo entre que dos elementos ven un flanco de reloj, + por lo que la señal de reloj debe ser encauzada cuidadosamente para minimizar + el sesgo. + Por ello el bus tiene un tamaño limitado. +\end_layout + +\begin_layout Itemize + +\series bold +Asíncrona +\series default +: No hay señal de reloj, por lo que el bus puede ser todo lo largo que que +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ra +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +mos, y podemos conectar dispositivos con distintas frecuencias de funcionameinto +s. + Sin embargo, son más lentos que los síncronos, necesitan más líneas de + control y puede haber fallos de sincronización. + Se usa un +\series bold +protocolo de presentación +\series default + ( +\emph on +handshaking +\emph default +) con una serie de pasos de modo que emisor y receptor solo proceden al + siguiente paso si están de acuerdo. +\end_layout + +\begin_layout Standard +La +\series bold +frecuencia de funcionamiento +\series default + de un bus síncrono es la de la señal de reloj que rige las transferencias. + El +\series bold +ancho de banda +\series default + ( +\emph on +bandwidth +\emph default +) +\series bold +teórico +\series default + es la cantidad de información que puede ser transmitida por un bus, en + cantidad de información por unidad de tiempo. + Su valor en bytes por segundo es +\begin_inset Formula $\frac{fn}{8}$ +\end_inset + +, donde +\begin_inset Formula $n$ +\end_inset + + es la anchura del bus de datos y +\begin_inset Formula $f$ +\end_inset + + es la frecuencia de funcionamiento en hercios. + Por su parte, el +\series bold +ancho de banda efectivo +\series default + se refiere a la cantidad de información por unidad de tiempo que realmente + se transmite, pues puede ser necesario dedicar varios ciclos para el protocolo + de acceso y el arbitraje del bus. +\end_layout + +\begin_layout Section +Direccionamiento +\end_layout + +\begin_layout Standard +El acceso a los dispositivos se puede hacer de dos formas, que afectan al + bus de direcciones y a la forma de programarlos: +\end_layout + +\begin_layout Itemize + +\series bold +E/S mapeada en memoria +\series default +: Parte del espacio de direcciones de memoria se asocia a los dispositivos + de E/S. +\end_layout + +\begin_layout Itemize + +\series bold +E/S aislada +\series default +: Cada puerto de un dispositivo tiene un +\series bold +número de puerto +\series default +, al que se accede con instrucciones de la ISA específicas, y estos números + forman un espacio de direcciones de E/S dedicado. +\end_layout + +\begin_layout Standard +La E/S aislada no consume parte del espacio de direcciones de memoria, lo + que era útil en los procesadores de 8 y 16 bits como Intel 8086 que tenían + un espacio de direcciones limitado. + Sin embargo, supone mayor complejidad de la CPU por tener que implementar + instrucciones de E/S adicionales, y resulta en un menor repertorio de instrucci +ones para realizar estas operaciones. +\end_layout + +\begin_layout Section +Manejo de la E/S +\end_layout + +\begin_layout Standard +La técnica más simple es el +\series bold +sondeo +\series default + ( +\emph on +polling +\emph default +), +\series bold +encuesta +\series default + o +\series bold +escrutinio +\series default +, en la el procesador +\begin_inset Quotes cld +\end_inset + +sondea +\begin_inset Quotes crd +\end_inset + + los puertos para, una vez detectado un cambio de estado, actuar en consecuencia. + La encuesta puede ser: +\end_layout + +\begin_layout Itemize + +\series bold +Continua +\series default + ( +\series bold +espera activa +\series default +): El procesador se dedica exclusivamente a esto para detectar un cambio + de estado. + Sólo es permisible en dispositivos dedicados (sistemas empotrados). +\end_layout + +\begin_layout Itemize + +\series bold +Periódica +\series default +: Se sondea cada cierta cantidad de tiempo. + Lo habitual es usarla sólo para algunos dispositivos como el ratón. +\end_layout + +\begin_layout Standard +El sondeo es la técnica con menor latencia, pero también supone una gran + pérdida de tiempo de CPU, por lo que en la práctica los dispositivos se + manejan por +\series bold +interrupciones +\series default +: La CPU encarga al dispositivo una transferencia y continúa haciendo otras + cosas, y cuando la tarea termina, el dispositivo avisa a la CPU mediante + una interrupción externa. + Entonces la CPU: +\end_layout + +\begin_layout Itemize +Deja automáticamente lo que esté haciendo. +\end_layout + +\begin_layout Itemize +Identifica qué dispositivo ha enviado la interrupción. + Para ello, bien existe una línea de interrupción dedicada para cada dispositivo +, como ocurre en MIPS, o se activa una línea de interrupción única y el + dispositivo se identifica insertando un +\series bold +número de interrupción +\series default + en el bus de datos de la CPU, como ocurre en IA32. +\end_layout + +\begin_layout Itemize +Salta a la +\series bold +rutina de servicio de la interrupción +\series default + ( +\series bold +RSI +\series default +) o +\series bold +manejador +\series default +\SpecialChar endofsentence + Este puede estar en una dirección de memoria fija, como ocurre en MIPS, + y contener código para comprobar qué interrupción concreta se ha producido, + o puede saltar a una dirección variable indicada en una tabla de direcciones + indexada por el número de interrupción, como ocurre en IA32, lo que se + conoce como +\series bold +interrupciones vectorizadas +\series default +. +\begin_inset Newline newline +\end_inset + +Antes de saltar a esta rutina es necesario guardar, como mínimo, el contador + de programa y posiblemente el registro de estado para las condiciones ( +\emph on +flags +\emph default +). + El resto de registros los puede guardar la propia rutina. +\end_layout + +\begin_layout Itemize +Una vez ejecutada la RSI, recupera el estado y reanuda el proceso interrumpido. +\end_layout + +\begin_layout Standard +Este método, si bien puede mejorar el rendimiento respecto al sondeo, también + puede incluso empeorarlo, por lo que normalmente se usa junto con DMA. +\end_layout + +\begin_layout Standard +El +\series bold +acceso directo a memoria +\series default + o +\series bold +DMA +\series default + ( +\emph on +Direct Memory Access +\emph default +) es un mecanismo que permite la transferencia de datos desde un dispositivo + a memoria, o viceversa, sin intervención del procesador. + Para ello se una una +\series bold +controladora de DMA +\series default + (normalmente varias), circuito especializado en transferir datos entre + dispositivos y memoria. + Esto conlleva que el bus tenga varios amos (CPU y DMA), por lo que es necesario + un sistema de arbitraje. + Para realizar una transferencia DMA: +\end_layout + +\begin_layout Itemize +La CPU inicializa la controladora de DMA con datos como origen y destino + de datos, número de bytes a transferir y sentido del desplazamiento (direccione +s crecientes, decrecientes o fijas para origen y destino). +\end_layout + +\begin_layout Itemize +La controladora de DMA pide el bus, y cuando lo consigue va realizando las + operaciones solicitadas. +\end_layout + +\begin_layout Itemize +Finalmente, la controladora de DMA genera una interrupción indicando fin + de trans +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +fe +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ren +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +cia o error. +\end_layout + +\begin_layout Section +El sistema operativo +\end_layout + +\begin_layout Standard +Cuando arranca el ordenador, se realizan algunas comprobaciones y operaciones + iniciales y a continuación se carga el sistema operativo, que a su vez + carga los +\emph on +drivers +\emph default + de los dispositivos, es decir, las rutinas de petición de E/S y las posibles + RSI asociadas. + Sólo el sistema operativo tiene conocimiento de los puertos, órdenes, etc., + y por seguridad es el único que puede acceder a E/S, mientras que el resto + de programas deben solicitar sus servicios mediante +\series bold +llamadas al sistema +\series default + ( +\emph on +syscalls +\emph default +). +\end_layout + +\end_body +\end_document |
