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/n2.lyx | |
| parent | 1eea228b43c3e243c1e1e9baf21d5d0d3f970152 (diff) | |
2
Diffstat (limited to 'etc/n2.lyx')
| -rw-r--r-- | etc/n2.lyx | 1105 |
1 files changed, 1105 insertions, 0 deletions
diff --git a/etc/n2.lyx b/etc/n2.lyx new file mode 100644 index 0000000..097f459 --- /dev/null +++ b/etc/n2.lyx @@ -0,0 +1,1105 @@ +#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 +La +\series bold +CPU +\series default + ( +\emph on +Central Processing Unit +\emph default +) es un bloque lógico complejo que ejecuta instrucciones de un programa + escrito de acuerdo a un juego de instrucciones o +\series bold +ISA +\series default + ( +\emph on +Instruction Set Architecture +\emph default +). +\end_layout + +\begin_layout Section +Componentes combinacionales sencillos +\end_layout + +\begin_layout Paragraph + +\series bold +Decodificador +\end_layout + +\begin_layout Standard +Tiene +\begin_inset Formula $n$ +\end_inset + + líneas de entrada y +\begin_inset Formula $2^{n}$ +\end_inset + + de salida, y para cada valor posible de la entrada, una y sólo una línea + de salida tiene el valor 1. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado14.png + +\end_inset + + +\begin_inset Graphics + filename pegado15.png + +\end_inset + + +\end_layout + +\begin_layout Paragraph + +\series bold +Multiplexor +\end_layout + +\begin_layout Standard +Tiene +\begin_inset Formula $n$ +\end_inset + + líneas de entrada de control y +\begin_inset Formula $2^{n}$ +\end_inset + + de datos, y devuelve en su única línea de salida la línea de datos indicada + por las de control. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado18.png + +\end_inset + + +\begin_inset Graphics + filename pegado19.png + +\end_inset + + +\end_layout + +\begin_layout Paragraph + +\series bold +Desplazador +\end_layout + +\begin_layout Standard +Recibe una palabra de +\begin_inset Formula $n$ +\end_inset + + bits y devuelve otra de +\begin_inset Formula $n$ +\end_inset + + bits resultado de desplazar a la izquierda o a la derecha la palabra de + entrada un cierto número de bits, que suele ser fijo. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado16.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado17.png + +\end_inset + + +\end_layout + +\begin_layout Paragraph + +\series bold +Extensor de signo +\end_layout + +\begin_layout Standard +Recibe un entero de +\begin_inset Formula $m$ +\end_inset + + bits con signo y devuelve el mismo en +\begin_inset Formula $n$ +\end_inset + + bits ( +\begin_inset Formula $n>m$ +\end_inset + +). + En complemento a 2, esto equivale a replicar el bit de signo en los +\begin_inset Formula $n-m$ +\end_inset + + bits más significativos. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado20.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado21.png + +\end_inset + + +\end_layout + +\begin_layout Section +Unidad aritmético-lógica +\end_layout + +\begin_layout Standard +Una +\series bold +ALU +\series default + ( +\emph on +Arithmetic Logic Unit +\emph default +) es un circuito combinacional capaz de realizar operaciones aritméticas + y lógicas sobre operandos de entrada para generar una salida. + La operación a realizar viene dada por unos bits de control. + Como ejemplo mostramos una ALU capaz de realizar las operaciones de conjunción + (AND) y disyunción (OR) bit a bit; suma y resta detectando desbordamientos, + y comparación de dos números (SLT, +\emph on +set less than +\emph default +), comprobando si uno es mayor, menor o igual al otro. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado22.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Un +\series bold +semisumador +\series default + ( +\emph on +half adder +\emph default +) recibe dos entradas y devuelve una salida con la suma, mientras que un + +\series bold +sumador completo +\series default + ( +\emph on +full adder +\emph default +), que es lo que utilizamos, recibe tres entradas, dos con los sumandos + y una de acarreo, y devuelve dos salidas para la suma y el acarreo. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado23.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Para implementar una ALU de 32 bits conectamos 32 ALUs de 1 bit conectando + el acarreo de salida de un sumador con el de entrada del siguiente, obteniendo + un +\series bold +sumador con propagación del acarreo +\series default + ( +\emph on +ripple carry adder +\emph default +). + Esto significa que los bits se calculan uno por uno, lo que es ineficiente, + por lo que en la práctica se usan +\series bold +circuitos con acarreo anticipado +\series default + ( +\emph on +look-ahead carry +\emph default +), que no veremos en este curso. +\end_layout + +\begin_layout Standard +Restar equivale a sumar el minuendo con el opuesto del sustraendo, que se + obtiene a su vez negando cada bit de este y sumando 1 al resultado (o estableci +endo el acarreo de entrada del sumador menos significativo a 1). + Por su parte, podemos implementar la comparación (SLT) restando ambos números + y comprobando el bit de signo del resultado. + Nos queda por tanto lo siguiente: +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado24.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Aquí +\begin_inset Quotes cld +\end_inset + +Menor +\begin_inset Quotes crd +\end_inset + + es cero salvo para el bit menos significativo, que entonces es el resultado + de la suma en el bit más significativo, indicado por +\begin_inset Quotes cld +\end_inset + +Comparación +\begin_inset Quotes crd +\end_inset + +. + Para el desbordamiento, nótese que ocurre si el resultado de la suma es + negativo con ambos operandos positivos o positivo con ambos operandos negativos + (si se trata de una resta, el signo del sustraendo se obtiene una vez éste + ha sido negado), obteniendo el siguiente mapa de Karnaugh: +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="4" columns="6"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell multicolumn="1" alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +A,B +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +00 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +01 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +11 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +10 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multirow="3" alignment="center" valignment="middle" topline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Res. +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +La ALU nos queda de la siguiente forma: +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado25.png + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="1" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename pegado26.png + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="6" columns="4"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Op. +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $R$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $Op_{1}$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $Op_{0}$ +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +AND +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +OR +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +ADD +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +SUB +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" bottomline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +SLT +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Section +Registros +\end_layout + +\begin_layout Standard +Un registro es una concatenación de +\emph on +flip-flops +\emph default + que comparten las señales de reloj y de permiso de escritura. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado27.png + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado28.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Un +\series bold +banco de registros +\series default + es un conjunto de registros que pueden ser leídos y escritos selectivamente + a través de +\series bold +puertos de escritura +\series default + y +\series bold +puertos de lectura +\series default +. + Se usan multiplexores y decodificadores para seleccionar los registros. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado29.png + +\end_inset + + +\end_layout + +\begin_layout Section +Memoria +\end_layout + +\begin_layout Standard +Las memorias +\series bold +SRAM +\series default + ( +\emph on +Static Random Access Memory +\emph default +) son +\emph on +arrays +\emph default + de memoria usadas principalmente en caché por tener un tiempo de acceso + muy corto. + Llamamos +\series bold +altura +\series default + al número de posiciones direccionables y +\series bold +anchura +\series default + al número de bits por unidad de memoria. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado30.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Como direccionar una SRAM con un multiplexor sería demasiado costoso (por + el tamaño), se usan líneas de salida compartidas ( +\series bold +líneas de bits +\series default +) que permiten que varias fuentes compartan una sola línea de datos, utilizando + un +\series bold +\emph on +buffer +\emph default + triestado +\series default +. + Este tiene dos entradas ( +\emph on +data +\emph default + y +\emph on +enable +\emph default +) y una salida ( +\emph on +out +\emph default +), y la salida es igual a +\emph on +data +\emph default + si +\emph on +enable +\emph default + está activa y en otro caso permanece con alta impedancia permitiendo el + uso de la línea de salida a los otros +\emph on +buffers +\emph default +. + Como todavía se requiere un decodificador a la entrada que sería demasiado + grande, las memorias se organizan de forma bidimensional con decodificación + en dos pasos. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename pegado31.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Las memorias +\series bold +DRAM +\series default + ( +\emph on +Dynamic Random Access Memory +\emph default +) almacenan cada bit con un único transistor, con lo que son mucho más baratas + y densas. + Como la información se almacena en un condensador, este se va descargando, + con lo que debe ser refrescada periódicamente, normalmente por un circuito + en el propio chip, que lee su contenido y lo vuelve a escribir. +\end_layout + +\end_body +\end_document |
