aboutsummaryrefslogtreecommitdiff
path: root/etc/n6.lyx
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2020-02-20 16:07:37 +0100
committerJuan Marín Noguera <juan.marinn@um.es>2020-02-20 16:07:37 +0100
commitc6f69b3f45b81d19b8eeb87184bf16e6de0fad24 (patch)
tree92d4e853e031c3ff144a72a2326312cf58e8dae3 /etc/n6.lyx
parent1eea228b43c3e243c1e1e9baf21d5d0d3f970152 (diff)
2
Diffstat (limited to 'etc/n6.lyx')
-rw-r--r--etc/n6.lyx717
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