Вы находитесь на странице: 1из 122
Neasnaats TNVgo eet 4 =. . Representacién de datos i 00 ; ty a . ; | en el interior de una PC Liplicadaa 4. Biblioteca Tecnica Superior ’ M.C.GINZBURG ALGEBRA DE BOOLE APLICADA A CIRCUITOS DE COMPUTACION y REPRESENTACION DE NUMEROS EN EL INTERIOR DE UN COMPUTADOR MARIO CARLOS GINZBURG INGENIERO ELECTRONICO (UBA) DIRECTOR DE LA CATEDRA DE “ESTRUCTURA DEL COMPUTADOR” E INVESTIGADOR EN LA FACULTAD DE INGENIERIA DE LA UNIVERSIDAD DE BUENOS AIRES A. Piyi, Jerénimo y Rafael A mis alumnos INTRODUCCION GENERAL A LA INFORMATICA 4 Algebra de Boole Aplicada a Circuitos de Computacion Y Codificacién de Numeros en el Computador M. C. GINZBURG Es propiedad ~ Queda hecho el depésito que marca la ley Impreso en la Argentina — Printed In Argentina DERECHOS RESERVADOS © 1998 LS.B.N. 950-43-0079-5 ‘EACABADO __Concepeién Arenal #866 001 de Buenos Aires No se permite la reproduccidn total o parcial de esta obra, ni el almacenamiento en un sistema de informatica, ni transmisién en cualquier forma o por cualquier medio electrénico, mecénico, fotocopia, registro, u otros medios, sin el permiso previo y la autorizacién escrita del autor. FORMALIZACION DEL ALGEBRA DE BOOLE A.0 — Introduccién George Boole (1815-1864), fue el creador de un sistema algebraico para el estudio sistemético de la légica, que hoy dia se utiliza en reas ales como las técnicas digitales, la programavidn, ef gebra de conjuntos y la teorfa de las probabilidades.! El Algebra de Boole constituye una formalizacién apropiada para representar informacién digital, y permite expresar algebraicamente las operaciones légicas que realizan los circuitos digitales y determinar su respuesta, asi como simbolizar el conexionado de los dispositivos légicos que los constituyen, independientemente de la tecnologia empleada en su construccién (llaves, relés, diodos, transistores, circuitos integrados, etc). Entre las aplicaciones de este dlgebra, pueden contarse: * Pormulacién algebraica de tos requerimiientos qué debe cumplir un cierto circuito I6gico, estipulados por escrito’ 0 ‘mediante tablas de funcionamiento. ‘Anilisis y sintesis de circuitos digitales combinacionales. Comparacidn 4> distintas realizaciones circuitales. Minimizacion del nimero de cables y compuertas de los circuitos. Codificacién de informacién digital. A.1 El dlgebra de Boole EI algebra de Boole consiste en un conjunto de axiomas (postulados), o sea premisas que se aceptan como base del sistema, y que no se deducen de otras. Dicho sistema de axiomas indica propiedades y relaciones entre ciertos elementos, sin importar qué son realmente los mismos. De esta manera, por medio de los axiomas, se definen implicitamente los términos que deben a su vez ser definidos. Asi, en Geometria, Buclides definis “recta”como una "longitud sin anchura”, pero "Iongitud” y “anchura” a su vez necesitan ser definidos con precisién. Para evitar un proceso sin fin, se definen “punto” y “recta” como elementos que satisfacen una serie de propiedades, explicitadas en axiomas. A partir de éstos, se deducen las restantes propiedades de! sistema “teoremas”" La elecci6n de los axiomas que constituyen un "sistema axiomdtico” es arbitraria dentro de ciertos limites, pero esta sujeta a diversas exigencias. Una de las mas importantes es la "consistencia”: no debe poder deducirse de los axiomas dos teoremas mutuamente contradictorios, Asimismo, es conveniente, por simplicidad, que los axiomas sean independientes: ninguno de ellos debe poder ser deducido de los restantes, para evitar axiomas innecesarios. Cualquier conjunto’ de elementos que verifique los axiomas constituye un "modelo" del sistema, y pata él mismo valdran los teoremas demostrados a partir de los axiomas. Este método es también itil para revelar y anticipar semejanzas estructurales entre sistemas fisicos aparentemente disimiles A.2___Postulados de Huntington Existen varias formas de establecer cules son los axiomas del dlgebra de Boole, resultan distintos los teoremas que resultan cen cada sistema, Una de ellas se debe a Huntington, que en 1904 formalizé los siguientes axiomas: Boole reformuld con una simbologia algebraica la notacién de la Iigicaaristotlica, creando las bases para Ta Kégiea modema. Posteriones esarpllos de esa idea han permitido crear Un poderoso instrumento para el anliss y Ia deducelon, De mado semefante, el sistema arabigo ha permitido agilizar y mecanizar eélevos que en cl sistema romano de numeracinrequerian tiempo y espectalistas 42 Se puede consttuir un dlgebra de Boole con un conjunto de elementos C= (@4b.¢.dy...) entre los cuales es posible definir dos operaciones binarias! , que simbolizaremos &.y0, siy sélo si se verifica: Py: Las operaciones A y 0 son conmutati sea que para elementos cualesquiera ay b de C, debe ser aAb=bAa aQb=bOa Pp: Cada operacién es distributiva respecto ala otra; esto es, para elementos cualesquicra a,b,c de € debe ser a A(bOc)= @A dD @AD) a DAG) = (@ Ob) A (a Ob) Py: Existen en C dos elementos distintos que ofician de elementos “identidad” de las operaciones definidas, que 3 simbolizaremos eq y es tales que: adcgea aQes=a Vale decir que se debe tener C= (ab, Pg: Para cada elemento a de C debe existir otro que of Vale decir que se debe tener C= {@b,6.dynu- 0a, uns E30 @ ae Ca} EI simbolo "=" usado presupone que existen relaciones de equivalencia entre los elementos de dicho conjunto, Puede demostrarse que el elemento a’ asociado con el elemento a es tinico, A.3__Conjuntos que verifican los postulados A317 Conjunto de los enteros divisores de 70 ‘Sea el conjunto de nimeros enteros C= (1, 2, 5,7, 10, 14, 35, 70} a los que se aplica las operaciones binarias. “maximo comtin divisor" (M) y "minimo comin méltiplo” (m) Ast: 2M7 Qm7=14 esto es, el M.C.D entre 2y 7s 1. y el me.mentre 2 y 7 es 14, siendo también los resultados 1 y 14 elementos del conjunto C. Verificacién de Py: SM4 =1 = 4M5 Smid = 70 = 14m5, etc. Verificacién de Pz: por ejemplo, para tres elementos cualesquiera de C, como 2,7 y 10 debe ser 2M(7m10)=2M7)mQM10) — 2m(7M 10)= 2m7)MQm10) Comprobacién: im2 2 2M (7m 10)=2M70=2 QM7) mM 10) (2m7)M(@m10)= 14M 10= 2m(7M 10)=2m1 Verificacién de P3: en el conjunto dado resulta 1M70= 1 Imist 2M70 10M70= 10 10m ‘Asimilando las operaciones My m a las genéricas Ay O de los axiomas de Huntington, resulta que el conjunto dado presenta ete. loselementos 70=e4 y 1= Verificacién de Pg: en el conjunto en cuestién encontramos que 2M3S=1 2m35=70 luego: 35=2 y 3: luego 10=7 y 10 2 TO sea que dos operandos ay b tomados ondenadamente de un cierto Conjunto, dan siempre por resultado un mismo elemento p, también de dicho conjunto: a “operacisa” b = p 43 En consecuencia, el modelo propuesto verifica los cuatro postulados de Huntington, y gozara de las propiedades dadas por los teoremas de la seccién A.4 A.3.2 Algebra de Conjuntos Cuando tos elementos en euesti6n son conjunts, sus operaciones dan lugar a la denominada “algebra de conjuntas” que addemis de vrificar los postulados de Huntington, pucde englobar, a cusiquer otro modelo que stisfaga dics axiomas En el algebra de conjuntos son ils, para verficar las operaciones entre conjuntos, los “diagramas de Venn” Supsngase un censo de todos los jovene de una poblacin acerca dees carreras que. segurin, Este conjumo en andi, se () dénomina“conuato universal” (U), to mismo que cualquier oo conjunto motivo de agin estado concret, Este conjuno suele simbolzarse mediante los puntos interiors de N un rectingulo (figura C3.1) en iyo interior pueden represen- = a tarse a su ver los subconjuntos que comprende (figura C3.2) aeoaeaes eae Los cfreulos A y B_ pueden corresponder respectivamente, al subconjunto de j6venes anotados en las carreras que designaremos con las mismas letras, El subconjunto N constitufde por los puntos exteriores alos dos cfrculos representa a los j6venes que no siguen ninguna de las carreras A o B. Operaciones entre conjuntos: (JG. Figura C33 Figura C3.4 Figura C3.5 Operacién unién: dados dos conjuntos A y B, es posible formar otro subconjunto C que contenga a todos los elementos de Ay a todos los de B. Esta operacin se simboliza Z =A vB ‘Como indica el rayado de fa figura C33, Ios elementos de Z pertenecen al conjunto A, @ al B o a ambos simulténeamente. Siguiendo ccon la aplicacién de la figura C3.2 correspoinde a los jovenes que siguen la carrera A 6 la B, Operacién interseccién: dados dos conjuntos A y B, se puede formar otro conjunto Z.con todos los elementos que pertenecen ala vezaA yaB. La operacién se simboliza: Z= AaB La figura C3.4 muestra en rayado, para el ejemplo anterior, el conjunto de los j6venes que siguen simulténeamente la carrera Ay la carrera B, En particular, si los subconjuntos A y B no tienen ningdn elemento en comin, su intersecci6n da como resultado un Conjunto sin ningtn elemento, esto es, un “conjunto vacio”, que se simboliza , como el resultado de la interseccién de A y B en la figura C3.5. Este subconjunto podria darse si no existen j6venes que sigan ambas catreras simulténeamente. Verificacién de los postulados de Huntington: Pp AVB AAB vA AA De acuerdo con la definicién de cada operaci6n, se verifican las equivalencias escritas, puesto que los conjuntos involucrados ccontienen los mismos elementos. Py) La iqualdad de las dreas sombreadas resultantes verifica una de las propiedades distributivas. De manera andloga puede verificarse Ia otra Av(BAc) (AvB) (Av) uss P3) Dado que $ indica cualquier conjunto sin elementos, su unién con cualquier conjunto da por resultado este mismo conjunto; y la interseccién del conjunto universal con cualquier conjunto es teste iiltimo conjunto (figura C3.7), Por consiguiente, es posible asimilar los conjuntos vacto y universal a os elementos eg y ep del lgebra de Boole. Figura C3.7 Pa) ~ Conforme se verifica en la figura C3.8, para un subconjunto A puede hallarse otro A que constitu ‘su complement, y que contiene aquellos elementos de! conjunto universal que no pertenecen al subeonjunto A: AVA Asimismo: AaK =6 Figura C3.8 De la verificacisn efectuada, resulta que el dlgebra de Boole es un élgebra de Boole. ABS Algebra proposicional En este caso los elementos son las “proposiciones", esto es, emunciados declaratives que afirman niegan algo en forma categérica, y que tienen la propiedad de ser verdaderos 0 falsos. Cualquier proposicién puede simbolizarse mediante una “variable proposicional” (p,q, fy om» %) que s6lo puede tener dos “valores de verdad: verdadero (V) 6 falso (F). Sea el enunciado p : "la tecla de sumar esté apretada" Serd p verdadero (p=V) si se cumple que la tecla esté apretada, 0 seré p {also (p=F), si no se cumple que lateclaesté apretada Teualmente,e] enunciado"llueve", es verdadero si realmente ello ocure. En cambio frases como "eierre la lave", 0 "jqué hora es 2m, earecen de valor informativo; no tienen la posibilidad de ser verdaderas o falsas, por lo que no son proposiciones. Operaciones entre proposiciones: ‘Dos proposiciones cualesquiera p y q pueden combinarse o conectarse de varias maneras para formar nuevas proposiciones. Ast los enunciados: “el seguro esté activado’ q: “el bot6n esté oprimido pueden combinarse mediante Ia conjuncién "y" para formar la proposicién compuesta “el seguro esti activado y el botén est ‘oprimido”, que serd verdadera o falsa seguin lo sean p y 4 "También es posible combinar p y q_ intercalando particulas o palabras tales como "o", "no", "si y solo si", "si. entonees. formando otras tantas proposiciones compuestas, cuyo valor de verdad depende exclusivamente del valor de verdad de las mencionadas p y q. Esto tiltimo no ocurte si se utilizan otras conectivas del tipo “porque”, “a cause de", etc. Desde el punto de vista ldgico s6lo interesan las del primer grupo, llamadas “funciones de verdad’. Se definen a continuacién las tres operaciones bésicas: conjuncidn, disyuncién y negaciGn; las restantes pueden definirse a partir de elas. {én: a combinacién de dos proposiciones p y q por medio de Ia palabra “o” da por resultado otra proposicién denominada isyuncién de py q”, que seré verdadera si p 0 q 0 ambas son verdaderas, y que ser falsa nicamente, cuando p y q sean falsas Esta operacign se simbolizara (p + q) siendo (+) el operador Designando: PHRF “ese hombre es el tfo de Pedro" > FW=V "ese hombre es el padrino de Pedro” S VaF=V a proposicién compuesta "ese hombte es el tio o el padrino de Pedro” puede ser V o F segtin lo sean SVeVeV py. conforme la tabla de la izquierda Conjuncién: la combinacién de dos proposiciones p y q por medio de la palabra "y" da por resultado otra proposicién denominada "conjuneidn de p y 4” que sera cierta si y s6lo py q son ciertas, y falsa en el caso que una 0 ambas sean falsas. La conjuncién se simboliza (p . q) El operador (,) se denomina "y pa FFL FE ‘Asi, el enunciado "ese hombre es el tfo de Pedro y el padrino de Pedro” serd cierto, sélo en el caso que FVEE realmente sea cierto que es el tfoy sea cierto que es el padrino, en correspondencia con la tabla de la vFL EF inquierda, que contempla todas las posibiidades. yyy uss ‘Negacién: dada una proposicién p, mediante el agregado de la palabra “no” se obtiene otra proposicién que es su “negacién", simbolizada p’, tal que cuando p sea cierta, p' sea falsa, y viceversa Designando: P: siel motor funciona seré p 1 motor funciona”; q: “el motor no funciona’ , ala parque p'=F, siendo p=F y p'=V si el motor no funciona. ‘Tautologias y contradicciones: [Existen aserciones compuestas que por su forma son siempre verdaderas, independientemente de la verdad 0 falsedad de las expresiones que la componen, como ser: “la limpara esté encendida 0 no esté encendida” ‘Tales proposiciones denominadas "lautologias” pueden reducirse ala forma p + p" y no proporcionan informacién alguna. Las proposiciones denominadas "contradicciones", reducibles 2 la forma p. p' son formal- mente falsas, y excluyen de antemano toda posibilidad de veracidad. Son del tipo "Ilueve o no Tlueve" Verificacion de los postulados de Huntington ‘Dos proposiciones son I6gicamente equivalentes cuando los mismos hechos que hacen verdadera o falsa a una de ellas, hacen también verdadera 0 falsa, respectivamente, a la otra, lo que se traduce en que ambas presentan la misma tabla de verdad. Conforme con esto, por medio de tablas de ver p+q=a+P pa ep P+@.) = (P+gQiory p.@t = 940-1 (Py) Verificacién de P3 y Pg ‘De acuerdo con las tablas de la disyuncién y conjuncién, resulta: fe] pv F F.V=F osc; p+F=p y p.V=p (Py) v V.V=V, Por lo tanto, la disyunci6n o la conjuncién de una proposicién légica con otra que siempre es, respectivamente, falsa 0 verdadera, no afeeta el valor de verdad de la primera ‘Como una proposicién siempre falsa es una “contradicci6n”, y otra siempre verdadera es una “tautologf + Ta primera puede definirse como el elemento eq ,y la segunda como el elemento e , respectivamente, del élgebra de Boole. ‘Asimismo, conforme con la negacién, disyuncién y conjuncién, pip’ T p+p wi F[V[F+V=V[ F.V ose: p+p'=Voy Pept Pa) viFLv+F=v] V.F En consecuencia, se verifica que para cada proposicién, su negacién en disyuncién o conjuncién, da como resultado una tautologia (elemento e,) 0 una contradiccién (elemento e,), fespectivamente A3.4 Conjunto de contactos tipo "si-no” ‘Un contacto, tal como una llave comin de luz eléctrica, o un timbre, presenta dos estados 0 posiciones claramente defini0. ‘das “cerrado” 0 "abierto” (figura A.9). Las mismas también pueden identficarse con los simbolos 1 y 0, respectivamente. Si bien fstos coinciden con sus similares de los sistemas numéricos, su significado es diferente, dado que implican un significado cualitativo: “todo-nada” © “si-no”, respectivamente. Por la relacién originaria de los sfmbolos 1 y 0 con los valores “verdadero” y “falso” de la l6gica clésica, también se denominan valores légicos 1 y 0. ——-A—— simplemente Ae forma mis abstracta a existencia de un contacto eléctrico puede representarse por una se moda de evgresat tea mayascula entre los puntos que conte: 4— comhz0 [Al esctibic A =0,e!signo “igual” es usado en el sentido de afirmar que euando el con- {acto extéabieno, A "resulta cero o que A. “vale” cero, o también qu A tiene valor ——L— comoast W6gico cero. Figura A u4.6 Operaciéa de combinar dos contactos en paralelo A El estado “conductivo" 0 "no conductivo” que producen entre los puntos SL gp S74 = F774 dea figura A.10, dos comtactos en parlelo, Ay B, se representa por un contacto equivalente Z. = + —+__ Dichos contactos originan cuatro combinaciones de estados “abierto"- e a5 “cerrado”, que se muestran en la figura A.11, junto con el resultado de cada combinacion b 4 = 7 %q_Elestado conductive entre py 4 tendré lugar, cuando al menos uno de los contactos A 6B est cerrado, Resulta asf formalmente enunciada Figura A.10 ‘una proposicién que es la disyuncién de otras dos. Asimismo, los valores, 16gicos relacionados con las combinaciones de contactos en paralelo y sus resultados (figura A.11) se corresponden con los casos de Ia operacién logica A +B que expresa la disyuncisn, (seccién A.3,3). Esta dltima expresi6n representa por lo tanto dos comtactos en paalelo, asf como cualquier enunciado donde aparece la disyuncién "o" Figura A.12 Figura A.11 Operacién de combinar dos contactos en seri "En la figura A.12 aparecen las cuatro combinaciones de estados de dos contactos en serie. y el contacto equivalente que resulta en cada situacién. Para esta disposicién, existré el estado de continuidad entre p y q slo si ambos contactos estin cerrados. Los valores I6gicos ‘que intervienen en las combinaciones dibujadas pueden hacerse corresponder con las cuatro posibilidades de efectuar el producto Tégico de dos valores l6gicos, definidos en la seccién A.3.3 Asf se verifica que el producto l6gico de dos variables, que se expresa 'A.B representa la operacién de dos contactos en sere. Contactos en oposicin o en operacién complementari Es posible construir dos contactos accionados mec&nicamente al unisono, de ‘modo que al mismo tiempo que uno esté abierto, el otro est cerrado, y vice versa ([igura A.13), Mecénicamente, por Ia posici6n de los resortes, el con- tacto superior es del tipo "normalmente abierto” y el inferior es “normalmer te cerrado" Como el contacto Z vale 1 cuando A no vale 1, y Z vale 0 cuando A no vale 0, puede enunciarse que Z es no A, o que es la negacidn de A,,simbolizandose: a De manera recfproca, A es la negacién de Z, 0 sea A= Z —2 Figura A.13 u47 YVerificacién de los postulados del dlgebra de Boole: 1): __Las dos primeras operaciones definidas son conmutativas. A 8 Formalmente deber ser: A+B=B+A y A.B=B.A }.= lo cual implica que se debe verficar las equivalencias entre los °, 0 ) a i ie conexionados dibujados, Es evidente que la continuidad 0 no en- ‘re los puntos p y q en contactos en paralelo no depende de cual —.. B Boe contacto ests atriba 0 abajo: y en contactos en serie no interesa pA ab Ae—"q_clorden de conexionado, o ea cudl contacto esté. primero y cusl segundo En consecuencia se cumplen las expresiones indicadas. 2); Cada una de las operaciones es distributiva respecto de Ia otra Formalmente debe ser: A.(B+C)=AB+A.C y A+(@BO = (A+B).(A+0) por Io que se debe probar las siguientes equivalencias entre contactos combinados: AB ‘Una forma de verificar esto es dibujar to A += {odas las combinaciones posibles de esta ° c an Ao a dos en que pueden estar los contactos: A a uno abierto y dos cerrados, dos abiertos yuno cerrado, ete. Para 3” contactos, Ay ® Bo a" 2b 8 c 4 B,C. habria que dibujar 2 = 8 situacio- nes distintas, y comprobar_en cada caso que entre py q se tenga el mismo estado conductive en ambas disposiciones de contactos que se estin verificando, No es necesario realizar estos 8 dibujos. Puesto que las operaciones suma y producto légico expresan contactos en paralelo y los valores 0 y 1 de las variables a estados abierto o cerrados de los contactos, el resultado 0 6 1 de la expresi6n que simboliza el conexionado de contactos en cuestién permite calcular cusl seré el estado (abierto o cerrado) del contacto equivalente, sin realizar hingsin dibujo, Esto es, mediante tablas de verdad, como se hace en la secci6n A.14 para verificar este postulado para compuertas, puede comprobarse mediante céculos I6gicos las equivalencias dibujadas. Si para cada combinacién de valores de variables A, By C {de 000 a 111) el contacto equivalente entre py qestéen el mismo estado, los conexionados serdin equivalentes. P3) : Verificaremos que Ia suma ldgica es invariante respecto del 0, y el producto l6gico respecto del 1. Osea A+OzA A.L=A Una variable A representa un contacto que puede estar abierto (0) o cerrado (1), Si en una expresidn booleana aparece escrito un 0 (6 un 1) en lugar de una variable, dicho valor constante representard un contacto que por algiin motivo esté siempre abierto (0 siempre cerrado). La figura siguiente pone en evidencia que un contacto A en paralelo con otro siempre abiero (0) no afecta la ‘acciGn del primero, verificdndose que A +0-= A. Lo mismo un contacto en serie con otro siempre cerrado (1) A a 6 q ib Resulta asi que un contacto siempre abierto (0) 6 cerrado (1) puede asimilarse alos elementos e, y €- de los postulados de Huntington. Py) La suma y el producto l6gicos de una variable y su Pp negacién, deben resultar siempre 1 y 0, respectivamente Osea: A+A=1 yA. A=0 Verificacién mediante contactos: conforme ta figura de la derecha De esta forma hemos verificado que un conjunto constitufdo por contactos del tipo "si-no”, mediante los cuales pueden definirse las operaciones de combinarlos en paralelo, en serie y en oposicién, sa- tisface los postulados de Huntington, por lo que podran ser tratados algebraicamente empleando el dlgebra de Boole, asf como también se les podré aplicar las propiedades (leoremas) de este élgebra (ecein A.A) Use ABS Conjunto de cables con dos valores de tension eléctrica Un conjunto de elementos consttufdo por cada uno de 1os cables de un circuito eléctrico que presentan uno de dos valores © nivelesespectficados de tensin eletrica, asimilables al Ty 0 Iogicos) conectados a dispositivos lamados compuertas, que pueden realizar operaciones ldgias con dichos valores de tensin, vrifcan los 4 postlados de Huntington “Tales cables y compuertas consituyen un circuto légico. Conforme se tatard en detalle, las compuertas OR, AND e inversor ealizan operaciones logicas En la seccién A.14 se verifican los 4 postuados, esultando que un cable siempre conectado a masa (0) no afecta el resultado de In operacién que realiza una OR, por lo que puede asimilarse al clemento eA su vez, un cable siempre conectado a la tensién de alimentaci6n (1) no afecta el resultado de una AND, pudiéndose asimilar al elemento "Asimismo, en la salida de una compuerta inversora se puede obtener un cable cuyo estado légico sea complementario del que csté en si entrada, pudigndose verificar Py mediante tablas de verdad. Por lo tanto a este conjunto particular se le podrn aplicar las propiedades del dlgebra de Boole. A.4_ Principales teoremas que se deducen de los postulados Habiendo tratado varios conjuntos de elementos que verfican los 4 postulados de Huntington, se demostrarén los teoremas ms importantes que se deducen de ellos, Estos teoremas o propiedades pueden aplicarse a dichos conjuntos 0 a cualquier otro conjunto con el que se pueda definir un Algebra de Boole. D art 0-0 Gal] Tsasa = ada] =@+a).@+D =1.@+) =a+l porPg por Ps por Py porP, — porPy 1) a asa (ual) azat0 = ata.a =(ata).ata) =(@ta).1 saa porP3 por Pg por Py porPy por P3 Tp Ce] azl.a=(1+b).a =latba =ata.d porPs — porTy por Py por P3y Py Ts) arr) =@rbre 2b 9 =@ be ual) Ts) Grae by = a+b (aval) (a+b) + a.b' = (a+b) +a]. [@+b) +b] =U+b) eae por Pa, por Ty, Pg y Ty i (a+b).(@.b) = a.a'.b + b.al.b = 0.b + a.0=0 por Py por Py. Pq y Ty Los resultados de las sumas y productos efectuados, de acuerdo con Py implican que a. b’ = (a + b) Ts) por Py alt (ay por Py y Py dea Puesto que en ambos casos (a')" y a resultan complementarios con a‘, y dado que puede demostrarse que cada ‘elemento a" asociado con un elemento a es tinico, se demuestra el teorema, ug, ALGEBRA DE BOOLE EN CIRCUITOS DE COMPUTADORES Al.1 Cables con dos niveles de tension En los circuitos digitales o l6gicos, la informacién digital (figura Al.1) es portada y transmitida por fos cables, elementos conductores de la electricidad. Estos en los circuitos digitales binarios pueden presentar sélo dos niveles de tensién perfectamente diferenciados: alto (High = H) 0 bajo (Low = L) Por ejemplo, si los circuitos estén alimentados con una tensién de 5 volts, un cable cualquiera de ellos, en un instante dado puede estar en un nivel L de 0 volts, 0 en un nivel H de 5 volts, sin posibilidad de presentar valores intermedios de tensin (salvo cuando cambia de un nivel a otro) en condiciones normales de funcionamiento. H(5volts) volts= cable 7s bien oun ll ll NU(ovolts) Ort Le 7 + Figura Al.1 ‘A lo largo del tiempo, los niveles de tensién de un cable pueden fluctuar arbitrariamente como ejemplifica la figura ALLL. Asi, en el instante ty estarfa en el nivel bajo, en t2 en el nivel alto. Eléctricamente no es posible que en un cable, en un cierto instante, puedan superponerse el nivel alto con el bajo. Debe consignarse que en lugar de hablarse de dos niveles fijos, por razones de tolerancia en fa generacidn y reconocimiento de Jos nivelesIdgicos, en realidad cuando un cable presenta un nivel alto, puede estar en una tensién cualquiera de la gama de tensiones establecida como nivel alto. Lo mismo respecto del nivel bajo, Conmutaci6n del nivel de un cable mediante una Ilave Una forma de cambiar el estado eléctrico de un cable para que pase de un nivel de tensi6n al otro se ves. Ne indica en la figura Al.2. Suponiendo una baterfa o fuente de 5 volts, si se considera su terminal negativo (-) como tensién de referencia de 0 volts (0 sea masa), el terminal positive (+) estard a 5 c volts respecto del terminal negativo tomado como referencia. Mediante una tlave de dos posiciones como la dibujada seria factible seleccionar que el cable se encuentre a 0 volts (L) 0en 5 volts () lv=0%. <— Figura AL2 A1.2_ Variables logicas o "booleanas” ‘Cuando se tuvo que determinar el efecto de un némero grande de contactos_combinadis de una manera comple, se plantes la necesidad de trtar el problema mediante simbolos y operaciones algebraicas que representen el conexionado. Los contactos presentan dos estados: “cerrado-abierto, “sina” , "I 6:0" , como se los quiera denominar. Las talas que indian l efecto de conectar contactos en paralclo o en serie segtin el estado cerrado 0 abierto de los contactos Componentes. tienen la misma estructura formal que las correspondientes a las operaciones disyuncién y conjuncién de ta l6gica simbélica, que opera con los valores légicos "verdadero-falso” (V 6 F Esta analogia formal permitié aplicar ef simbolismo algebraico usado en el cdleulo l6gico, cuyo pionero fue G. Boole, para resolver el problema de los contactos, como hizo Shannon en la década del 40 en los EEUU. Con el advenimiento de los circuitos digitales electrOnicos, cuyos cables solo presentan un nivel de tensién alto 0 bajo, y con compuertas cuyas tablas de funcionamiento son formalmente semejantes a las tablas de verdad que definen a las operaciones légicas, se siguié empleando la denominada “élgebra de Boole” para obtener expresiones simbélicas (denominadas Idgicas 0 booleanas) que representen el comportamiento de tales circuitos. Por tal motivo se habla de que al nivel de tensién alto de un cable se le asigna el "valor légico 1”, y al nivel bajo el “valor légico 0", para indicar la correspondencia establecida con los valores verdadero y falso de la I6gica: us10 Cable en elnivelL > 0 Cable en el nivel H > 1 Esta convencién para asignar valores I6gicos se denomina "logica positiva", y es la que se usa corrientemente. ‘Aunque los sfmbolos 0 y 1 coinciden con los similares de los sistemas numéricos, su significado aca es diferente, dado que tienen el sentido de ‘falso-verdadero", “no-si" No debe confundirse este significado particular que asumimos para los dos niveles de un cable (que usaremos para expresar algebraicamente el comportamiento légico de un circuito digital binario y para calcular su respuesta) con las aplicaciones del mismo para representar informaciGn binaria, Asi, puede convenirse que los valores légicos uno y cero representen los correspondientes valores numéricos del sistema numérico binario, Por ejemplo, & cables pueden representar dos nmeros de 4 bits cada uno. Si estos 8 bits entran a un citcuito binario, puede hacerse que el comportamiento lgico del circuito sea tal que los valores légicos de cuatro cables de salida sean tales que —interpreiados como valores numéricos~ constituyan los 4 bits del niimero que es el resultado de Ie suma de los dos mimeros citados, como se trata en la seccién A1.17 En forma més abstracta, cada cable de un circuito digital puede identificarse y representarse mediante letras maydisculas, de A a Z, De esta forma los cables dei circuito (figura A1.5) se identifican con las lotras que los representan, y el nivel de tensién en que se encuentran mediante los simbolos y 1. Podemos simbolizar: R=0 sicl cable R esti en el nivel bajo; R=1 siel cable R esti en el nivel alto; ydecir "R vale cero” “R vale uno” respectivamente. Figura ALS Puesto que el valor légico que se le puede asignar a la letra R puede ser 16 0, se dice que R es una "variable logica" cuyo valor puede variar de un valor légico al otto. En gerieraly ‘el términd ‘variable Iégiéa, © "boolean" designa a cualquier simbdlo titeral “1A, C, Dy oy Z empleado para representar elementos 0 magnitudes. fisicas que exhiben dos estados:posibles.claramente definidos, correspondientes a los valores l6gicos yO que ella puede presentar. > ‘As también con F=1 y F=0 se puede indicar un foco encendido y apagado, respectivamente. A1.3 Compuertas logicas 5 volts Anteriormente (seccién A1.1) se vid que se puede conmutar el nivel de tensién de un cable si se ht conmuta el estado de una Ilave. 1. Mediante un dispositivo electronico denominado [> "compuerta légica" se puede conmutar el nivel iL de tensidn del cable conectado a su salida (figura 1.6) cambiando adecuadamente 1a combinacién i de niveles de tensi6n existente en los cables que vol Hegan a las entradas de dicha compuerta. Figura Al.6 Todo sucede como si en lugar de la Nave manual de la figura A1.2 se tuviera una lave electronica ligada al cable de salida, que se conecta a5 6 0 volts segiin el nivel alto 0 bajo de los cables de entrada (figura Al.6) La denominacién "compuerta” se elaciona con el hecho de que este dispositive puede usarse para permitir 0 no que el nivel alto ‘ bajo de un cable que llega a una de sus entradas se repitaen el cable que est en su salida, El nivel existente en una entrada aparece cen el cable de salida, como si la compuerta "dejara pasar” una sefal eléctrica de un cable a otro, como se ejemplifica en la seccién ‘AB Esto en cierta medida es semejante alo que ocurre en un dique, ene] cual una compuerta deja pasar 0 no un curso de agua de wn lado a otro del mismo, El aditamento "gica” se refiere a que una compuerta en esencia realiza electrOnicamente una operaciOn l6gica: para cada combinacién de valores logicos existentes en las entradas, resultaré un valor Iégico (1 6 0) en su salida, Se puede representar el omportamiento 0 respuesta de tina compuerta para todas las combinaciones de valores ldgicos posibles que pueden darse en sus entradas mediante una tabla de funcionamiento 0 una “tabla de verdad” ‘A continuacién definiremos el funcionamiento, el simbolo circuital empleado en los manuales de circuitos integrados y la ‘operacién légica de las compuertas Or, And, e Inversor uti A1.4 Compuerta OR. Una compuerta OR de dos entradas (simbotizada en la figura A1.7) es un dispositivo electr6nico que presenta dos entradas, a las cuales Ilegan los niveles de tensién de dos cables (A y B), y una salida, Esta genera en el cable (Z) un nivel que depende de los niveles existentes en las entradas de la forma indicada en la figura ALS D+ D+ st Figura ALS El comportamiento eléctrico se resume en la tabla de funcionamiento de la figura A1.9, que representa la respuesta en la salida de la compuerta para todas las combinaciones posibles de niveles que pueden darse en las entradas Figura A1.9 ‘También podemos enunciar asi: "Un cable Zen la salida de una compuerta OR estaré en el nivel alto si el cable de entrada A o el cable de entrada B esté en el nivel alto, o si ambos estén en cl nivel alto.” ' Mas brevemente: "Un cable Z en la salida de una compuerta OR de dos entradas estard en el nivel alto si el cable de entrada A_o B esté enel nivel alto” © también: "basta que una de las entradas de una compuerta OR esté en el nivel alto, para que su salida también lo esté", ‘enunciado que pone de relieve que existen varias alternativas para lograr el mismo resultado Cualquier enunciado que sea del tipo de los enunciados anteriores, 0 que pueda llevarse a una forma semejante, responde a una tabla formalmente igual a la tabla de la figura AL. b EJEMPLO ‘Sea el enunciado: “en un seméforo la luz roja (Ry) para una calle "I" se debe encender si en la calle "2" esta encendida Ia luz verde (V) ola luz amarilla (Ag), 0 si ambas estén encendidas en el momento del cambio" ‘Asignando los valores 1 y 0 a los estados encendido y apagado, respectivamente, de cada luz, el estado que debe tener Ry en funcién de los estados de V2 y Az se tabula en la figura AL.10 Wp] Rj] Comparando las tablas de las figuras AL9 y AI10 se deduce que si alas entradas de una compuenta OR (Figura ‘AL-L1) llegan dos cables cuyos niveles Hy L representan los valores ldgicos 1 y O correspondientes a los estados “encendido-apagedo’ de las luces verde y amarilla dela calle "2", la salida de la compuerta generaré un nivel de tensiGn que serd el apropiado para comandar el encendido-apagado de la luz roja de la calle"! 0 0 1 1 Hoo Figura A1.10 —-ho— “Dt pt + Wp) Figura ALI Figura AL.12 ‘Andlogamente, otra compuerta OR se usaré para comandar la uz roja (Rg) de Ia calle "2", siendo sus entradas Vy y Ay de la calle "1" Del mismo modo, una especificacién como el motor se detendré si el operario acerca su mano al sensor de zona peligrosa 0 si ‘prime el botén de parada", puede ser concretada mediante una compuerta OR que controlar al motor. 1 Gnpliitamente resulta que Z estar en el nivel bajo slo si ambos cables de entrada estin en el nivel bajo. u412 ~ “ei To enutictadosanteores se! ha pesto’ de relieve el Hexd 0! (Or en inglés) que eliza IavAleyaneiott de cenunciades y que da nombre a esta compuerta, : ees La estructura Igica comin que presenta el comportamiento operativo de la compuerta OR y la conexién en paralelo de comtactos, se pone de manifiesto en la similitud formal de las tablas ! que se corresponden en cada una de esas eas. 'Alrespecto, en elcrcuito de dos contactos A y B en paralelo (figura A112) el foco F se encenderé si A o B esté cerrado. Operacién suma légica ecnplizando en 1 abla de funcionamiento de la igura A. los simbolos Hy I. por ls valores ldgios 1y 0 resulta la abla de verdad dea figura A.13 correspondiente a una compuerta OR de dos entradas crrccrapuerta OR realiza una operaidn, dado que para cada pa de valores Ligicos A y B que combina, genera en el eable Zun valor lgico resultant Esta operacién la simbolizaremos con el operador binario representado por el signo “més” (+) que indica esta operacién definida por la tabla de verdad de la figura A1.13, la 04121 ual contempla todos los casos posibles 1 Sedenomina "suma légica" u "operacién Or" , siendo que coincide formalmente hasta 3140 > itt=1 = Sop B ORB 0+0=0 1 0 1 cl tercer rengldn de la tabla con la suma aritmética, aunque el significado de los valores légicos 1 y 0 es distinto que el de los valores aritméticos 1 y 0, como se aclaré en AI.3 Figura ALI3 ‘Alla derecha de la figura AI.13 se ha escrito otra manera equivalente de expresar cada renglén de la tabla, mediante imbolismo de una suma de valores légicos. Puesto que los valores Iégicos de cada suma corresponden a las variables A, B y Z, en forma sintética podemos expresar: el Z=A+B_ — (quese lee "Z igual Ao B” Representando cada cable por una variable que puede valer 0 6 1 (seccién A1.2), decimos que la salida de la ‘compuerta OR genera el valor 0 6 1 de la variable Z, que es igual al valor del resultado de Ia suma l6gica A + B de las variables Ay B, cuyas combinaciones de valores opera, como simboliza la figura A.14 La figura A.15 da cuenta de todas las sumas légicas que realiza la compuerta OR. 0 Oriel | 1s0=1 ou 1 0 1 Figura A114 Figura AIS La expresién Z= A +B representa algebraicamente ya sea a todas las tablas dibujadas, a todos tos dibujos de compuertas OR ‘raficados, as como a todos los enunciados antes escritos que contienen Ia conectiva "" ‘Acorde con esto, F-= A +B expresa en la figura Al.12 la relacion logica entre A y B. ‘Ahora podemos expresar algebraicamente la operacién ligica que realiza una compuerta OR de dos entradas y calcular ‘su resultado sin necesidad de dibujar la compuerta o su tabla de verdad. Inversamente, dada dicha expresién algebraica, sabemos que una compuerta OR realiza la suma légica simbolizada. Compuerta OR de mas de dos entradas En una compuerta OR de un ndémero cualquiera n de entradas (figura A.16) a las que Hegan igual numero de cables designados A, B, C, «uN, el cable Z conectado en su salida estard en el nivel alto, siA oBoCo..0N estéen el nivel alto, 0 sea si uno 0 mas de dichos cables esté en el nivel alto. El cable Z estard en el nivel bajo sélo si todos los cables de entrada estin en ese nivel T tae La compuerta OR cumple con la misma tabla formal que las operaciones citadas, slo que calcula la column resultado de dicha tabla en forma automatic, por ser un dispositivoelectisnico U413 Esta compuerta realiza la suma I6gica: Z=A+B+C+..+N den variables. 0404020 0404121 0414021 Oete1=1 Esta figura A.17 indica la tabla de verdad de una compuerta OR de tres entradas designadas A, B Oels0=1 ¥Cisiendo: Z= A+B +C la operacién que realiza 140+ =1 1414021 Allado de la tabla se indica la forma equivalente de expresar en forma algebraica los renglones Latet=1 de lamisma, Figura A.17 A1.5 Compuerta AND Figura A.18 Figura A.19 Una compuerta AND de dos entradas (simbolizada en la figura A.18) es un dispositivo electrénico que presenta dos entradas, a las cuales llegan los niveles de tensidn de dos cables (A y B), y una salida, Esta genera en el cable (Z) un nivel que depende de los niveles existentes en las entradas de {a forma indicada en la figura A.19, Este comportamiento eléctrico se resume en la tabla de funcio- rnamiento de la figura A.20, y puede enunciarse ast Eo po on oe Figura A.20 ‘Un cable Za la salida de una compuerta AND estaré en el nivel ako solo si el cable de entrada A y el cable de entrada B estan en el nivel alto". ‘Se exige, pues, que ambas entradas estén simulineamente en el nivel alto. <— Figura A21 Figura A22—> ==ools J oof Un enunciado como “el motor (M) se activaré (M=1) solo siesta cerrada Ia puerta (P=1) y se oprime la tlave (L=1) de accionamicnto", se corresponde con la tabla de la figura A.21 a4 [En los enunciados anteriores se puso en negrita el nexo "y" (And en inglés), que realiza la conjuncién de enunciados. A esta proposicién debe su denominacién esta compuerta La operacién que realiza una compuerta And tiene semejanzas formales con la conjuncién de enunciados, la interseccién de conjuntos y la conexin serie de contactos antes tratados En relacién con esto, en el circuito de la figura A.22 con dos contactos en serie, A y B, el foco (F) se encenderd s6lo si el contacto A y el contacto B estén cerrados. Operacién producto légico Reemplazando en la tabla de la figura A.20 los mbolos Hy L por los valores légicos 1 y 0 , resulta la tabla de verdad de una compuerta AND de dos entradas (figura A.21) fA BIZ] Lacompuerta AND la simbolizaremos con el operador binario presentado por un punto (.) 10 OF 0], 0,00 ave indica dicha operacién, definida por la tabla de verdad de la figura A.23. 0 1}0], o,1=0 Se denomina "producto légico” por coincidit simbslicamente los resultados de los produc 1 OfO1_, 19-0 t05l6gicos y numéricos. 11 fa}, qyaa Aladorecha de la tabla se ha escrito otra manera equivalente de expresar cada renglén de la Figura A23 tisma, mediante el simbolismo de un producto de valores l6gicos. Puesto que los valores Igicos de cada producto corresponden a las variables A, B y Z, en forma sintética podemos expresar: Z=A.B! (que se les igual A por B") Representando cada cable por una variable, decimos que la salida de la compuerta AND genera el valor @ o 1 de la variable Z, que es igual al valor del resultado del producto idgivo de las variables A y B, cuyas combinaciones de valores opera, como se simboliza Ia figura A.24. Las figuras que estén a su derecha dan cuenta de todas los productos I6gicos que realiza la compuerta AND. oD Do do qo ee ° ' , ' Figura A.24 Compuertas AND con mas de dos entradas En una compuerta AND de un nimero cualquiera n de entradas (figura A.25), a las que legan igual ndmero de cables designados A, B, C, ... N, el cable Z conectado en su salida estard en el nivel alto, s6lo si Ay By Cy. yN stn simulténeamente en el nivel alto. Esta compuerta realiza el producto l6gico de n variables: Z = A.B.C. ... .N Figura A.25 ‘Una compuerta AND de 3 entradas (figura A.25 derecha) realiza el producto légico Z= A.B.C Su tabla de verdad tendré 2° = 8 filas, como la tabla de la figura A.17, siendo que la columna Z tendré un solo uno, en correspondencia con la combinaci6n de entradas 111 paralacual seri Z=A.B.C=11.1=1 T También se asume, como en el algebra numérica, que dos o mas variables o expresiones entre parénesis, escritas en forma adyacente estin relacionadas por una operacion producto Iogico, aunque no exstaexplfciamente un punto entre ellas que denote tal operacién. Ejemplo: Z= AB: Z=ABC enverde Z=A.B.C; 6 d(-)Beenlugarde Z=( ).( ).B 415 A1.6 Compuerta Inversor Una compuerta inversora o inversor (simbolizado en la figura A.26) es un dispositivo electrénico que genera en el cable que esté en su salida un nivel de tensidn alto si el cable que esté en su entrada presenta un nivel bajo, y viceversa. Esto se indica la figura A.27, y resume la tabla de la figura A.28. A L H Hl L H Figura A.26 Figura A.27 Figura 28 [Decimos que los cables A y Z son complementarios, 0 que uno es la inversa del otro, 0 que estén en opasicién, Jo que uno esti en el nivel en que no esté el otro, o que uno es la negacién del otro, como quiera expresarse 4) ke = oo Figura A.29 Figura A.30 Figura A3I En la figura A.29 podemos decir que el contacto (L) y el foco luminoso (F) estan en oposicién, en el sentido de que cuando el contacto esté abierto el foco esté encendido, y cuando ¢l contacto esté cerrado el foco esta apagado, puesto que toda la corriente circula por el contacto, por cortocircuitaréste al foco, Operacion negacién Asignando 1 y 0 a los niveles Hy L de la figura A.28 resulta la tabla de verdad de la compuerta inversora (figura A.30), que define la operacién inversién que ésta realiza Puesto que Z vale 1 cuando A no vale 1, y que Z vale 0 cuando A no vale 0, se puede enunciar que Z es no A, 0 que Zesla negacién de A, simbolizindose: Z= A Esta es la operacién légica que realiza el inversor, como aparece en la figura A.31. De manera reciproca A es la negacién de Z, 0 sea: A= En general la negaci6n de una variabla A es A EI simbolo de barra (—) sobre la variable indica la operacién de negacién que el inversor realiza sobre los valores de esa variable, definida por la tabla de la figura A.30. En particular simbolizamos 0 = 1 a la acci6n del inversor de negar un valor I6gico 0 presente en su entrada para que resulte en su salida el valor légico 1. Del mismo modo, I =0 simboliza la otra posibilidad de inversi6n. Dados dos cables que estin en oposiciGn, resulta indiferente cudl se designa Ay cual A. Sil cable A esté con el valor dgico 0 (A = 0), algebraicamente en el ouo cable seré A = 0 = 1 cl valor I6gico del cable A.. Asimismo, si A =1es A=1 =0. Paracl circuito de la figura A.29 puede escribirse F=L Debe mencionarse que en general un cfrculo (figura A.32) denota inversién, esté 0 no acompafiado por un tridngulo ‘como en la figura A.26 O—A——__ Figura a.32 inversion (negacién de negacion) va figura A.33 se han dispuesto dos inversores en serie, de modo que el cable A que esta la salida del prime- ose as ver entrada del segundo inversor 0 Hag Elcable que esti nsatida del segundo inversor es en oposicién con a T el cable A, por lo cual se simbotiza A Figura A.33 ‘De esta forma, este cable en cualquier instante de tiempo tendré un nivel con el mismo valor I6gico que el cable ics es entrada del primer inversor, también opuesto al cable A. Por lo tanto podemos escribir: A = A 41,7 Compuerta OR EXCLUSIVA (X-0R) Ls palabra o del castellano tiene un significado ambiguo, al igual que la or del inglés, En el sentido débil dado en ta seccion 2 eA’ @ B” significa “uno u ot10, posiblemente ambos", En realidad es "A ylo B", puesto que incluye la posibilidad de ‘soltaneidad, como a veces se aclara Una eompuerta OR excluyente, mis abreviadamente X-OR, (“exclusive Or") de dos entradas (simbolizada en la 4 A.34) es un dispositivo electrénico que presenta dos entradas. a las cuales Hegan los niveles de tensiGn de dos es (Ay B), y una salida, que genera en el cable (Z) un nivel que depende de los niveles existentes en las entradas Ja forma indieada en la figura A.35 Figura A.34 . Figura A.35 stovesa ahora el sentido fuerte de la disyuncién, cuando significa “al menos uno y @ lo sumo uno", Ia posibilidad de simultaneidad, como en "Carlos esté en su casa 0 en el trabajo", o mismo que en cirevito légico esté en un nivel alto o en un nivel bajo" Z] El comportamiento eléctrico de la X-OR se resume en la tabla de la figura A.36, que difiere de la tabla TE] de la compuerta OR (figura A.9) séto en el dltimo renglén, H H L| Figura A.36 Esta tabla puede enunciarse asi: ("Gh cable Za la salida de una compuerta X-OR estard en el nivel alto si al menos uno y alo sumo uno de los [cables de entrada A o B, est ene nivel alto, Esta operacién la. simbolizaremos con el operador binario representado con el simbolo ® que indica esta operacién, definida por la tabla de la figura A.37, la cual contempla todos casos posibles. Se denomina “operacién Or exclusiva” Alla den misma algebraicamente, mediante la operacién Or exclusiva ha de la tabla se ha escrito otra manera equivalente de expresar cada renglén de uai7 Figura A.37 Puesto que los valores légicos de cada producto corresponden a las variables A, By Z, podemos expresar: Z=A@B — (quese lee "Z igual A or excluyente B") Representando cada cable por una variable, decimos que la salida de la compuerta X-OR geftera el valor 0 0 1 de la variable Z,, que es igual al valor del resultado de la operacidn or excluyente de las variables A y B, cuyas combinaciones de valores opera, como se simboliza la figura A.38. La figura A.39 da cuenta de todas las sumas légicas que realiza la compuerta X-OR, D* D> DDD Figura A.38 Figura A.39 A1.8 _Diagramas temporales de compuertas Los niveles de tensidn en los cables que entran y salen de las compuertas varian en el tiempo, dando lugar a pulsos dle tensién de ancho variable. Un diagrama que dé cuenta del comportamiento de un circuito digital a través del tiempo, ‘es muchas veces imprescindible para su andlisis. El diagrama temporal de Ia figura A.41 representa los cambios acaecidos en los cables de entrada, y la tensi6n resultane en las salidas de un compuerta AND, supuesta ideal, sn retardos, Figura Al Se observa en este ejemplo, cémo Ia seal B convenientemente aplicada, permite que la salida Z presente 0 no una seftal semejante ala sefal A. Esto Gltimo ocurre mientras B esté en el nivel alto, (durante tres pulsos de la seftal A en este caso), y es como sila compuerta dejara pasar la seal del cable A hacia e} cable Z., Esto justifica la denominaci6n "compuerta” (seccién A1.3) Del mismo modo, una compuerta OR Wejard pasar la sefial existente en una entrada, cuando la otra esté en el nivel bajo, como puede apreciarse en el diagrama de la figura A.42 A Figura A.42 U418 A Compuertas combinadas con inversores ‘1.9.1. Compuertas con inversores en sus entradas (OPERACIONES LOGICAS CON VARIABLES NEGADAS) Una compuerta OR con un inversor en su entrada A se puede dibujar de las dos formas indicadas en la figura A.43, dado que un circulo denota negaci6n A hi. at bt ~ Be 0 1 0 1 Figuras A.43 (superior) y A.44 (inferior) El conjunto realiza la suma logica A+B (que se lee "no A.o B") cuyos resultados se han determinado en la figura A.44, en conocimiento de la tabla de la com puerta OR (figura A.9) y se resumen en la figura A.45 ‘Ala derecha se han calculado algebraicamente los mismos resultados. De Ia misma torma pueden deducirse las dos combinaciones de compuertas siguientes que realizan las operaciones "A 6 no B" y “no A 6 no B" (figuras ‘AG y AAT) «Figura A.46 y A47 Igualmente pueden realizarse combinaciones de compuertas AND con una o mas entradas negadas, que dan lugaa las operaciones definidas en las tablas de las figuras A.48, A.49 y A.50 = So] vo ole Figuras A.48, A.49 y ASO El procedimiento realizado puede generalizarse a compuertas de cualquier ntimero de entradas, por ejemplo, una que realice la operacién Z= A+B+C+D us19 1.9.2. Compuertas con un inversor en su salida (OPERACIONES LOGICAS NEGADAS) Compuerta NOR ‘Una compuerta NOR (figura A.51) es una compuerta OR con un inversor en su salida que complementa cada resultado que ésta genera, de modo de realizar una suma légica negada.! Por lo tanto, (figura A.52) el resultado de cada operaci6n que realiza una compuerta NOR? ser la negacfon del que aparece en la figura A1,8 Como indica la misma figura, en lugar del inversor completo se dibuja el efculo que denota negaciGn, ia DD Figura A.51 Figura A.52 La tabla de verdad de esta compuerta compuesta (Figura A.53) se obtiene simplemente invirtiendo los resultados de Ia tabla de la OR (figura A.13) Figura A.54 Figura A.53 En la figura A.54 se muestra una analogfa con Ilaves que cumple con la tabla dela figura A.53. Existe una oposicién entre el cierre de uno u otro contacto (A. 0 B) y el encendido del foco (F), puesto que ello produce un cortocircuto que no permite la circulacién de corriente por et foco, Resulta F= A+B Tgualmente, un enunciado como “el automovl no avanza con luz toja © cuando cruza un peatén” es deta forma Z'= A+B N Una compuerta NOR de n entradas realiza la operacién Z = A+B +C#, Compuerta NAND ‘La figura A.56 indica el simbolo de la compuerta NAND que surge de invertir la salida de una AND, por lo que los resultados de la figura A.57 serdn los complemen-tarios de las correspondientes operaciones de la figura A.23, a la par ‘que la tabla de la figura A.58 negard los resultados de la figura A.23 HOD yD'D* Figura A.56 Figura A.S7 T CONVENCION: una expresin negada se simboliza mediante una barra de negaci6n que abarca todas las variables y operaciones. No debe confundirse una operacién con variables negadas con una operacin negada ATB no cs igual a A+B. Esto puede verficase cotejando las tablas cle ambas expresiones (figuras A.53 y A.47). que presentandistintos ‘psultados para iguales valores de AB. Igualmente A.B no es igual a A.B "Abora puede verse que resulta més claro usar oF en vez de lao del castellano pues resulta mis claro decir y escribir nor que no-o Figura A.58 Figura 59 Figura A.60 En la figura A.59 se indica una analog crcuital con laves, que cumple con la tabla anterior: el foco (F) se apaga si las aves A yB se cieran; F= A.B. También ella se corresponderé con un enunciado como “no avancarsi_el seméforo esté con luz verde y amarilla! ‘Una compuerta NAND de varias entradas realiza la operacién A.B.C....N, como simboliza la figura A.60 1.9.3 Compuertas NOR y NAND con inversores en sus entradas (OPERACIONES LOGICAS NEGADAS CON VARIABLES NEGADAS) Invirtiendo los resultados de las tablas comprendidas entre Tas figuras A.45 y A.50 inclusive, resultan las siguientes tablas que representan las operaciones que realizan las combinaciones citcuitales dibujadas arriba de las mismas. dD oA D- AB| Xoe | [4B] ap 00 oO 00 oO 00 oo} 0 or fo ]] or or} o | for oft 10 1 10 10 Oo wy 1 ufo flo utr uli Figua Aol Figura) FiguaAG3 Figura Ge Figure A.66 A1.10 Definicién de funcion logica Habiendo realizado un conjunto de operaciones bésicas con dos variables, y calculado sus resultados asignables a tuna variable Z, podemos establecer la siguiente definicién: Una funcién I6gicao booleana @ tina variable légica cuyo valor es equivalente al valor dle una expresion algebraica, constitutda por otras variables I6gicas, relacionadas entre sf por medio de las operaciones suma 6gica, y/o producto légico, y/o negacién, y/o 0 exclusiva. El valor 1.6 0 de dicha expresién depende de los valores Iégicos asignados a las variables que la constituyen, y de la realizaciGn de las operaciones indicadas. ‘Asien la funcién Z=(A.B)+C)@A, paraA=0, B=1y C=0 la variable Z vale: 1@i=0=1 Z=(0.1)+0) 0 = (0.0+0) 6 1=(0+0)O1= (1+ 0) Las operaciones algebraicas con 1 y 0 se han realizado conforme a los que figuran al lado de las tablas respectivas. ‘Son funciones Iégicas: de 2 variables con una operacién las expresiones como Z = AB: de una variable: son todas las expresiones de operaciones antes escritas. + y también lo A cada funcién logica le corresponde una tabla de verdad, que indica el valor de la funci6n para cada una de las 2" combinaciones de valores binarios de sus n variables Al.11 Cuadro de funciones ldgicas de dos variables A fin de extraer algunas difieren en la disposicién vertical de unos y ceros de la columna de resultados, para el orden 00, 01, 10, 11 de valores de A. todas tienen en comin, y que se ha respetado a Ia izquierda del cuadro de la figura A.67, Esta contiene en sus column: todas las combinaciones de resultados posibles, desde 0000 hasta [111, como puede apreciarse en sentido vertical La columna fy con tos resultados lefdos en forma vertical 0001 corresponde a las tablas ~iguales~ de las figuras A.2i y A.63 de conclusiones, compararemos todas las tablas de verdad halladas hasta ahora para dos variables. Ellas ales las funciones A.B y A+B respectivamente Del mismo modo se han determinado las funciones que corresponden a las columnas f3, 5, f. f. fy2. fra ¥ fis verificarse cotejando las figuras correspondientes. La columna fy9 ¢s la opuesta de fy, por lo que la operacign seré: A®B {La columna fy coincide con la columna de la variable A. Circuitalmente es igual que recibir directamente el valor ds! cab Lo mismo en la columna fg respecto del cable B. AB] fi | f | f3 | fa | fs | fo | f | fs | fo | fro | fin 00} 0 0) 0 OHe0 Octet fed: ol) 0 Oc1 6: 1 et 0)20 0 10} 0 dat 1 Ot tet 0.) 0 il 11,0 Oj) 1 fe/20: (eb 0 0 AB] A B A. B i Figura A.67 Las columnas fy fy¢ presentan el mismo valor O y 1, respectivamente, para todos los valores de A. y B, por lo : corresponden a funciones (putes éstas deben poder varia enire dos valores) sino 4 constantes de valor @ y 1 Estos valores con: corresponderian a cables que estén siempre en el nivel bajo y alto, Tal seria el caso de un cable conectado a 0 volts y otto a $ vols, respectivamente (masa y "vivo" de la fuente de alimentacién) como se estipulé en la seecién A. presente cuadro para todas las funciones de dos variables tiene 2 combinaciones distintas (reiyones), y el total de cov En general, para funciones de n variables, se tendré un cuadro con 2! renglones y 2°" funcion.s (coluinnas) diferentes. Del ejemplo anterior resulta que se puede definir una funcién légica de n variables como una asignacién particular de valores 1 y 0 para todas las 2" combinaciones. posibles de los valores de las n variables. A1.12 Equivalencia entre funciones logicas Dos expresiones bodleanas 6 funciones son equivalences si tienen igual tabla de verdad Esta definicién permite igualar expresiones que en la figura A.67 han resultado con la misma tabla, como © Figura A.68 Figura A.69 Figusa A.70 E secci6n A.14.2 (Pyq) se verd que en las igualdades halladas, una expresién se puede hallar a partir de La tra, aplicando la oro de De Morgan. De las tablas y expresiones anteriores se deduce que 4.22 ‘Unalexpiesidn logica le’cortésponide und sola’ tabla dé verdad, mientras que und cee puede formularse algebraicamente mediante diversas expresiones equivalentes. ” Sens eons Asimismo ‘Circuitos logicos que correspondan a expresiones algebraicas equivalentes, o sea que realicen la misma funcién légica, tendran la misma tabla de funcionamiento, por lo que podrn reemplazarse unos por otros Si encerramos en un par de cajas dos circuitos equivalentes de los dibujados més arriba, y sélo se tiene acceso a sus cables, sin saber que contiene cada caja, no hay forma de identificar por su respuesta cusl es cada uno. A1.13 Circuitos con varios tipos de compuertas (Operaciones Negacién, OR y AND combinadas) Analisis de un circuito combinacional Dado un circuito combinacional de varias entradas y una o més salidas, que ya esté construido, 0 cuyo plano circuital Idgico se conoce, el andlisis del mismo tiene por objetivo determinar su tabla de verdad o una expresion booleana de la misma. Esto permit’ conocer su comportamiento, o sea cudl serd el nivel alto o bajo de cada salida para cada una de las ‘combinaciones posibles de valores que puedan aplicarse en las entradas. El andlisis puede ser: 1. Experimental: con el circuito en cuestién funcionando 2. Légico: si se tiene el plano légico del mismo, o sea las compuertas que lo conforman y como éstas se interconectan ABC En el primer caso habri que aplicar, mediante algin dispositivo eléctrico, las distintas combina- 000 ciones de niveles de tensién altas y bajas en los cables de entrada, y medir para cada una los 000 correspondientes niveles de tensién que resultan en las salidas. Asi, suponiendo construido el oot circuito de la figura A.72 (pagina siguiente) y del cual s6lo se tiene acceso a los cuatro cables once! de entrada y al cable de salida ~sin que sea necesa rio conocer qué compuertas 1o constituyen o10 ni su intercone xionado— si se lleva a cabo la prueba anterior con los cables identificados como o10 cen dicha figura, y se traduce a valores l6gicos los niveles Hy L, resultaré la tabla de la figura o1t AaB ol 100 100 101 101 110 110 rid Si se tiene un plano circuital (fig, A.72) habré que efectuar su seguimiento l6gico, existiendo al rid respecto dos alternativas para el andlisis: Figura A73 2a Asignar cada una de las combinaciones posibles de valores ldgicos en las entradas, para cada una calcular de izquierda a dderecha el valor légico que resulta en la salida de cada compuerta, hasta legar a obtener el valor I6gico resultant en el cable dede salda Z Esto se haejempliicado ena figura A.72 par la combiacién (ABCD) = 0000, ndicndose ls resultados entre paréntesis en cada saida de compuerta, Para 4 variables de entrada serdn necesarios 2* seguimientos como el indicado para obtener la tabla de Ta figura A.73 2b Asignar wa variable booleana (letra) a cada cable de entrada! y realizar un solo seguimiento como el efectuado en 2a, ‘scribiendo a la salida de cada compuerta en forma algebraice la operacién légica parcial que realiza, como también se indica en ‘CONVENCION SIMBOLICA CIRCUITAL: en el dibujo de un circuit, eada cable y sus remificaciones pueden simbolizarse: ‘con uns sola letra que fo identifica, dbujando totalmente oda ls ramificaciones, como aparece el cable A en Ia figura A.72, donde tm punto ‘em el eruce 0 unién de dos caminos rectlineos simboliza que se trata del mismo cable (implictamente dos caminos que se cruzan sin el punto pertonecen a cables dstintes) 'b) con menos caminos indicadores de cables, conta convencién de que todas las letras del mismo nombre designan un mismo cable, como se «jempliticaen dicha figura para los cables B y C v4.23 Ja figura A.72, hasta llegar a la expresiGn final en el cable de salida Z. Luego se deberd calcular algebraicamente el valor de ésta para cada combinaci6n de valores de entrada, afin de obtener la correspondiente tabla de verdad buscada. Para la figura A.72 la expresin final que simboliza las operaciones que realizan las compuertas del circuito resulté: A.B.C+A.C.D).A+(B@O).(A+B+D)! Esta expresién para la combinacién de valores de las entradas (ABCD) = 0000 resulta Z=(0.0.0+0.0.0).0+(0@ 0).(0+0+0) = (0.1.0+0.0. (04140) =0.1.1=0 con lo cual queda determinado el valor de Z: del primer rengl6n de la tabla de a fig. A.73. Calculando del mismo modo para las combinaciones 0001 a 1111, se obtiene dicha tabla completa, como puede verificase. KO) BI) C10) (0) — J > 0) Debe tenerse presente que puesto que el niimero de combinaciones para n entradas es 2", este ndmero crece exponencialmente con n, por lo que asf crecerd la cantidad de seguimientos a realizar en el circuito con el método 2.2. ‘A diferencia, la complejidad de una expresi6n circuital final s6lo crece proporcionalmente al numero de variables (entradas), pudiéndose agilizar 1os célculos indicados en dicha expresién, conforme se requiere en el método 2.b. Asimismo es factible simplificar la expresi6n final, como se trata en el apéndice "K” Figura A.72 1 CONVENCIONES PARA LOS PARENTESIS: como en el dlgebra numérica, cietos paréntesis pueden eliminarse siempre y cuando n0 resulte ninguna ambigiedad en el orden de realizacién de las operaciones parcial que afecte el resultado toa, teniendo siempre presente que el ‘Simbolo "mas" +) de la suma ldgia predomina en Ia eparacion de operaciones parcales en relacin con el simbolo “por” () del producto lgico Asien la figura A.72. se escribis A.B.C+A.C.D en vex de (A.B.C)+(A.C.D) dado que resulta claro que deben reaizarse los productos parciales que componen los dos sumandos para luego sumar los resultados de esas operaciones A.su vez A.C.D implica claamente que es A.(C.D), 0 sea que A moliplica et resultado de C.D, sin necesdad de dibujar tos pparéntesis, En general una barra sobre una expresién implica que en sus extremos existen paréntesis, al igual queen A+ (B@C). En el resultado final hubo que poner entre paréntesisa A.B.C+ A.C.D pues de no colocartos, no queda claro si se trata de la expresién Z=(A.B.C+A.CD)A+(BOC)(A+B+D) obiende a operatoria A.B.C+[A.C.D.A +(B@C).(A+B+D)] “También hubo que poner entre parénesis (B ® C) para evita a iterpretacén (A +B) ® C Por timo en el tema de las convenciones, tesiendo presente la existente para no escribir los puntos qué deitan producto, indicads en la seccion |AL.S, que la expres final se pudo haber expresado Z-= (ABC-+ ACD) A +(B@C)(A+B+D) 4.24 ‘Conddida’ una ‘expresién dein Circuito; se puede transformar algebraicamente aplicando las propiedades: del Algebra de Boole, segiin se vera, de modo de poder hallar o1ro mds sencillo, o comparar varias opciones de realizacién | afin de construirlo con el tipo de citcuitos integrados que mejor convenga., econdmica y téenicamente. A respecto el lector podrd verificar luego de leer el apéndice que A ' Ja expresién final antes hallada puede reducirse ala equivalente C Z=A.B.C+A.B.C.D B.E+A8.CD_ que también le coresponde la tabla de ta figura A73. Esta ry acotacidn anticipada tiene por finalidad corroborar 1o afirmado s—f anteriormente de que una tabla de verdad puede expresarse (+ algebraicamente de maltiples maneras. en correspondencia con >— las cuales pueden resultar circuitos més convenientes, segtin el Figura A.74 tipo de escala de integracién que se disponga. ‘A la Gitima expresin le correspond el citeuito de la figura A.74, segun resulta de aplicar Ia metodologta de sintesis que se past 1 desarrollar. Sintesis de un circuito a partir de una expresi6n algebraica ‘A final del tema anterior se planted la cuestin de hallrel plano Iogicoo dibujo de un circuito digital conociendo una expresin booleana dela operatoria que raliza Este problema forma pare de la siatesis de los eicuitos digitale, que también puede inclu una etapa anterior de obtencin de dicha expresin a pari desu tabla de funcionamieno (Lema que se tata en la secei6n 1.16). Esta a su vez puede provenir de una Supa previa de Waduccién a variables y operaciones lopicas de las condiciones que debe cumplir dicho circuit, establecidas ‘esalmenteo por escrito ‘Dada una cxpresiGn boolean, la prioridades operacionales que pueden seguierse para snttizarla son, en onde 1. Eseritura de todas las variables en juego 2) Implementacién de las invesiones que involucran una sola variable. 43. Realizasin de ls operaciones ente parétesso las negaciones que abarean el menor ntimero de operaciones 4 Idem de los paténtesisonegaciones que akarcan mis operaciones eteetwando primero los productos Tuego las suas 5. Implementacdn de los products restates 6. Realizacin de las sumas principales, LN. 3 4 /\_§ /\__6 7 Figura A.75 -C.D+A.B bp Ejemplo (figura A.75): Sintetizar Z= A +(B+C+D).! Obsérvese cémo la expresidn algebraica de un circuito permite deducir el conexionado que debe existir entre las compuertas que Io componen, para que éstas realicen las operaciones simbolicadas, de modo de obtener el plano légico del mismo v4.25 Al.14 — Verificacién y aplicaciones de propiedades booleanas ‘A fin de tener cierta coherencia en el orden de presentar fas propiedades y sus aplicaciones, se ha optado por seguir el planteo que aparece en el apéndice de este capitulo, debido a Huntington, quign establecis el Algebra de Boole como un sistema axiomético basado en cuatro propiedades primeras 0 postulados que deben cumplir los sistemas a los que puede aplicarse éste dlgebra De éstos pueden deducirse algebraicamente las restantes propiedades como tcoremas, siendo éstas vilidas para cualquier sistema material que verifique las cuatro propiedades-postulados. siendo que a cualquier par de elementos del mismo se Les pueda aplicar dos operaciones binarias, Estas en el caso de Tos circuitos digitales son las operaciones OR y AND antes definidas. Citras propiedades pueden ser tomadas como postulados en otras formalizaciones axiométicas de este algebra. Por tal motivo es de relativa importancia el orden en que se dan estas propiedades, al igual de cudles son consideradas como primeras. En principio importa conocerlas y poder aplicarlas cuando sea necesario. 1.14.1 Cuatro propiedades primeras Pj) Propiedad conmutativa de las operaciones suma y producto ldgicos En una suma ldgica o en un producto légico no importa el orden en que se toman los operandos:! Cireuitalmente: is tip 8 Bok To =? BA B A 4 aot Verificacién: Dado que- 040=0; O+=1+0=1; y 141 razonamiento vale para el producto légico. da lo mismo decir que se esté haciendo A+B que B+A. El mismo 2) Propiedad distributiva de una operacién respecto de ta otra El producto ligico es distributivo respecto de la suma lgica y viceversa: (A2a) (A2.b) Cireuitalmente: A : AB AC G r a Da b Dp“ (AsO) G Ae t Verificacion: - "Una forma de verificar ambas igualdades es calcular para todas las combinaciones posibles de valores légicos de las variables [ALB y C el valor del resultado de cada una de las expresiones que constituyen cada igualdad, realizando las operaciones en ellas jndichdas, Si las tablas de verdad que resultan luego de efectuar todas las operaciones son iguales, las expresiones en cuestin serén 1 Las fechas verticales relacionan las dos propiedades,y sirven para halla una eonociendo la otra, como se plantea_en las principio de dualidad” ion A.1S al tatar “el U4.26 equivalentes. Mediante la tabla siguiente se verfica la equivalencia (A.2b), y en ella se indica debajo de cada columna con operaciones el célculo pertinent. ‘Como se remarca en negrita, los resultados de las operaciones de ambas expresiones son iguales para cada combinacién de valores de A,B y C Por consiguiente se verifica la igualdad (A.2.b), y ambas expresiones tendréin la tabla de verdad de la derecha 070. (0+0).(0+0) = 04 040. (0+0).(0+1) = 0. O+1.0=040=0 | (0+1)(040)= 1.0= O41 (0+1).(041) = 1 1404 (140).(140) = 1 140.1=140=1 | (140)(141)= 1.1 = 141 (141).140)= 11 1H. 141).041) = 1.1 [=== ocoop Del mismo modo puede verficarse la igualdad (A.2.a)! Aplicacién: ‘Tipicamente la propiedad (A.2.a) aplicada reiteradamente como en el fgebra numérica se usa para transformar productos de sumas en sumas de productos: (X+B).(C+D)=C.(K+B)+D(A+B)=C.A+C.B+D.A+D.B tT tT Producto de sumas ‘Suma de productos ‘También se emplea en sentido inverso, para factorear una suma de productos, sacando factor comdin, para convertir una suma de productos en un producto de sumas, como seria en la expresién anterior ir de la expresiGn de la derecha hasta llegar a la primera de la izquierda, Igualmente se usa la propiedad (A.2.b) para obtener productos de sumas: A(B+C)+D= D+ A.(B+ C) = (D+ A).[D+ (B+ C)] = (D+ A).(D+B+C)? 3) Invariancia de la suma y producto l6gicos respecto del sumando 0 y del factor 1 Elvalor légico de una variable no cambia sise le suma el valor 0 0 si se la multiplica por el valor 1: Verificacién: Se verifica en la tabla de Z= A +B que si B=0 resulta: Z=A+ yenlatabladeZ=A.B siB=I resulaZ=A.1=A Esta tiene Ia misma forma simbélica de la propiedad distributiva del producto numérico respecto de la suma numérica, por lo cual resulta faniliar su_utlizcién. En cambio Ia igualdad (A.2.b) de la ligica no existe para los nimeros, pues en éstos la suma no es distibutivarespecto al producto, orto, que su aplicacon resuta ms di El paréntesis dentro de otro que se ha eliminado en el timo paso, pertenece a la inversa de la propiedad asocativa de la suma I6gica, ain no a Figura A.76.a =o [BEE = Aft 1 a A+ 0} 1 Esto es lo que se ha simbolizado en una y otra compuerta de la8 figura A.76.a y b. Sia cada salida de las mismas se conecta un inversor, ala sada de éste y de compuertas NOR y NAND equivalents a cada conjunto se endré A. También puede verficarse en las tablas de estas compuerias que si B = 0 los valores de A yZ son opuestos. Por lo tanto una compuerta NOR o una NAND de dos entradas pueden usarse como inversores si una de las entradas se coloca a 0 volts (masa) en la NOR o a la tensién de alimentacién en la NAND Figura A.76.b Utilizaci6n de una compuerta como si tuviera menos entradas: Muchas veces sucede que se necesitan compuertas con un cierto nimero de entradas, siendo que se dispone de otras del mismo tipo, pero con més entradas, La generalizacién de esta propiedad puede aplicarse para resolver este problema, y se enuncia asf: “en una compuerta OR (0 AND) de varias entradas, si uno o més cables que llegan a las mismas estén siempre con el valor légico 0 (con el valor logico 1 en la AND) no afectarén el resultado que producen en su salida las combinaciones de valores que pueden darse en los restantes cables de entrada’. Simbolicamente: ¥y los valores de Z.corresponden a la funcién Z = BC de dos variables. Osea Z=04B+C=B+C Igualmente puede verificarse que Z = 1.B.C = B.C Como indican las figs. A.78 y A.79, una compuerta OR o una AND de 3 entradas con wna de ellas conectada permanentemente a masa (0 légico) 0 ala tensién de alimentacién (1 Idgico), respectivamente, equivalentes a sendas compuertas de 2 entradas. teen C 1 : 4 » 1B.C= B.C C Del hismo modo, compuertas NOR 6 NAND de 4 entradas pueden usarse como compuertas similares de 3, 2 y de tuna entrada, en cuyo caso resulta un inversor (figuras A.80 y A.81) «—Figuras A.78 (superior) y A.79 (inferior) 3 Tat cable debe estar conectado permanentemente al terminal de a fuente que tiene O volts. Se identifica con un O en lugar de usarse una era ‘Tal eable debe estar conectado permanentement al terminal "vivo" de la fuente, como ser a S volts. Se identifica con un 1 en lugar de usrse una teva v4.28 Figuras A.80 (superior) y A.81 (inferior) Py) Propiedad que deben cumplir una variable y otra que es su complemento — _ Si para una variable cualquiera A. se puede obtener otra A cuyo valor es siempre complementario del valor de la primera, ambas verificardn las siguientes relaciones Estas expresionesimplican que A y K no pueden valersimulténeamente 0 (pues resulta A+ = 0), i simulténeamente I (pues seria Ak ), Se trata pues de otra forma de dar Ia definicién del complemento de una variable. A1.14.2 Propiedades deducibles de las cuatro primeras En ef apéndice de este capitulo las propiedades siguientes se deducen como teoremas de las cuatro primeras consideradas como postulados. Siguiendo con la metodologia uilizada, nos imitaremos a verificaras Ps) Anulacién de variables Sia una variable cualquiera se le suma I (0 se la multiplica por 0), el resultado serd dicha constante: eee eee a Verificacisr rocediendo como en P3, en la segunda y cuarta fila de la tabla de independientemente que A valga 001. Osea Z=A+1=1 Igualmente en la primer y tercer filas de Z = A.B, donde es B=0, resulta Z=A.0=0 A +B para las cuales es BI se verifica que es Z=1 Aplicaciones: Précticamente valen las mismas consideraciones mencionadas en Py, Generalizacién: ASB+C+. AN 41 ALB.C. ww .N 0 P6) Propiedad "idempotencia"” Sia cualquier variable se le suma o multiplica ella misma, resulta la misma variable: Ver ‘Nuevamente procederemos como en P,. Esta vez consideraremos la primera y cuartafilas en ambas tablas, donde los valores de A, By Zcoinciden, (A=B=Z) Para las mismas se puede escribir, Z=ACB=AtA=A oy Z=AB=AA=A, queson las expresiones anteriores. u4.29 Aplicaciones: Estas propiedades por un lado se usan algebraicamente, para obtener expresiones con menos vatiables por operacién, y circuitalmente de manera semejante a las propiedades P3, Para poner esto de manifiesto se dan los mismos ejemplos. Compuertas NAND y NOR usadas como inversores: ‘Coma indican las figuras A.82 y 83 uniendo ls dos entradas de una compuerta aun solo cable, se obtene la funcin inversion: a WAN TE LD —A > T_ Figura a2 Figura A.83 Ufilizacién de una compuerta como si tuviera menos entradas: La goneralizacidn de las presentes propiedades puede enunciarse asi: "wn swnando o un factor que se opere repetido en una suma 0 producto, respectivamente, no interviene mas que una vez en el resultado”. Simibélicamente: AtA.. Esto autoriza a unit entradas de una compuerta para que realice Ia misma operacién que otra similar de menor nimero de ‘entradas, como se indica en las figuras A.84, y ASS v 4 ma a t ‘ A Hy i Figuras A.84 y ASS Pz) Propiedad denominada "absorcién" ‘Una variable mds (por) ella misma por (mds) otra variable resulta ella misma: Verificacién: Puede realizarse por tablas, como se hizo en P2 Aplicacién: Estas propiedades suelen usarse en la oblenci6n de expresiones con menos variables Pg) Propiedad asociativa de la suma y el producto En una suma (producto) de varias variables, las mismas pueden agruparse libremente en sumas (productos) parciales sin que el resultado final varte A+ (B+0) = appie AY(B YC) = (ATVB) .C Verificacion: Las expresiones anteriores pueden verificarse usando tablas de verdad Ein las transformaciones algebraicas estas propiedades son de uso cortiente u4.30 Una aplicaci6ncircuital consist (igura A.86) en reemplazar varias compuertas OR (o AND) de varias entradas combinadas en una suma (0 product) por una sola de més entradas, o combinarlas acorde a la disponibilidad de entradas por compuerta existent, : : -—E>-:! co 5 ' : Po) Propiedad de la negacién de la negacién 0 "involucién”’ Siuna variable se niega dos veces resulta la misma variable sin negar: AX [og] Bs propiedad ya se rats aplicada a compuests en la secci6n A1.6 O°] y se verfice segsin la tabla de la iquierda 1 Pio) Propiedades de De Morgan Dadas las operaciones suma y producto lgicos, una cuuquiera de ellas sin negar, puede transformarse en la otra negada, negando tambien las variables: Verificaci ‘La equivalencia de las expresiones escritas arriba ya ha sido realizada en la seccién Al.12_ comparando Tas tablas de verdad correspondientes. Las expresiones que estén a la derecha de las recuadradas indican la forma de transformar una operacién negada en la otra sin negar. Generalizacién: Aplicaciones: ‘Equivalencia entre configuraciones "AND-OR" y "NAND-NAND" Ope DS Figura A87 Método algebraico: se halla la expresién del circuito a transformar (extremo izquierdo) y se aplica De Morgan, para obtener la cexpresi6n deseada, Con ella se dibuja el circuito buscado (de la extrema derecha), sin necesidad de dibujar el circuito del centro. Zy=A+B.C+D.E U431 Al.15 Principio de Dualidad Como indican las flechas en todas los pares de expresiones con dos 0 més variables de secciones anteriores, en el Algebra de Boole si se conoce una cualquiera de ellas se puede conocer Ia otra, que es su “dual”, Esto se conoce como ‘principio de duatidad”, y puede enunciarse: Cualquier propiedad en el algebra de Boole sigue’ siendo valida si sé interéambian todds Tos" operadores "mas" (+) y "pot" (.) entre si, y ademés se intercambian 1 y 0, in Igualmente puede establecerse una dualidad en la aplicacién de la légica positiva y negativa (seccién Al.2) Ast, si definimos conforme con esta titima los niveles Hy L como 0 y 1, respectivamente, la tabla de funcionamiento de la figura A.13 ~que habfamos hecho corresponder en la légica positiva con la tabla de la funcién OR~ con la convencién de la I6gica negativa resulta la tabla de verdad de una funcién AND. A1.16 Funcion como suma de minitérminos (forma "canénica") Al tratar el andlisis de circuitos (seccién A1.13.1) dado el plano de un circuito hemos hallado su tabla de verdad. Ahora nos proponemos una de las formas de resolver el problema inverso, ligado a la sintesis de citcuitos: dada una tabla de funcionamiento que expresa ciertos requerimientos que se deben cumplimentar circuitalmente, construir un circuito que responda a dicha tabla. También se vi6 (seccién A1.12) que una tabla de verdad puede expresarse mediante tantas expresiones algebraicas equivalentes como se quiera, A su vez, cada una de estas expresiones da lugar a un circuito légico cuya tabla de funcionamiento sera formalmente igual a dicha tabla. La obtencién o sintesis de un circuito a partir de una expresién algebraica ya se traté en la seccién AI.13.2. Pero atin no hemos tratado las formas de hallar circuitos que verifiquen tuna tabla dada Para resolver esta cuestién en general hace falta determinar al menos una de las tantas expresiones algebraicas equivalentes que cumpla con la tabla en cuestién, Hallada esta expresiGn, se determina el circuito que ella simboliza, Puesto que existen muchas expresiones equivalentes a partir de una tabla de verdad, en cada caso se trata de hallar aquella o aquellas que correspondan a circuitos que tecnolégica y econdmicamente interese implementar. En el presente capitulo las expresiones booleanas a determinar se corresponden con estructuras circuitales del tipo [de las que constituirdn los circuitos de una ROM, tratados en detalle en la seccién A1.22, que vienen integrados en un solo "chip", parte de cuyo conexionado interno el usuario puede determinar. Estas expresiones son las formas “candnicas” 0 “normales” 0 "expansiones booleanas” de una funcién l6gica. Existen dos formas candnicas: la “normal disyuntiva” 0 "suma de minitérminos’, y la "normal conjuntiva" o “producto de maxitérminos. Trataremos la primera, por ser la de aplicacién tipicamente usada. Cada una de ellas es nica: a cada tabla de verdad le corresponde wna sola expresién suma de minitérminos y una| sola expresiGn producto de maxitérminos, Ambas son equivalentes, por expresar la misma tabla de verdad. A1.16.1 Minitérminos Dado un niimero n de variables, un minitérmino es un producto Igico, cuyos factores son todas las variables (negadas 0 no) Un producto I6gico resulta con el valor 1 para una sola combinacién de valores de las variables que son sus factores. Esto ya se aprecié en las tablas de verdad de las figuras A.23, A.48, A.49 y A.50 Para 2 variables A y B, los 2 productos minitérminos que pueden formarse aparecen en co- Jumna, junto con la combinaciGn de valores de las variables para la cual cada producto vale 1 AB = Opus 00 ABe oO Dada otra combinacién de valores que no sea la correspondiente a un producto, este resulta 0 Asi para 01 apicada en A.B resuta A.B=0. 000 Fa L LITT | Del mismo modo, para 3 variables A,B y C se indican los 28 miniterminos que “Lh | pueden formarse, junto con la combinacién pera la cual cada producto resulta 1, ‘como se verifica para los dos primeros. 101 110 m1 ABC ABC stogsoae 3 Considerando cuatro variables, A,B,C y D se pueden formar 24 minitérminos distintos: a .D-A.B.C.D-A.B.C.D-3.B.C.D-4.B.C.D-A.B.CD A.B.C.D-A.B.C.D-A.B.C.D-A.B.C.D-A.B.C.D-A.B.C.D-A.B.C.D-A.B.C.D Porcjemplo,el producto BE. vale I para a combinaci6n O10, pes solo para ela resulta B.1.0.1=1AL1=1 bérvese que si bien B.C es un mintérmino si se tiene 3 variables, nolo es para eusto, pus si bien es un producto, se oer eet sma por todas as variables, Por ell los mintérainos también se denominan “produto compleos” Teulmente no son miniérmins para 4 variables AH.C.D si ACD, por contener productos negados dado ue I deste cnige que sea product sin nega, alo pariamente. Solo pueden estar negadas variables en forma individ. Podemos establecer la siguiente correspondencia biunivoca Para cada minitérmino hay una sola combinacin para la cual el producto resulta 1, y reefprocamente, dada| tuna combinacién de valores de las variables, existe un solo minitérmino que resulta 1 para esa combinacién. Se observa en cada correspondencia minitérminocscombinacién, que los ceros y_unos se cortesponden individualmente con las variables negadas y sin negar, respectivamente. Asi: : O<= A lea A 1.16.2. Expresién de una funcién como suma de minitérminos ' ji ae ‘Supongamos que se necesite un circuito de tres entradas, A, B,C y una salida Z (figura A.88), a Pee ,—) a (— se! de este circuito serd, pues, la que aparece en la figura A.89, y puede describirse asf: "Z vale 1 si la combinacién de valores de A,B,C es 011 0 si ella es 101 0 si ellaes 111", Dada la correlacién existente entre combinaciones y minitérminos, podemos decir: "Z vale 1 si la combinacién de valores de A,B,C es la correspondiente al mini 0 sila misma es la correspondiente al minitérmino A.B.C, 0 si la misma es la correspondiente al minitérmino A.B.C” a Figura A.88 ino A.B.C, uesto que para dichas combinaciones esos minitérminos toman el valor 1, también podemos enunciar: "Zvale 1 sila combinacién de valores de A,B,C es aquella para la cual A.B.C vale 1 (y cualquier otro minitérmino 0), ¢ si es aquella para la cual ‘A.B C vale 1 (y cualquier otro minitérmino 0), o sies aquella para la cual ‘AIBC vale 1 (y cualquier otro minitérmino 0)" Verificaremos que acorde con este enunciado, una expresidn que sigue la tabla a la figura A.88, es la formada por la suma de esos tres miniterminos. Soe ee | -o-s-o-ola SET meron Sen Figura A.89 1 En ta see partir dela exp n problemas (A134), ejtceio 16. se indica a modo de verficacisn, una forma algebralea de obtencién de los minitérminos 3 in de wea Fanci U433 Z=AB.C + ABC +A.B.C paraOll<>A.B.C lasumaseré Z= 1 + 0 + 0 =1 para l01<>A.B.C lasumaseré Z= 0 + 1 + 0 =1 para I1 permite seleccionar el valor légico que aparecerd en su salida, Ios valores I6gicos presentes en sus k entradas de datos Para tal fin en las n entradas de seleccién debe aplicarse un nimero binario igual al subindice decimal de la Ifnea de datos que se quiere seleccionar. Por ejemplo, si en las entradas de seleccindel circuito de la figura A.100 se aplica la combinacién A,B=10, la salida Z resultaré 0, correspondiente al valor supuesto para la entrada Dy, 0 sea sera Z = Dp = 0. En general el valor 0/1 de la salida es ef mismo que el valor 0/1 que en un instante dado presenta la entrada de datos seleccionada mediante la combinacién aplicada en las entradas de control. Resulta asf la tabla de verdad reducida de la figura A.102 del selector /multiplexor de la figura A.100, ampliada de la figura A.103, En ésta con “X” se indica un valor que puede ser 0.6 1, no interesa, pues no aparecerd en la salida De oo! 75 x ° na x 1 z x x , ae! x x 03 x x x x ° x 1 x Figura A.103 Figura A.104 La figura A.104 muestra un circuito multiplexor, basado en un decodificador cuyas entradas son las de seleccién A,B. Cada AND que va la OR de salida recibe una entrada de datos y una salida del decodificador. Puesto que en un 1 Sa ange on tri tp Ag ts Dy $e lo general un muliplexor es un selector datos piu, en l cual as entradas de dos se slecionan en odenrotivo-ilico durante un dempo igual para todas, por ejemplo siguiendo siempre la secuencia: Dg “»Dy ~»D3~»D3 Dy 9D, «.- U441 decodificador una salida vale 1 por vez, una sola de esas AND repetiré en su salida el valor 1/0 de la entrada D de datos aque entra a esa compuerta (1.D=D). Las restantes AND estardn con su salida en 0. De esta forma, la salida Z presentard cl valor O/1 de la entrada de datos habilitada por el decodificador. Con los valores supuestos en las entradas, para la combinacién 00 presente en A,B, serd 1 la salida A.B del decodificador y las restantes serdn 0. Por lo tanto en la AND de salida A.B.Dg seré: 1.Dg =1.1= 1, y las otras AND estardn en 0. Resulta: Z=Dy+0+0+0=D, p+ A-B.Dg Lassalida Z del multiplexor seré. Z = A.B.Dg+ A.B.D, +A. Cada producto de las variables de seleccién, A,B aparece multiplicado por la variable de subindice decimal igual a la combinacién binaria que hace 1 ese producto. Se verifica que si se aplica a las entradas A,B la combinacién 00 resulta Z B.D9+ 0.0.0, + 0.0.0, +0.0.Dg = 1Dg+ 0.D,+0.LD2+0D3=Dg En Ia figura A.105 aparece la forma més simple y corriente del circuito de un selector/ multiplexor que cumple con la expresién de Z antes hallada. Basicamente cada producto se genera con una sola AND que reemplaza a dos de la figura A.104 Figura A.105 El selector mis seneillo serfa uno para dos entradas o vias (figura A.106), con una entrada de seleccién A, Segiin sea A=0 6 A=I, se selecciona Dg 6 Dy, respectivamente, «Figura A.106 A1.21 Demultiplexor Un demultiplexor realiza la funcidn inversa de un multiplexor: Jel valor légico de la linea de entrada puede ser seleccionado, mediante m entradas de seleccién, para que aparezca en una de las k= 2 lineas de salida. La figura A.107 muestra un demultiplexor de 4 salidas, que cumple una funcidn semejante a la lave mecéinica de la figura A.108, que distribuye cada bit que presenta en el transcurso del tiempo la linea D_ entre las lineas Zg a Z3, cambiando secuencialmente de posicién en los instantes tg, (943 Aplicando en las entradas de P 9 seleccién A,B un nimero eal TJolra 1 Dinar, se abi ts aida lo 2 A 2, que tiene como subindice Gecimal el mismo némero, El valor 1/0 de la entrada D aparecerd en dicha salida (Zy en [a figura A.107 para la combinacién 10 presente en i P A,B) Las restantes salidas I tential En la figura A109. se muestra el circuito de dos Figura A.107 Figura A.108 entradas de selecci6n, cuya tabla de verdad aparece en la Dd} a figura A.110, en la cual “X” significa que no importa si vale 16 0. 442 lol Figura A.110 Figura A109 —> A1.21_ Generador/Verificador de paridad Se trata de un circuito Ique se emplea en teleprocesamiento, en cintas magnéticas, y en la verificacién de operaciones de lectura en la memoria principal, ene otras aplicaciones donde se supone que por motivas del ruido sélo un bit puede cambiar mientras se transite un mensaje de un punto a otro. Si se quiere enviar por un cierto canal de transmisin 1a informacién combinaciones de 000 a 111, por ejemplo la 010, y por algiin ruido en Ia transmisiGn se recibe con un bit de error 001 (un uno se transforms en cero), como esta combinacién es del mistmo digo, e! sistema receptor la aceptaré como ta sin "darse cuenta” que no es la combinacién originaria En general esta situacién se repetiré siempre que una combinacién de un cierto cédigo se convierta en otra del ‘mismo, por error de inversin de uno o més bits durante st transmisin Como se verd a continuacién,un eddigo detector 0 “autoverificador” esta pensado para que los errores que tengan lugar en una combinacién correctamente originada, se detecten por que convierten dicha combinacién en otra que no pertenece al cédigo. ‘Asf, en la figura A.113, a las combinaciones citadas de 000 a 111 se les agregé un bit Z tal que cualquier combinacién de la tabla tenga un niimero par de unos? (paridad par de unos). El cédigo originario de 3 bits (A,B,C) se hha transformado en otro de 4 bits: A,B,C,Z. De esta forma, si luego de que el transmisor generé una combinacién del cédigo de 4 bits se invierte un bit, el mimero total de unos aumentaré o disminuiré en una unidad, perdiéndose la paridad par de unos originaria, Si ahora 0101 por un ruido en el canal de transmisién se transforma en 0010, al llegar al receptor esta combinacién sera detectada como no perteneciente al c6digo de la figura A.113, por no tener Ia paridad par que deben tener todas las combinaciones del cédigo, y por lo tanto serd rechazada, pidiéndose por lo general al transmisor que retransmita el mensaje; sera rechazada por no presentar un niimero par de unos. Entonces, las combinaciones que se reciban con paridad impar de unos no serdn del cédigo, pues se supone que transmisor genera combinaciones del cédigo. Para reconocer en el receptor las combinaciones del cédigo puede usarse un circuito verificador de paridad, que se trata (fig A.144) junto con el generador de! bit de paridad, Se determinaré un circuito (que seré el de la figura A.111) denominado "detector de paridad” que sigue la tabla de Ja figura A.113. O sea si la combinacién binaria presente en sus entradas A,B,C presenta un niimero impar de unos, 1a salida Z ser 1; y si el nimero total de unos en A,B,C es par, debe ser Z=0. Esto es, la salida vale 1 sila combinaci6n de 3 bits que existe en las entradas tiene paridad impar de unos. ib com> In Figura A111 Figura A.112 ==> > oSSop Figura A.113 De la figura A.113 resulta Z como la siguiente suma de minitérminos: 2 También se podia haber elegido que sea ZI si se detecta nimero par de unos, o bien que la detecidn de la paridad impar o par sea respecto de los ceros. U443 7=4K.B.C+A.B.C+A.B.C+A.B.C=(A.B+A.B).C+(A.B+A.B).C. =(K@B).C+(A@B).C=(A®B)SC=A BOC! siendo el circuito correspondiente el de la figura A.111 Si se realiza una tabla para 4 variables resultaria: Z=(A@B)@(C@D) =A@BCOD __ siendoel circuito resultante el de la figura A.112 Generalizando para n variables, la expresi6n que indica con Z=I si el ntimero de variables que valen 1 es impar es: Z=A@BOCOD® El circuito detector de paridad se designa "generador/verificador" de paridad ("parity generator/checker") dado {que tipicamente tiene usos complementarios. 1. Con el fin de formar combinaciones a transmitir que tengan una paridad establecida. Para ello su salida genera el bit que agregado a cada una de las combinaciones de n bits presente en sus entradas, permite construir combi- naciones de n+1 bits, todas ellas con un niimero par (o impar) de unos (0 ceros), segtin se convenga. 2. Para verificar que cada combinaci6n recibida ~que fue formada y transmitida segdin se indicé en el paso anterior— presente Ia paridad establecida. En este caso, la salida del detector es 0 si la paridad es correcta, y con 1 si no lo es. p _EJEMPLO: ‘Suponiendo un e6digo con combinaciones A,B,C de 3 bits como el de la figura A.113, la salida Z del circuito de la figura A.111 genera I si la combinacién A,B,C tiene paridad impar. ‘Siel valor de Z. se agrega a la combinacidn existente en las entradas, de modo de formar combinaciones A,B,C,Z de 4 bits, éstas tendrdn siempre un niimero par de unos, Asf pueden construirse las combinaciones de cada rengl6n de la tabla, las cuales en la figura ‘A.114 se supone que se transmiten desde un extremo que hemos llamado "generador-transmisor" Estas combinaciones son recibidas (Figura A.114) en el extremo "receptor-verificador’ (semejante al de la figura A.111), euya salida Zz serd 0 si la combinacién A,B,C,Z_ existente en sus entradas presenta un nimero par de unos, como se ha convenido que debe ser la paridad transmitida y recibida, De ser Z = 1 implica que la combinacién recibida tiene un bit errado por no tener la patidad par de unos estipulada, en cuyo caso se pide la retransmisiGn de la misma, Figura A.114 Generador-Transmisor Receptor-Verificador Si bien el desarrollo se realizé para combinaciones de n = 3 bits, puede generalizarse cualquiera sea el ntimero n de bits que tengan las combinaciones de un cédigo. En el caso de una memoria principal, al escribir cada posicién (n = 8) se genera un noveno bit de paridad, o sea que en cada posicin se almacenan 9 bits. En el momento de leer una posicién se verifica la paridad, para determinar por la salida Za si hubo 0 no error. 1 Yacen una compuerta X-OR la salida es | sina (némero impar) de las entradas vale |. y val Osi tas dos entradas valen 1, 0st ambas estén en 0 uss A1.22__Memorias ROM El circuit de una “memoria ROM” se construye mediante un decodificador (seccién A1.19) y compuertas OR, siendo en esencia un circuito combinacional de varias entradas y salidas que cumple con una determinada tabla de verdad. El circuito se construye con el método visto de implementar circuitalmente funciones mediante suma de ‘minitérminos, que ya para dos funciones se aplic6 para hallar el circuito sumador completo. ‘A continuacién se ejemplifica la construccién de una ROM correspondiente a una tabla con m = 4 funciones P,V,W.Y que comparten n= variables A,B,C\D pero que puede generalizarse para tablas con los valores de m y n que hagan falta, Cada funcién P,V,W.Y se construiré mediante la suma de sus minitérminos, como se hizo entre las figura A.94 a y b. Ahora las compuertas AND del decodificador proveerin los minitérminos que necesitan dichas funciones, por generar las AND todos los minitérminos de_4 variables (como aparecen en la figura A.118). Se requiere una compuerta OR por funcién para efectuar esa suma, como se indica. Una salida del decodificador a la que se conectan varias entradas de compuertas OR, implica que las funciones correspondientes comparten el minitérmino que ella genera, sea que ppesentan el mismo en Ja sumatoria que expresa dichas funciones Cada OR tendré tantas entradas como minitérminos debe sumar. Los citcuitos ROM son de conexionado intemo programable o “dispasitives légicos programables”, en el sentido de que la conexién entre las salidas de los circuitos AND (del decodificador), y las entradas de las OR es configurable (“programable") por el Vale decir, una ROM es un dispositive légico programable por el usuario, para que cumpla con una determinada tabla de verdad. Ha ooo ceo Preteen et etetetetepetststete| = mH OHH ooH Hoo colA Las conexiones citadas se indican como puntos de interseccidn posibles de una matriz de linens horizontales y verticales conductores (figura A.117). Un punto 0 uma eruz en tuna interseccién implica que las Ifneas en cuestiGn estén conectadas formando un solo conductor, Puesto que un decodificador de n entradas tiene 2" salidas, y las entradas de cualquier OR se deben poder conectar a cualquiera de dichas salidas, se deduce que cada OR también debe tener 2° entradas, A fin de simplificar el dibujo se usa la representacién de la derecha de la figura A.117, en la cual cada 1ea de una OR representa sus 2" entradas reales. Con esta convencién, el circuito de la figura A.116 puede representarse como en la figura A.118, donde cada “cruz” sobre una misma vertical implica una entrada distinta de la OR fen cuestién conectada a la salida correspondiente del decodificador. © sea que en esta representacién, una OR tiene tantas entradas como intersecciones posibles tenga la linea que Mega a ella com> Asf, las 9 eruces de interseccién a la Linea que va a la OR que genera P, simbolizan 9 entradas de esa OR, que estin conectadas a 9 salidas del decodificador, como se dibujé en la . figura A.118 Las cruces corresponden 2 los “unos” que cada funcién presenta (figura A.115) moUroO-1-000mMo Si en las entradas de la ROM se aplicara la combinacién 0000, solamente la salida del decodificador my = A.B.C.D valdré 1. Como en las intersecciones de la linea horizontal mg con las verticals de las OR no hay ninguna cruz, significa que ninguna entrada de las OR est conectada a la linea mg, para recibir el "uno" que ella genera. En consecuencia, para dicha combinacién 0000, las cuatro salidas estardn en 0. a Ma aa Y_ Suponiendo que en AJB,C\D se tenga luego O110, ser: mg = A.B.C.D = 1, por lo que dicho 1 se comunicard a las Figura A.116 correspondientes entradas de las OR que generarin We Y, dado que existen “eruces" de ere cdo en ta interseecién de Us4s, 1a lines horizontal de mg con las vertcales que van a esas compuertas. Luego, en las salidas PV.W.Y, se tendré 0011 para las entradas 0110. SALIOAS Figura A.117 en la matriz; y genera un 0 si no existe conexi6n alguna, voor DECODIFICADOR de 4a 16 332 EECEEEEPEEEEE Figura A118 Tipos de ROM: Programacién de una ROM Las salidas del decoditicador con las entradas de cada OR determinan una "matriz programable” El usuario puede deci- diren ella, qué OR ir conectada cada salida En este senido se. trata de un disposiivo de légica programable por el usuario, quign debertindicar en una tabla Ge verdad, qué combinaciOn binaria debe darse en as saldas para cada combinacién de bits en las entradas. O sea qué Eonexiones debe tener la matriz para que ello tenga lugar Un tipo de ROM corriente viene de fabric con todas las conextones de la mattiz realzadas(figra’A.119), por lo que! proceso de "grabacién” consiste en destruir (mediante Eomieneseléercas espcificas generadas por un dispositive xpecial) aquellas conexiones que no deben existe, a fin de cutmplir con a tabla citada. AL respeeto obsérvese (fig A118) gjue, por ejemplo, la combinacign de entrada 0110, que hace my ® yenera un Len una salda si existe una conexiGn (eruz) Figura A119 Conforme al grado de reusabilidad que admite la matriz de conexionado, las ROM pueden clasificarse como sigue: 1. ROM programables una sola vez 0 inalterables Una vez realizado el conexionado programado por el usuario, no se puede modifica. 1a ROM con conexionado a pedido (“custom programmed ROM" 0 "masked ROM"): el usuario programa las conexiones que tend la matriz, siendo el fabricante de la ROM quign realiza cl conexionado programado en un proceso complementario a la fabricacién del chip. Su costo s6lo_ se justifica para un consumo masivo de tal chip, tardando cierto tiempo el fabricante en entregarlo Lb PROM ("Programable ROM"): el usuario ademas de especificar la programacién de la matriz, lleva a cabo la misma (o lo encarga a quién provee servicio), en un proceso posterior @ la fabricacién del chip. u4.46 2. ROM reprogramables (RPROM) ': una vez que el usuario configuré la matriz.de conexionado, puede modificarla, ‘de modo de cambiar Ia tabla que cumple la ROM. 2a. EPROM ("Erasable-Programmable ROM"): antes de reconfigurar la matriz, se debe hacer incidir luz U.V. or una “ventana” transparente en la cpsula del chip. Esta acci6n de borrado dura 15'; luego puede reprogramarse 2.b EEPROM 0 E?PROM ("Electrically Erasable PROM") : son EPROM cuyo borrado se hace eléctricamente, sin luz UV, hasta 10,000 veces, pudiéndose seleccionar la palabra que se quiere borrar y reescribir, sin borrar toda la ROM. Ademés esto puede hacerse sin sacar la pastilla ROM del circuito. 2. “Flash” ROM es un tipo de EEPROM, cuyo borrado eléctrico es tol (como la EPROM), sin seleccisn, La ROM como memoria ‘Seatn se vi, una ROM circuitalmente es una légica combinacional AND-OR, sin ningsin lazo de realimentaci6n entcesalidas y entradas, con la particularidad de que en el circuito integrado puede configurarse el conexionado entre las compuertas AND y OR. ‘Como tal se ejemplificé la figura A.118, donde las AND estén en el decodificador ‘Una vez configurada la matrz de conexionado, como todo circuito combinacional, para cada combinacién presente en sus entradas, responde en sus salidas siempre con una combinacién determinada, conforme a una tabla, O sea transforma cada ‘combinacién de entrada en otra de salida que le corresponde untvocamente segiin dicha tabla, Los unos y ceros de las funciones de salida de esta tabla pueden verse como almacenados en la matriz de conexiones, como surge de compara la figuras A.115 y A.118 ‘Asi, puede pensarse que esa informacidn se almacené cuande se programé la ROM, la cual obviamente se mantendré aungue se corte el suministro de energia a a pasilla ‘Un usuario que no conozca la estructura légica interna de una ROM de n entradas y m salidas, puede imaginarla como una caja negra donde estin memorizadas las 2° combinaciones binarias de m bits cada una, pudiendo aparecer cada una de ellas en la salidas, cada vez que se aplica en las entradas la combinaci6n correspondiente Para él, las combinaciones que aplica en las entradas de la ROM son "direcciones" que permiten localizar directamente sin 0010 —+ 0001 —> 1000 —+ 0100 —> 0010—> . Decimos que el presente circuito presenta 4 “estados”, o que sigue un eédigo compuesto por 4 estados.! = == | QQ QQ eS JL ‘in ck Sap Sy r 2 SES _——— a Figura A141 aL 0S 1 0 . ose Ss 0 Figura A.142 El circuito dado puede usarse como contador de la cantidad de pulsos que entraron por Ia entrada Ck. Si el estado inicial 0100 se usa para indicar que no entré ningén pulso, el estado siguiente, 0010 (determinable en los cables de salida Qs Q2 Q1 Qo ) implica que entr6 un pulso por Ck. Los estados 0001 y 1000 significan que entraron dos y tres pulsos, espectivamente. Tres seria el nimero maximo de pulsos que podria contar este circuito, pues el estado siguiente (0100 representa que no entré pulso alguno? Ctra aplicacién del mismo circuito como generador de secuencias de combinaciones binarias (secuenciador). Suponiendo que cada milisegundo se recibe un pulso por Ck, a igual ritmo en las salidas Qs Qs Qi Qo se sucederd la secuencia 0100 —> 0010 —> 0001 —> 1000 T Un flip flop presenta dos estados: Oy 1. Con dos flip flops es posible encontrar en sus slid las combinaciones de estados OD. 01. 10,11, sein f estado particular en que se encuentre cada uno de ellos, o Sea son posiles 4 estados. Tres flip flops permiten define 8 estadosdistintos, del 000 al Mee Se tala siempre de un nimero finite de estados, pudiendo un eieuitos evoluciones automiticamente de un estado a otro eon cada puso reo sigulendo una secuencia de stados que comprenie aguios 0 alos los 2" cstados posbles que pueden abtenerte con n Mip Hops eee mismo modo, cl cuenta vueltas de-un pasacasetes que va Je 000 a 999, cuenta hasta 999, pues el estado 000 indica eomienzo de mucva U4-58 Si el circuito ademés tiene Ia posibilidad de carga en paralelo, como el registro universal de la figura A 140, luego de un primer pulso se podrd conseguir que aparezca otra combinacién distinta de las anteriores, por ejemplo, la 1101. Con los pulsos siguientes se comportaré como el circuito de la figura A141, resultando ahora la secuencia: 101 11105 O111 5 1011 > 1101 > Figura A.143, Puede verificarse que el circuito de la figura A.143, también basado en un registro de desplazamiento, sigue la secuencia: 1111 > 0111 — 0011 — 0001 — 1000 -> 0100 > 0010 -> 1001 > 1100 1110 > 1111 > En general, si se tiene un conjunto de flip flops y compuertas, puede conseguirse que a partir de una primer combinacién dada, se generen secuencias fijas compuestas por un niimero predeterminado de combinaciones binarias. Un secuenciador de este tipo se usa en ciertos procesadores para generar la secuencia de combinaciones binarias que debe aparecer en las salidas de la UC (Ver Unidad 1) para controlar la ejecucién de cada instruccién. A la entrada de Ck de este circuito Hegan los pulsos del oscilador a cristal que Ilegan a la UC (por ejemplo de 100 Mhz). Cada cédigo de instruccién desencadena una secuencia distinta de combinaciones.Este circuito cumple las mismas funciones que la ROM de Control, pero puede permitir una mayor velocidad de generacién de combinaciones. ‘También es factible construir circuitos que sigan una secuencia de combinaciones de nimeros binarios sucesivos a partir de un niimero inicial cualquiera. Por ejemplo: 1011000 —> 1011001 —> 1011010 -» 1011011 -> 1011100 . EI denominado contador de programa © registro puntero de instruccién (IP) opera de este modo, controlado por la UC, para formar la direccién de memo- ria donde se encuentra la siguiente instruccién a ejecutar. Este contador progresa continuamente hasta que una instrucciGn de salto ordena que su valor cambie abruptamente. A partir del nue- vo valor indicado por dicha instruccién, Figura A.144 el circuito comienza una nueva cuenta progresiva, y asf de seguido. Se usa también un contador progresivo para Hevar registro del reloj-calendario de un computador, el cual ick progresa merced a pulsos que Ilegan regularmente generados por un | { f 7 oscilador a cristal destinado a tal fin La figura A.144 ilustra un contador progresivo que genera ia }L__._secuencia (indicada temporalmente en la fig A.145) en Q2Q1Q0 (000 ~ 001 > 010 -+ 011 -> 100+ 101 -> 110 111 - 000 > (cada flecha indica un pulso reloj) En el flip flop de salida Qo, la entrada D tiene siempre valor contrario a Qo, por lo que con cada pulso reloj la salida Qo cambia de valor, como debe ser segdn se observa en la secuencia dada. ‘También de ella surge que la salida Qy cambia de valor siempre que en el estado anterior haya sido Qo= I. En el flip flop de salida Qy el valor de su entrada D; depende de la salida de una X-OR. Figura A.145 Esta tendra valor opuesto al de Q; toda vez que Qy=I, pues la salida de una X-OR niega el valor de una entrada (Qi) sila otra (Qa) vale 1 (como se vid en la seccién A.18). De esta forma Q cambiard de valor toda vez que legue un pulso reloj, si antes era Qo = 1, como exige la secuencia, Igualmente de ésta se deduce que Qz cambia de valor si en el u4s9 estado anterior eran Qy = 1 y Qo=I. Esto mismo ocurre con el flip flop de salida Qz, cuya entrada Dg serd contraria a Qy si antes que llegue un pulso reloj son Q1= 1 y Qo=l. Al.31 Estructura bésica de una RAM estatica (SRAM) ‘Una memoria RAM que almacena cada bit mediante un flip flop se denomina “estdtica” ("Static RAM”-SRAM) La pequeiia SRAM de la figura A.146 con 4 celdas de 3 bits (4x3) servird de modelo generalizable para cualquier otra de man bits 1-02 : Figura A.146 4.60 Cada fila de 3 fip flops constituye una celda que puede ser seleccionada para ser escrita 0 lefda, mediante una de las 4 salidas del decodificador. Suponiendo que se quiere acceder a la celda sombreada, de direccién Arg = 10, entonces s6lo a salida del decodificador designada 10 valdré 1, por lo que una de las entradas de cada una de las compuertas AND sombreadas también estara en 1. ‘Si se quiere memorizar (escribir) los bits 110, en las entradas de datos D;D,Dp deberé estar presente dicha ‘combinacidn, la cual apareceré en las correspondientes entradas D de los flip flops de cada una de las celdas, A continuaci6n deberd levarse a 1 el cable de escritura/lectura (F/L=1), con lo cual s6lo valdriin 1 las entradass Ck de los 3 ip flops de la celda direccionada, dado que la compuerta AND que ataca esas entradas Ck es la tinica que ticne sus dos entradas en 1. Como consecuencia, los 3 biestables almacenarén la combinacién 110 -segtin indican las salidas Q- conforme al valor presente en la entrada D de cada uno. Luego debe hacerse E/L = 0 (orden de lcctura), para evitar nuevas escrituras no deseadas en la celda direccionada, En el supuesto que més tarde se quiera leer el contenido de Ia celda antes escrita, con Ia linea E/L= 0 (lectura), simplemente se direcciona la misma (AyAg = 10). Las 3 compuertas AND repetirdn en su salida el valor existente en las respectivas salidas Q, dado que son las dnicas con una entrada en 1. Las restantes salidas de las compuertas AND, ligadas a las salidas de la RAM estarén en 0, como se indica, Por lo tanto, en las salidas 00,0, se tendré la combinacién 110. A1.32 Estructura basica de una RAM dindmica (DRAM) En las memorias RAM dindnicas (DRAM), cad bit no se almacena como en las SRAM en un flip flop constuido con 4 6 6 transistores MOS (figura A.147), sino que la celda de almacenamiento (Figura A. 148) puede estar constituida por un solo transistor MOS que oficia de Have, cuya pequefa capacitancia pardsta C de uno de sus terminales se usa para almacenar un bit Por ejemplo 0 cuando C esta descargado y 1 cuando € estécargado) vizontal Esto permite en las DRAM lograr grandes densidades de sefecn integracién por pastila (6 6 4 seleccion i veces mis que las SRAM, columna Nnga sefeocon horzontal segiin los transistores que ésta tenga por celda), un bajo a. a consumo de corrente cuando a la memoria no es accedida, y L Te una economia de costo por bit almacenado. Las DRAM en el presente se construyen en Figura A.147 Figura A.148 tecnologia CMOS con 4 Mbits por pastilla, y con tiempos de acceso de 60 nsez Por las fugas de corriente siempre presentes, el capacitor de cada celda puede mantener su carga unos 10 - 20 mseg.. raz6n por la que es necesario recargarlo antes que Iranscurra ese tiempo, operaciGn conocida como "refresco”. Este movimiento permanente de ceargasa eléctricas requerido para mantener los datos almacenados que caracteriza a estas memorias, determina su denominaciGn “"dindmicas" para estas RAM. En contraposicién, en las SRAM los datos almacenados se mantienen indefinidamente en Mip flops (mientras no se corte ta cenergfa o se escriban nuevos datos) Las DRAM requieren un circuito de refresco y tienen comparativamente tiempos de acceso casi 6 veces mayores que fas SRAM ‘suponiendo igual tecnologia de los trarsistores ) Estas tiltimas mds files de operar, y aunque son proporcionalmente més caras, en aplicaciones donde se requiere rapidez, como en las memorias "cache" de un computador, son insustitubles. Esquema de funcionamiento de una DRAM de 64Kx1 Desarrollando un modelo planteado por H. Taub!, se describe a continuaciGn la estructura interna bésica (figura A.151) y las ‘operaciones de lectura, escritura y refresco de una DRAM de 64K x 1 (65536 palabras de I bit, guardadas en igural nimero de ccapacitores designados Cy a Cgss35) La disposicién de patas de Ia pastilla de esta DRAM se indica en la figura A.149, Esta deseripeién puede ser util para comprender el funcionamiento de otras DRAM de mayor capacidad. La capacidad de una DRAM se considera como el mimero total de bits que almacena. Asi una de 256K x 4 (figura A.150) ces una "DRAM de I Mbit", 0 sea se especifica en bits, no en bytes. | En su obra *Ciruitos Digitales y Microprocesadores” (Me Graw Hill- 1982) Us.61 soo. Proceso que tiene lugar en la lectura de una celda: ; Suponiendo que se quicre leer la posicién 1111111100000001 = FFO1y, Yi +=65281p, y que la linea R/WE-= 1 (leturs), los pasos a seguir hasta obtener en Dg oe Dig — str {ei bit almacenado en esa posicin, son los siguientes: =f DIO — 1. fs Se debe colocaren ls tneas de direcciones Ay = Ag de la pastilla (figura A.149) THs POF os 8 bits menos sgntetvos (0000000) ce a direecién, y nego (igura A.152 Jaks 010} — activarta sonal RAS (Row Address Strobe), sel de sincronismo para drecciones ices. de filas de la matiz de memoria. RINE Después del flanco descendente de RAS esos 8 bits se almacenan en el registro tipo "latch" (figura A.132) de direcciones de fils, por lo que en sus salidas se i om {ended también 000000012 , a igual que en las entradas del decodificador de fila, 6K BAK x4 4que asf activard na de sus 2° Kneas de said, seleccionsndota igure A149 rou aso PA 0000001 Se eta ainea N° 1 (en azo mis rus) co local 0 256 transistores MOS conectados a ella pasan al estado de conduccién, equivaliendo a Haves cerradas, como se indica en grisado, y los 256 capacitores (Cy, Cogy +» Cgspgz) de las 256 celdas correspondientes a esa linea horizontal quedan conectados a las 256 lineas verticales de sensado de bits. Los restantes (2'6-256) transistores MOS ‘mangjados por las 255 salidas del decodificador desactivadas, se comportan como Haves abiertas. En consecuencia los capacitores de las celdas vinculados a los mismos, quedarén desconectados de las 256 lineas verticales citadas Lb ‘Asimismo, luego de la activacién de RAS tos 256 sensores-amplificadores*-biestables (SAB) conectados a las 256 lineas verticales sensarén y almacenarén con valores de tensi6n apropiados, el estado 1 6 0 en que se encuentra cada capacitor de las 256 Celdas seleccionadas por la salida del decodificador activada. Esto se ha querido simbolizar con los 1 y 0 dibujados en las salidas de Tos SAB, que repiten los valores que supuestamente almacenan las celdas. De esta forma, los 256 SAB se comportan en defintiva como un registro de 256 bits luego de haber sensado y amplificado las tensiones existentes en los 256 capacitores de las celdas seleccionadas por la linea del decodificador activada. 2 ‘A-continuacién se debe colocar en Aq -« Ag de la pastlla la otra mitad superior de Ia direccién (Ays = Ag que es HIIIIII1 en ruestro ejemplo) y activar la sefial CAS (Column Address Strobe), seflal de sineronismo para direceiones de columnas, conforme a la figura A152 ‘Ahora, luego del flanco de caida de GAS, se habriin almacenado esos § bits en el registro “latch” de direcciones de columnas, por lo que en sus salidas se tendré 11111111= 255p. al igual que en las entradas del decodificador de columnas. que asf entre sus 256 falidas activard s6lo la N° 255 (en trazo més grueso). En consecuencia, el transistor MOS conectado a dicha salida queda en el Estado de conduccién, como una llave cerrada, resultando sélo conectada a la salida Dg la linea que se queria leer. Los restantes 255 transistores MOS conectados a las salidas del decodificador desactivadas quedan abiertos. En definitiva, colocando en las entradas Aq «.. Ag de la pastilla primero Ia porcidn inferior y luego la superior de la direcci6n a leer, y en correspondencia activando RAS y después CAS, se habrd realizado wn multiplexado (0 sea primero sobre ésas lineas se seleccionan Aq vu Ag y luego sobre las mismas Ays ~~ Ag) de dicha direccién, quedando dichas porciones repartidas en dos registros cuyas salidas van a sendos decodificadores, activindose asi una salida en cada uno. ‘La salida del decodificador de lineas permite seleccionar 256 celdas del total de 2!6=65536, cuyos capacitores quedan conectados a las 256 lineas de sensado, y ast pasan los 256 bits que guardan dichas celdas a los 256 hiestables que constituyen los SAB. ‘La salida del decodificador de colunnas selecciona cusil de esos 256 SAB transmitind el valor de su salida al terminal de salida (oupui) Do realizandose de hecho en la lectura un mudtplexado de las colunnas de fa matrizde almacenarniento ‘Puede vonsiderarse que se ha seleccionado la celda en grisado correspondiente a la direccién 1111111100000001, y que el bit que ella almacena Cage esta presente para ser leido en la sada Dg (conectada al exterior por estar cerrada Ia Have que simula un dispositive “wi-state” comandado porla compuerta AND, dado que R/WE-= | en la letura y CAS esta ativada)* Testo aparece en la figura A.152 como dato de salida vilido leido, luego de un tiempo de acceso trae (que es el de la DRAM, como ser 70 nseg.) medido desde el flanco de cafda de RAS Debe mencionarse que durante el tiempo tray (fead address hold) los bits de direccién Aq Ag deben permanecer estables ames de poder entrar los bits Ayg -- Ag. Asimimo CAS no puede activarse hasta un laps0 treq luego que se active RAS, para dar tiempo a operar a los SAB. 2 5 bien 00000001 Hlega tambign al registro para direcciones de columnas, por no recibir éste sw sefal de activasién CAS, no registrars dicha combinacion 3 ‘Sense amplifiers" en inglés 4 nuns eseituradicha lave est aber yest cerada la otra Have, gue permite Ta entrada det bit a eseibir por Dy 4.62 5 3 [Linead_ Mientras RAS siga activada, cada SAB mantiene la carga del capacitor de celda conectado a él, resultando sobre éste una tensién Vp o Vy, f L Mo ab} 2 g i 2 = Linea segsin sea. Luego del proximo flanco ae 218 ascedente de RAS los cambios que ih et] 3 tengan lugar en las entradas Ay a z & pueden hacer cambiar las salidas del rales a8 registro latch de filas, yen is StS consonancia el decodificador puede be els inea 255 cambiar las 256 celdas seleccionadas Entonces los 256 transistores MOS de 14 las celdes. antes. scleecionadas ot nuestro ejemplo por la linea N°l) or fequivaldrin a tlaves abieras, y los 01 capacitores de cxldas quedarén o7 tslados de las columnas, pasando a 01 fetener un I si estaban cargados, 6 un ot 0 si no lo estaban. ot gaByee! 95. biestables de los 256 SAB Ate 255} quedarin reteniendo el bit que Stoncenaban, 7 micas sign ace | GAS. la sdide del SAB de la | Colonna ‘antes seleccionada. por el | ansisor "MOS. cenado. seguit | comunicando su velo ala slide Dy | Cuando GAS se desactiva Guego © junto a RAS), a sala Dy pasar al fever estado de alta iepedancie™ (Gamo a stir exces, Slade, desputs doun tiempo tot Refresco de una DRAM: En cada conjunto horizontal de 256 ccapacitores de celdas una vez que se desconecta de las 256 columnas, aquellos que guardan un 1 presentan el problema de que Is tensién Vg — due les habfan comunicado los SAB TTT DECODIFICADOR COLUMNAS. ale LG REGISTRO PARA COLUMNAS. correspondientes= va disminuyenéo con el tiempo, pues estos capacitoes se van descargando por corrientes de pérdidas Con la tecnologia actual se puede sensar correctamente el valor Vy hasia un tiempo de 10 42.20 mseg luego que cada conjunto se descone:t6 de las colummas, — necesitindose —recargar ("refrescar’) los 256 capacitores del mismo luego de ese lapso especificado para cada tipo de DRAM. Obsérvese que tanto en Ia letura como en la escritura de una celda, con Ia activacién de RAS por el solo hecho de direccionara, se selecciona uno de dichos conjuntos de 256 capacitores gue se conectarn alas 256 columns. Segtn se vi6, en el sensado se descargan aquellos capacitores que estaban cargados guardando un 1 volviéndolos a recargarenseguids los SAB hasta Figura A.152 la tensiGn qq Ahora bien, es evidente que las lecturas 0 eserturas al azat en una DRAM como tn dibujada en Ia figura A.151 no garantizan que cada uno de los 256 conjuntos de 256 celdas sea reftescadosistematicamente antes de que sus capactores cargados se descarguen al cabo de 10-20 meg. U463 Si con un contador se generan en las entradas Az. Ag dela pastilla las 256 combinaciones progresivas 00000000 —> 00000001 > sae 911111111 => 00000000 =»... activando luego de aplicar cada una la entrada RAS, y se vuelve por ejemplo « 00000000 cada 10 mseg, se refrescardn las 65536 celdas de la DRAM en grupos de 256, Esta forma de refescar se conoce como "refresco con RAS solamente" ("RAS-only refresh"), dado que debe variarse la direccién de fila y s6lo activar RAS. Las entradas CAS, R/WE y Dj deben quedar altas. No se puede acceder a la DRAM para lectura o escritura durante cada refresco Si se debe volver refrescar cada fila de celdas al cabo de 10 mseg, entre dos combinaciones que genera el contador deben mediar omseg/256 = 0,04 mseg = 40000 nseg ‘Asummiendo que una operacién de refresco tarda 300 nseg, resulta que ocupa tan solo 300/40000 = 0,75% del tiempo que media entre dicha operacin y la siguiente. Osea resta menos del 14% al tiempo total disponible para leer escribir la DRAM. La estructura de una DRAM permite refrescar conjuntos de celdas, amén de que el multiplexado dela drecei6n en dos porciones permite pastillas con menor cantidad de patas para direcciones. Una eseritura empieza como una lectura, y puede hacerse semejante a ésta, Por ello se dan en la misma figura A.152 ls clos de lectura y escritura. La entrada D, (con el bit a grabar) queda conectada al SAB seleccionado, que lo pasaré a la celda antes seleccionada mediante RAS. Para manejar 8 bits hacen falta 8 pastas como la descripta, A1.33 Estructura basica de una PAL® ENTRADAS ENTRADAS Los citcuitos ROM como los —_ PAL®! ("Programmable Array ae 4 iG Logic”) son circuits integraos en gran escala ("Large Seale Integration” LSI) de ‘conerio- ado intemo programable CProgranmables Loge. Det ces"-PLD). Son ciclo I6gh os cays funcign la determina el proyectita después que fue fe Ericad ol chip correspondiente En ambos casos se tala en cecncia. de una. disposicien © arreglo (“array”) de compuer- tas AND-OR. (figura A.153) 2 fu el cunt cf umumtio. pecde Se conectarén entre sf infema- Irenteineas horizontals y i “salons veticales a fin de contr un Figura A.153 Ciruito combinacional que To. ponda a una clea tabla de Nerdad, Esto ya se tis en las OQOUT TL ROM (figuras A.116 a A.118) Muchos libros y manuales de fabricantes denominan PLA (“Programable Logic Array") a las PAL®. En éstas se configura la rmatriz de entrada, que determina el productg de variables que genera cada AND (figura A.154), siendo fifo el conexionado entre las salidas de las AND y las entradas de las OR? La figura A.15S es representativa de una PAL programada Esta genera funciones l6gicas del tipo AND-OR negadas, con Ia posibilidad de realimentar el valor de ciertas salidas (negadas © afirmadas) en cualquier entrada de las AND. 1 Siplas registradas por Advanced Micro Devices, Ine 2 Etdibujode la derecha es el mismo que el dela i2quierda, habiéndose seguido por un lado la convenciGn usada en las ROM de representar todas Jas entradas a cada compuerta mediante una sola linea (figura A.117); y por otra parte de un solo tridngulo salen una linea de entrada armada y otra pegada Esto es totalmente opuesto a las PROM (figura A.118), en las cuales es configurable la matriz de salida, siendo fijo el conexionado del Respecto a Z nos encontramos que el cireuito provee tres 1 [AND pot funcién, pero que Z consta de dos productos. A fin Ly | de anular una AND, se dejan conectadas? sus 12 entradas a a4 todas 1as variables, Asi al al hacer el producto de cada variable THT por su negacién (bastarfa una sola variable) para que la salida complemento al médulo. En este caso que usamos n = 3 dfgitos, para cualquier nésncro N entre 001 y 999 se cumpliré, generalizando ‘expresiones usadas més arriba, que N+Cy = 1000 = 103 Para combinaciones de n digitos, se tendré la expresi6n genet: N+ Cy=10" = 1000....0=M Las maquinas operan con niimeros que slo pueden tener un niimero fijo n de digitos (bits en Binario), 0 sea con "formatos" determinados? , de donde resulta que para cada formato de n digitos corresponde un valor de Lmédulo igual a la unidad seguida de n ceros, niimero que en cualquier base se expresa 10% Si operamos en formato de 5 digitos (médulo 10° = 100000), e! ntimero entero -63 se representaria como 99937 = = 1000-63; mientras que +63 serfa 00063, COMPLEMENTO AL “MODULO MENOS UNO" Para obtener 937 = 1000 — 063 hay que efectuar una resta "pidiendo prestado" Esto tiltimo puede evitarse si se hace primero 999 - 063 = 936, y al resultado se le suma uno: 936 + I = 937. Siendo 1000 el médulo, es 999 ef médulo menos uno; por lo que 936 es el complemento al "*médulo menos uno" del niimero N=063, que simbolizaremos C'gg3 [De donde resulta que conviene determinar el complemento al médulo de un nimero calculando su complemento al médulo menos uno y luego sumarle uno: Cy =C'y +1 ' Magnitud es sinénimo de “valor absoluto” . La magnitud de ~80 es el nimero natural 80, que simboliza el nimero de unidades que -80 representa 2 © sea que los némeros de una maquina solo pueden constar de una cantidad fija de digitos, como es de apreciar en una calculadora manual. Se trata de nmeros de “precisién finita”. Debe tenerse presente que la precisin ~relacionada con el nimero de digitos significatvos del resultado de ‘un efleuo, no es fo mismo que la exact. Asf, 3,151.69 es mas preciso que 3.14 pero este titimo es mis exacto para expresa T (pi) ‘Cuando se opera con precisin finita puede suceder que no se cumplan ciertat propiedades de fos nimeros. Asi, dado que en el cuenta vuelas «jempliticado no existen nimeros mayores que 999, ni nimeros menores que 000, pusde que para ciertos némeros no se cumpla que Sea: (A-B)xC = AxC=BxC o que sea (A-B) +C = A~(B + C), sien el lado derecho de esas igualdades AxC , BxC 6 B+C superan 999 v4.79 1.3 Ntmeros binarios con bit de signo, correspondientes a “integers” (enteros) en lenguajes de alto nivel Aplicaremos los conceptos anteriores a los niimeros binarios naturales para representar nimeros binarios enteros. Podemos imaginar un “cuenta-vueltas” binario, constitufdo por un tambor que en su superficie tenga escritas, una debajo de otra, las 16 combinaciones binarias de 4 bits! que van del 0000 al 1111, el cual puede ir hacia adelante 0 retroceder. Si esté en 0000 y retrocede una combinacién se pasa a 1111, del mismo modo que un cuenta-vueltas decimal de 4 digitos (con 10000 némeros decimales) pasarfa de 0000 a 9999, A partir del 0000, avanzando desde el 0001 al GII1, estos niimeros naturales con bit extremo izquierdo 0 corresponderdn a nimeros positivos; mientras que si el tambor retrocede desde el 0000, se tendré 1111, 1110, 1101, hasta el 1000, nimeros naturales con bit extremo izquierdo 1, que pasarén a representar nimeros binarios negativ 1000 111-110 401-100 tt 10 wt Ott 100 tr att att ap 1000 1001 1010 1100 1400 1101 11101111 0000 0001 O10 DIY 100 ator TOON Estos niimeros asf representados se denominan "binarios con bit de signo” o "binarios signados”, y se corresponden con los mimeros binarios enteros positivos y negativos escritos arriba de la recta de la forma indicada. Estamos usando los niimeros naturales con su bit extremo izquierdo de valor uno con dos significados: asf el 1101 ‘como natural simboliza 13p unidades, y como signado el ndmero binario negativo ~1 15 =~3p Dado que estamos usando un bit para el signo, si con 4 bits el nimero natural mayor que se podfa representar es el 1111p = 15p ahora el mayor positivo es el 011 1p = 7p, siendo el mAs negativo el 10003= -10003 = 8p 2 Puesto que el nimero de combinaciones binarias distintas que pueden formarse con 4 bits es 2p = 16p = 100005, dicho niimero constituird e/ médulo para el conjunto de combinaciones dadas, representadas antes sobre una recta. Como en el cuenta-vueltas decimal, también se verifica que la suma de dos combinaciones simétricas cualesquiera respecto del nimero cero da como resultado el médulo: hii oro ori *ooor “rou *1oo1 10000 10000 10000 ete ‘Por'lo| tanto Ia représéntacion de un niimero’negativo és lo que debe sumarse a 1a’ representacién, ee oc 'y viceversa.. Esto-es, segin esta convencién, las representaciones de némeros negatives y cee igual complemeniarias respecto del médulo fs ual nes Esta relaci6n permite determinar el nimero con bit de signo correspondiente a un nimero negativo que se quiere representar, sin necesidad de tener ala vista todas las combinaciones posibles. Por ejemplo, si se quiere conocer para médulo 100005 como se representa con bit de signo el némero —110s, se parte de su positivo 0110 y se halla el complemento de este ntimero al médulo: 1010, combinacién que coincide con la representada para ~110 en la recta antes dibujada Co119 = (10000 - 0110), Obsérvese que en la presente convencién para representar un negativo con bit de signo se usa el complemento a la base del correspondiente positivo (bit de signo cero, por lo que no se trata simplemente de agregar un uno adelante de un mimero natural. Asf, —110p se representa con bit de signo como 1010 y no como 1110 1 Siien se ejemplifica con todas las combinaciones que pueden formarse con 4 bits ~dado que asi pueden tenerse a la vista todos ls nimeros que se pueden representar en este formato el modelo es generalizable para combinaciones de cualguier niimero de bits, del mismo modo que los ‘conceptos-desarollados para el cuenta-yueltas decimal de 3 digitos son apicables a conjuntos de nmeros decimales compuestos por tants diitos ‘como se requiea 2 opsérvese al respecto que en esta convencin siempre el nimero negaivo de mayor magnitud que puede representars, supera en uno al positive ‘de mayor magnitud, Esto se debe a que siendo par el ndmero total de combinaciones, y_presentar el ndmero cero el dfgito 0 como bit de signo, de hecho es un ndmero positivo més. Esto tambign se verifies en el cuenta-vuelis decimal, donde los nimeros extremos eran 99) y ~100, U4-80 Inversamente, si queremos averiguar qué nimero negativo es el 1001 supuesto con bit de signo, su magnitud la calculamos asf: C991 = (10000 — 1001) = 0111. © seaquees el —I11 Las dos restas anteriores requieren "pedir prestado". Para evitar esto conviene como se hizo en base diez en la seccién N1.2~ calcular primero el complemento al "médulo menos uno” (C’), y a éste sumarle uno (Cy = C'x +1) Puesto que operamos con nimeros de 4 bits, el médulo es 10000 (165), y el médulo menos uno seré 1111 (15p) 1 Si queremos calcular C1991 hacemos: ML Observando los ntimeros 1001 y 0110 = C’ygoq, resulta que esta complementacién siempre 1001 puede hacerse directamente, invirtiendo los unos y ceros del mimero por ceros y unos en su 40110 = C/gg, complemento, sin que sea necesario en ‘ningtin caso realizar resta alguna como la efectuada: 1 —1 111-0110. O11 = Cyooy De esto resulta la siguiente Regla prictica para hallar en base dos el complemento al médulo b _EJEMPLOS Aplicaremos los conceptos anteriores a la representacién de nimeros enteros suponiendo una méquina que opera con nimeros binarios de 8 bits ("formato 8"). ‘Con niimeros de 8 bits el médulo ¢s %p = 256y = 100000000, = 10100,,; esto es, la unidad seguida de 8 ceros en binario, que implica que pueden formarse 256p) combinaciones binarias. En este formato, el mayor niimero positive que puede representarse es O1I11111p = 127p, y el negativo de mayor magnitud es Problema directo: representar con bit de signo el nimero ~59p) = ~111011 . Para ello seguiremos los siguientes pasos: 1. Representamos 59 como binario natural: 39 = 1n0lt 2, representamos +59 con bit de signo completando con ceros el formato? +59 = 00111011 J 3 cambiamos los ceros por unos y 1s unos por ceros (complemento M-1)4 11000100 4. sumamos 1 al complemento al médulo menos uno * 1 11000101 La combinacién binaria asf obtenida representa — con la convencién del complemento al médulo o a la base~ e! imero negativo con bit de signo buscado. No debe perderse de vista, conceptualmente, que los pasos indicados sirven en esencia para obtener sin “pedir 1000101 [prestado” el resultado de la resta: Copy 1014 = 100000000 ~ 00111011 Por lo tanto, en formato 8 resulté —59p = —111011p= 1100010 1p 5 (ACLARACION CONCEPTUAL) Es importante realizar en orden los cuatro pasos indicados, so pena de no llegar al resultado correcto. 1 En general, para nimeros dem bits, el midula serd la unidad seguida dem ceros 10"), yel midilo menos uno estard constituide por n unos Tambien denominado “complemento alu base" 0 "complemento a dos 3 Expositive debe tener por lo menas un cero, sino implica que el mimero en cuestiin no se puede representa. oorrtott A perert Vale decirsehaefectuado: 11000100 +1 = 11000101 ‘Observese al respecto el cuidado que debe tenerse de parti de la iequterda para dicho formato, para no incur en erores, 5 Usamos el simbolo = para indicar que el -111011 coincide en representacién con el binario natural 11000101, ya que no se trata de una Igualdad,, Puesto que 11000101 = 100000000 ~ 111011, Ia igualdad formal es 11000101 =~111011 + 190000000, acorde con to expresado que et complemento de un nimero es igual a su negativo excedida en el médulo, siendo que 11000101 = ~1101I simboliza una convencién, ya sealada al tratr los ndmeros decimals con digito de signo. lel numero positivo que en el formato dado tenga correctamente completados los ceros ssl Conforme se efectué, un mimero positive con bit de signo simplemente resulta de agregar a su magnitud (nimero natural) uno o més ceros a la izquierda hasta completar el formato, Esto es, un niimero positive debe tener al menos un cero en su extremo izquierdo (correspondiente a su signo). Problema inverso: qué nimero entero es el representado por el 11010110, supuesto con bit de signo! Puesto que el bit de signo es 1, es un entero negativo, cuya magnitud hay que determinar, hallando su simétrico positivo, que serd el complemento al médulo de 11010110. Para haltarlo, invertimos este mimero y sumamos uno? La magnitud 0 valor absoluto de 11010110 sera su complemento (simétrico positivo): Cy 010110 = 00101001 + 1 = 00101010; por fo tanto 1101011 Se puede egar al mismo resultado si al bit de signo se le da el valor ~128, y a los siguientes 64, 32, 16, 8, 4,2, 1 ‘Ast resulta: 11010110 = [1x (-128) + 1x64-+ 0x 32 + 1x16 + Ox8 + Ix4 + 1x24 Ox1Jp = (+128 + 86)p = ~42y Propagacién de signo COltra importante conclusiOn puede extraetse del siguiente ejercicio: representar ~59 con 16 bits En formato 16 serd 59 = 00000000001 11011, y su complemento a médulo seré LLL1111111000100 + 1 = 1111111111000101 Comparando con la misma representacién de -59 realizada mas arriba en formato 8, resulta que ahora se tiene el rismo ntimero con ocho unos mas ala izquierda, de donde se deduce que: 11101 39 Cuando se tiene un nimero con bit de signo negativo, si se agregan unos a la izquierda del mismo, et mimero no cambia; de manera andloga que si a un niimero positivo se le escriben ceros a la izquierda. Por lo tanto, cuando se debe pasar un mimero con bit de signo negativo (positivo) a un formato mayor, se le deben agregar unos (ceros) hasta completar el nuevo formato, accién que se conoce como “propagacién del signo"” Valores extremos representables con bit de signo en un formato dado Determinaremos en base diez los valores limites que existen para niimeros de 4 bits con bit de signo, y encontraremos una expresién generalizable para cualquicr nimero de bits. Para n= 4, el mas positivo es +Nmax = OU Is = T= (B-p= Q2*=Do = 2*'=p= "Vp 8 = 2 p= 2" yeel mas negativo es —Nyyax = 10005 = Pot lo tanto, para m bits el rango de valores representables con bit de signo, en base diez vade -2"* a 2™'—1 Para n= 8 bits resulta: +Ninax BT y -Nmax ~128 Por lo general cuando en un lenguaje de alto nivel se definen “integers”, sin més aditamentos, el compilador una subrutina los traduce a binarios con bit de signo en formato de 16 bits. Aplicando las expresiones anteriores, resulta un rango entre -32768 y + 32767, siendo que los niimeros correspondientes son: —1000000000000000p (15 ceros) y ONNILITIHII11111p (15 unos) El rango hallado también corresponde a cualquier procesador con palabra de 16 bits, como el 80286, Resula relevante compararlo con el del 80386 6 el 486, de 32 bit: 7 Nmax = [10000...(31 ceros)..0}p = (-231)p ~ (-2x10 Joy +Nmax = {10000...(31 ceros). OQ], = (2! =1)p = 2x10'p ‘También es util notar que 31 bits dan lugar a 9 digitos decimales, 0 sea 31/9 = 3,5 bits por cada digito decimal, relacién que también puede demostrarse matemiticamente. ‘Se debe tetet presente que si Se San ndmeros binarios ‘como magnitudes (mimeros naturales), partiendo’ de que pata n=4 bits el rango representable va de 0000 a 1111 = 2-1 = 15, sise generaliza para cualquier formato n, el rango irdde cero a 2"=1. Para igual n se duplica la magnitud maxima respecto de los nimeros con bit de Signo’ 1 Como natural seria el 214, segtin puede verficarse ‘Ast evitamas hacer la esta; 100000000 — 11010110 = 00101010 = Cy 019110 4-82 Recapitulaci6n de la representacién de enteros como binarios con bit de signo: > Los niimeros positives son los naturales con bit de signo 0 como bit extremo izquierdo en un formato dado| (pudiendo existir mas ceros a la izquierda de la magnitud, hasta completar dicho formato) + Un negativo con bit de signo es e! complemento al médulo (Cy) de su positive N (bit de signo 0), debiendo| presentar por lo tanto un bit de signo 1 como bit extremo izquierdo en su representacién en un formato dado, (Puede verse el complemento Cjy como el negativo -N excedido en el médulo: Cy =-N +M) + Los dos parrafos anteriores pueden resumirse asi: los néimeros binarios con bit de signo positive son los} naturales con ceros a la izquierda, y los negativos son los que resultan de complementar a los primeros © Un miimero negativo (positivo) no cambia si se le agregan unos (ceros) a la izquierda de su bit de signo, pasando ser el bit extremo izquierdo el bit de signo ("propagacién de signo") © La magnitud de un niimero positivo (bit de signo 0) es directamente la del niimero natural que esté a la derecha de su bit de signo. En cambio la magnitud de un negativo (bit de signo 1) se halla haciendo el complemento al médulo de su representacién, para lo cual se_deben invertir todos sus bits (inclufdo el bit de signo) y sumar uno N.2 Suma de binarios enteros representados con bit de signo Al definir la convencién usada para representar niimeros binarios con bit de signo, se vi6 que uno de sus objetivos cera poder sumarlos como binarios naturales, asi los circuitos desarrollados para éstos sirvan también para los primeros Dado que los niéimeros con bit de signo positivo son naturales con uno o més ceros a la izquierda, sumar dos positivos sera como sumar naturales. Por ejemplo: 00001101 + 01010001 = 01011110 En la convencién de bit de signo definida, un entero negativo -N es el complemento Cy de su positivo N. Siendo N + Cy = M, puede verse a Cry como el negativo -N excedido en el médulo: Cy =-N+M Suma de numeros de signo opuesto con resultado positivo = (43p) + (8p) = 101011 + (-1000) en formato 8 1000 = -00001000 = 11110111 + 1= 11111000 p _ Realizar con bit de signo (A) + (-B} 3p = 101011 =00101011 8; Bp + _ 00101011 “8p *11111000 1 00100011 > 00100011 = 100011 = 35, 1 se descarta este uno fuera de formato correspondiente al exceso de 100000000 en el niimero negativo ! Se verifica en base diez que (43p)+(-8p) = 35p_. yen binarios enteros que 101011 + (-1000) = 10011 Ahora analizaremos otra suma de niimeros de signo opuesto, pero con resultado negativo. p _ Efectuar con nimeros con bit de signo (-A) + (B) = (~43p) + (8p) = (“10101 1) + (1000) en formato 8 43 =-101011 =-00101011 = 11010100 + 1= 11010101; 8p = 1000= 00001000 4p > _ 11010101 8p > * 90001000 011101 =~(00100010+1) = 100011 =-35p) 35py yen binarios enteros que (—101011) + (1000) = ~10011 Se verifica en base diez que (43) + 8p) Esta vez el resultado es negativo (bit de signo 1), por lo que su magnitud se determiné invirtiendo sus bits y sumando uno. > TA continuacién se justfcard por qué se descurta el uno que cae fuera de formats en una suma de niimeros con bt de sino, 1000 # 11111000 = Cogg9o4 990 = ~20001000 + 100000000 Entonces al hacer la suma anterior.” OOUO1011 + 11111000 también se esti haciendo: O1OLO11 + (~-00001000 + 100000000) = = (101011) + (-1000) + 100000000 Esto es, la sums de enveros requerida (en negrita) mds un exceso igual al médulo. ‘Asu ver, el resultado de ia suma realizada puede descomponerse asf: 100100011 = 100000000 + 00100011 Por lo tanto este resultado es la suma requerida excedida en 100000000. Este exceso se descarta simplemente no considerando el uno fuera de formato, por lo que que ls bits que est a la derecha del mismo (00100011) son el resultado buscado 2 sustficaremos también para este caso, en el cual no se da un uno fuera de formato, que es correcto sumar numeros signados como si fueran naturales, u483 Suma de dos negativo. -_ Bfcctuar en formato 8 con bit de signo (~A) + (-B) =(43p) + Bp) Aprovechando las representaciones anteriores se tiene: 43> 11010101 85—> *11111000 1 Ti001101 ‘4 este uno no forma parte del resultado 11001101 =~(00110010 + 1) = 110011 =-51p Se verifica que (43) + (-8p) =-SIp_ y en binario (~10101 1) + (-1000) =~ 110011 Nuevamente, por tener el resultado bit de signo negativo, para determinar el resultado como un nimero entero negativo (110011), hubo que hallar el complemento al méulo det primero? ‘Genéralizando:'si en una suma de nimeros considerados con bit de signo aparece un uno fuera‘de formato, ‘el mismo no forma parte del resultado, por tratarse de un exceso respecto de la suma que se quiere realizar N.3 Indicadores de estado SZVC ("flags") En los microprocesadores cada vez que se realiza una operaciGn aritmética o Iégica, el sumador que constituye la Unidad Aritmético-Logica genera, entre otros, 4 bits indicadores ("flags") principales, relacionados con el resultado obtenido, que se conocen por sus iniciales inglesas $,Z,V,C que forman parte del denominado Registro de Estado. Ellos pueden indicar, por ejemplo, si un resultado alcanzado fue 0 no cero, si fue positivo o negativo, si entré 0 no ‘enel formato de operacién y otras caracteristicas a tratar. Como se ejemplificé en la primer unidad, una instruccién de salto estipulada segtin el valor de uno o més de dichos indicadores, ordena al microprocesador seguir ejecutando una u otra de dos secuencias de instrucciones programadas (Coitio se’temares se deduce de las sunias realizadas, la VAL de un computador slo opera aritméticamente'con ‘mimeros binarios naturales. Los mimeros con bit de signo (al igual que los niimeros en BCD) son sumados como naturales,? siendo los negativos mimeros naturales interpretados de otra forma. . ‘Son los programas los que interpretan los resultados de una u otra forma, oe 2 Por ejemplo, en Ja dltima suma realizada: 11010101 + 11111000 = 111001101, interpretada como una suma de imeros con bit de signo, corresponde a la suma de enteros (-43) + (-8) = ~5I, segtin se vi6. Pero también puede interpretarse que se originé en la suma de naturales 213 +248 = 461, como puede verificarse. Un programa desarrollado para enteros consideraré como resultado 11001101, y en caso de tener que convertir este némero a decimal (para mostrarlo en pantalla o imprimirlo) al detectar que el niimero empieza con el bit 1, generard el cédigo ASCII del signo menos. Luego calcularé la magnitud binaria del mismo hallando su complemento al médulo ~ [como se ejemplifics en el segundo y tercer caso de la suma de nimeros con bit de signo de la seccién N.2- , y Jdeterminard qué mimero decimal es. Conocido éste generard el c6digo ASCII de cada uno de los digitos que 1o Jcomponen, de modo que puedan aparecer en pantalla o papel, formando el nimero —51 Si el programa es para naturales (magnitudes) tomara como resultado 111001101, 0 sea que consideraré formando parte del mismo el valor del indicador C, que en este caso vale 1. De tener que imprimirse o visualizarse por pantalla dicho resultado, determinaré que se trata del nimero 461 expresado en c6digo ASCII, sin analizar el bit de signo. {cont) Como en el ejemplo anterior, siendo Cyp}qi9i 1 = LIOIO10L = -0010101 1+ 100000000 La suma 11010101 + 00001000 es equivalente & realizar: -00101011+ 100000000 + 00001000 = (-O0L01011) + (00001000) + 100000000 o sea la sua pedida excedida en el valor del médulo. ‘i reultado de ia sua efectuada, por scr un mimero con bit de signo negativo es el complemento de su correspondiente positive, por lo que también puede expresarse asf: 11011101 = Coigooi1 = ~00100011 + 100900000 © sea que este exceso se pone de manifiesto cuando teterminamos ta magnitad del nero eon bit de Signo negativo, Entonces, el exceso no se manifest6 como wn uno fuera del formato, sino que pas6 a formar pare del resultado en la convencidn del complemento de positives para representar negatives. (Este pérrafo es la continuacién del pie de pégina anterior) 2 Siende: C goyoror1 = 11010101 =-00101011 + 100000000 y Coggqyqgo_ = 11111000 = -00001000 + 199000000 cen este caso hay un doble exceso del médulo, por sumarse dos niémeros negatives representados por su complemento, Se combinan los dos casos Tn consecuencia, uno de dichos exeesos ser el uno que esté fuera de formato, el otro estd formando parte del resultado con bt de signo negativo. 3 Lo anterior implica gue las intrucciones para sumar y restarnimeros naturales 0 enteros som las misias Para el caso de definirse datos “reales” cxisten instruciones para operar aritméticamente en punto fotate, siend el coprocesador matemstco el encargado de ealizaras,y no la UAL, Ud.8d, También ambos programas diferirdn en las instrucciones de salto involucradas, pues las hay para enteros y para naturales. No debe perderse nunca de vista que el tipo de datos definidos en Pascal, C, Basic, etc (integers , magnitudes, reales, etc) determina las instrucciones que el programa compilador deja traducidas en cédigo de méquina La UAL en esencia opera con naturales. Pero como los binarios con bit de signo (provenientes de enteros) en la UAL se suman como naturales, y a fin de que las instrucciones de salto de los programas para ntimeros enteros puedan Jemplearse, de los cuatro indicadores citados SZVC —que genera la UAL luego de cada operacién aritmética~ SVZ se jusan para enteros, y CZ para naturales, como se verg. En cada subconjunto los flags pueden usarse solos 0 combinados Esto es, la UAL “no sabe” si el programa en ejecucidn es para enteros o naturales, y tanto la suma o la resta para Jambos tipos de niimeros las realiza de igual forma. Luego de cada operacién que efectéa, la UAL genera SZVC, y son las instrucciones de salto de los programas que se ejecutan las que preguntan por el valor (0 6 1), de SVZ y CZ segtin sea para enteros o naturales, Ejemplos de utilizacién aparecen en las secuencias de instrucciones de la Unidad 3. Definiremos a continuacién estos indicadores para el resultado de una suma realizada en un formato de n bits: Indicador S de Signo: Serd S=l (signo négaiivo) si el resultado presenta el birde la extrema izquierda del formato con valor X Caso contrario seré S=0 (signo positive). Sélo interesa para operaciones con ntimeros enteros, representados como ntimeros con bit de signo, o sea signados! El formato puede ser de 8, 16,32, 64 bits. Indicador Z. de resultado cero: Solamente seré Z=1 si el resultado es cero ("zero"), 0 sea en caso particular que sean Gerds foday los n bits Wel mismo en el. formato dado. Si como ocurre en Ta mayoria de los casos, el resultado no es cero, seré Z=0 Vale decir, Z=1 significa "si, es cero” 0 €s “cierto que es cero”; y Z=0 "no es cero" 0 “es falso que es cero” Dado que el ntimero cero se representa igual para naturales 0 signados, el indicador Z puede usarse indistintamente para detectar resultado cero en ambos tipos de nimeros. Indicador C de acarreo: ‘Set C=1 si en el resultado de tina suma aparece un uno fueta de formato, o Sea si existe acarteo ("Carry") hacia la posici6n n#1. De no ser asf serd C=0 (C=O es " carry no" y C=Les " carry si") an En una suma de naturales (apéndice unidad 1) si en el resultado hay un uno fuera de un formato n (posicién n+1), el mismo forma parte del mismo, 0 sea que si C=1 el programa debe agregar un uno a los otros n bits del resultado. Dado que la UAL también suma (el complemento del sustraendo) para realizar una resta, ella invierte el valor de C obtenido de esa suma. En una resta interesa si “pido prestado” (“borrow”) © no, suponiendo que la iesta siga en la posici6n né1. Si al sumar para restar es C=1, no “pido prestado” y la UAL indicara C=0; y si es C=0 indicard C=1 Indicador V de "overflow" (“desborde”) ‘Ser V=1'si el resultado de una suma entre ndmieros supuestos con bit de signo excede el mayor valor positive ‘o negativo que se puede representar en el formato dado, Caso contrario ser V=0 ("no overflow") Segtin se calcul6, para un formato de n=8 bits los valores extremos que se pueden representar son +127 y —128p, Para n = 16 los mismos serén 29-11 2767p y ~20-! = 32768, De emplearse n = 32 bits (como operan el 386 y el 486) esos extremos superan los dos mil millones expresados en decimal? Por consiguiente serd V=1 si en un formato de operacién elegido, el resultado positivo o negativo de la suma de dos -ntimeros (que pueden representarse en ese formato) supera el maximo positivo o negativo representable en el mismo No es necesario conocer el valor de un resultado y compararlo con los valores extremos para determinar si hay 0 no overflow. Una forma préctica de determinar esto manualmente consiste en observar simplemente los bits de signo de los sumandos y del resultado, ‘Serd V=0 si sumando dos positives él resultado es positivo: o si sumando dos negatives el resultado €9 negative | Seré V=1 si sumando dos positivos el resultado es negativo; 0 si sumando dos negativos el resultado es positive Eh algunas maiquinas se designa N, inical de negative: nH indica que es cierto que el resultado es negative 10. I 2'%x 2!°,2!°xa! = 1000x1000%1000x2 = 2 Una forma eipida de estimar esto es como sigue; 2" 1000) 000,000,000; siendo 2!°= 1024 = 4-85 Esto es, lo correcto es que sumando positivos el resultado sea positivo, y que al sumar negativos sea también negativo el resultado. De no ser asf, se detecta overflow. Si se suman dos ndmeros de signo contrario jamais puede haber overflow, pues en definitiva se trata de una resta, por Io que su resultado no puede superar en magnitud al mayor de los miimeros restados, » _EJEMPLOS SIN OVERFLOW Pane cums realzadas en la secci6n anterior, las que se agrega (A) + (B) = (43p) + (Bp) s© indican ls valores de SZVC — | oe DOTOTOTS) 2.0 pues resultado #0 Rye Trororoy ea ony pes esta 20 {3 pectromermionesne | OT SS0EHTEG] no pasts oh dt —m/SOTOTOTT] 220 punta #0 | -tagey[FTOTOTDG) 220 pusretatn 20 07419000100 9, Veo puesios sumandos nen = gro | oT voea eo oes ls sumandostenen = sno = | ScHtit i000) Yet po ‘ gr NQOTTOOTA} —— queelresutado GP ATIOOL 101) queelresutado C0 sh | ot oh p EJEMPLOS CON OVERFLOW: efectuar 102 +97p y_ (-102p)+(-97p) en formato 01100110 = (1001 1001 + 1) = 10011010 ~01100001 = (10011110 + 1) = 20011111 102p = 1100110 = 01100110 =102p 97 = 1100001 = 01100001, -91) pues esutado 0 a7gp—et|01 10000 1 Vat pueslssumands teen sare + yp utioaos TT} yelresultado es col” oh, 20 pues resulta 0 pues los sumandos ienan signo — yelresutado es + aye DTTOSTE) En principio se verifica que ambos resultados interpretados con bit de signo estin errados 11000111 57 , debiendo ser 102 +97 = 199! 00111001 = 111001 = 57, debiendo ser—102 + (-97) =-199 'A fin de evitar equivocos comunes, debe subrayarse que el overflow se refiere siempre all desborde en Ia suma 0 reste de ntmeros con bit de signo, y que el mismo no tiene relacién directa con el bit C de "earry"" Sot cntassumes anteriores 43+ (+8) y ~43 + 8) e5 Cal pero no hay overfiow (V0), mientras que en la sums de enteros 10? +97 no hay catty (C=0), pero hay overflow ¢ FExiste una tendencia natural a asociar al overflow en el sentido de "desborde” cuando en wn cleo formato luego de una summa ayatone un uno fuera del mismo (Ce) ta como ocuié en las dos primers suas citadas en primer tésmino. 5) Bien SEE aoe seen Tos naturales dicho uno fuera de formato puede asimiarse aun desbord. de to que se trata es del 199 y en formato 16 ese niimero es 32767 > 199 N4 __ Resta de binarios enteros representados con bit de signo los mimeros con bit de signo se restan sumando al minuendo el complemento all [Como Jos natural médulo del sustraendo: A-B=A+CR Esto es, por ser B+ Cg =M resulta que A-B = A+(-B) = A+Cg~-M; porlo que si para restar A-B sumamos A + Cp. al resultado de la suma hay que restarle ef médulo M, o sea que estd excedido en M. b _EJEMPLOS Primero restaremos, como binarios con bit de signo en formato 8, los enteros en base diez: A - B = (49) ~ A= —49p =~00110001 = (11001110 + 1) = 11001111 B =~95p =-O1011111 = (10100000 + 1) = 10100001 por lo que seré Cy = 01011110 + 1 ‘Como indica la figura siguiente, a la Unidad Aritmética de un computador entran los nimeros a restar ~representados con bit de ste uno se sumaré a la inversa de B para conformar Cp , a fin de realizar A+ Cp =A~B signo- junto con el niimero uno, (Obsérvese que no interesa si en una etapa anterior tuvo lugar una complementacin para representar B como negative con bit de| signo. Tanto en la resta de binarios naturales, como de binarios con bit de signo, la Unidad Aritmética “no sabe que pass antes”: siempre toma al nimero B para luego invertilo y sumarle uno. Asi suma el Cp al minuendo A Asimismo, un computador no convierte la orden de resta (~49) ~ (~95) en -49 +95 haciendo “menos por menos igual a mas” La Unidad Aritmética también generaré los valores de los indicadores SZVC, siendo que en una suma para restar invierte et valor inte del bit que sale fuera del formato correspondiente al valor que tendrd C, como se anticipé al defini éste, y segtin se indica en el esquema siguiente. Verificacién de la operacién de la izquierda: OO101110= +46p = (49) --95)p Ex-profeso se han elegido los niimeros enteros ~49p y-95p, los cuales representados como Nameros a restar 49 =1100111 001111 binarios signados se codifican con las mismas mu ccombinaciones binarias (11001111 y 10100001) 95p=10100001 + orornnta que los mtimeros naturales 207p y 1611) del t primer ejemplo dado en ta resta de naturales (Apéndice numérico de la Unidad 1) Esta coincidencia se ha hecho para remarcar que a U Aritmética no est preparada para distingui nuimeros con bit de sign, sino que opera toda Jas combinaciones binarias que recibe como nme ros naturales, siendo el resultado obtenido ienti 0 al del ejemplo citado con naturales. Vale decir, si suponemos que queremos restar (207-161)p) supuestos naturales, las combinaciones binarias que entran y alen de a Unidad Aritmética serfan las mismas, incluidos los valores de SZVC, dado que estos indicadores se generan automdti-caente, en Prevenci6n de que se opere con naturales o signados. -1 00101110 487 En esencia, lo sinico que interesa son las combinaciones binarias que entran, sin importar si se interpretan como correspondientes a nimeros naturales o signados. Entonces suponiendo que estemos operand con signados, ademés de los indicadores SVZ que interesan para éstos, también se generard el valor de C, usado para naturales; y si operamos con éstos, ademas de CZ. que interesan para ellos, la U. Aritmética generard $ y V, pues ella ‘no sabe” cémo se estén interpretando las combinaciones binarias que recibe, ni las que genera, ‘Bs importante aclarar que si bien el esquema presentado para la U. Aritmética’se ejemplifica pata resias, deusarsé ba suman produce inversion det segundo nero (sotraendo en a test), coi tampoeo GP eeador eel tercer nfimero que entra debe ser 0 en vez de 1 (usado para formar el complemento en la resta),. 7 A continuaci6n, con fines didecticos ejemplificaremos restas con niimeros enteros utilizados en las sumas algebraicas del final de la seccién N.3. Primero se efectuaré AB =(-43)~(8); y luego A-B=(+43)—(+8) Nmeros a restr ~A3pe11010101 11010101 8p 0001 sintont Fely. avons ‘ 1 +20 {OOO 0 ri 11001101 = 00110010 + 1) =-5ip bt e verifia, dado que (~#3) ~ (8) =~ ch shh Hoortot cinema ieee da! Numeros arestar 43y=0010101 §y=00001000- 1 0100011 = 190011 = 35 ura ch sh BIO! Se vetifca, dado que (+43) ~ (+8) =35 El timo ejemplo trata el overflow en restas de binarios signados para cl caso que se quiere efectuar en formato 8 la resta de enteros A ~ B= (102p) = (-97p) ! Nimes aretr rot so2peottooto oir00t0 -srpstooittt 00000 F, o1100000 | 1 20 ‘ TTT | | _Por existir overflow el resultado presenta error por x truncamiento, s6lo rectficable por ampliacién del { { ih formato oh sh Moon! | En generat las restas del tipo A —(-B) pueden dar overflow, dado que en defintiva son equivalentes a la suma A + B (aunque un computador no nace “menos por menos igual a mas”). Lo mismo ocurre com las del tipo ~A ~ (#8), equivalentes ala suma A + (-B). En ambos cass resultan sumas, de dos nimeros del mismo signo 4-88 N5 Los indicadores SZVC en la comparacion de numeros Oe eee eran smears ‘La comparacién entre dos nimeros se lleva a cabo en un computador mediante una instruccién de comparar, que ordena restar el primero menos el segundo en la UAL. Los valores de SZVC generados en esa resta bastan para determinar si el minuendo es mayor, igual, 0 menor que el sustraendo. ‘Como se discutiré, no hace falta conocer el valor concreto del resultado. Safes inmediato que si dos nimeros naturales 0 con bit de signo son iguales, su resta daré cero, por lo que seré Zz=1, de acuerdo como este indicador se ha definido. Entonces puede conocerse si dos ntimeros en cualquier formato: son iguales (Z=1) 0 distntos (Z=0) luego de restaros. Luego de una instruccién de comparacién (resta), otra instruccién (de salto) ordenard, en funcién del valor de Z, que se siga ejecutando una secuencia 0 se pase a otra Discutiremos emo determinar si un numero es mayor o menor que otro, primero para los enteros (nimeros con bit de signo) y luego para los naturales (magnitudes sin signo) Respecto de los mimeros con bit de signo, se debe partir de la base que si el resultado de una resta ¢s positivo (6=0), el minuendo es mayor que el sustraendo; siendo que un nimero positivo es siempre mayor que un negativo, sin importar su magnitud relativa. En relacién con el signo, se debe tener presente, que si el resultado de una resta arroj6 overflow (V=1), implica que el signo del resultado esta invertido respecto del correcto or lo tanto, podemos establecer luego de efectuar una resta A~B entre niimeros supuestos signados: Sino hay overflow (V=0) y es [S=0 resulta ASB resulta A B, pues en el caso que sean iguales, el resultado cero hace que también sea $= 0 Las siguientes consideraciones valen para los nimeros no signados (magnitudes). En la suma efectuada en el apéndice numérico de la Unidad 1 para restar dos binarios naturales A ~ B result6 un 1 fuera de formato, o sea C=1, debiendo ser A 2 B por tratarse de mimeros naturales Se deduce que si al efectuar una resta de naturales (para lo cual la UAL hace A + Cp), el minuendo es mayor 0 igual que el sustraendo serdé C=1_(apareciendo como C=0 en el registro de estado, como indicacién de borrow). Esto puede justificarse como sigue: La resta de naturales a realizares R= A-B=A+(-B)=A+Cp ‘Alefectuar en el ejemplo citado (Formato 8) la suma A + Cy Se esta efectuando: ‘A+ (B) + 100000000 = (A ~ B) + 100000000 = R + 100000000, ‘0 sea que el resultado de la suma contiene la resta R pedida, SiA2B seré A+ Cy = R+ 100000000 2 100000000 por ser R 2.0 Puesto que un resultado 2 100000000 debe toner necesariamente un 1 fuera de formato (correspondiente al bit C), se confirma la regla anterior. En caso de ser A < B sera R <0, con lo cual R + 100000000 < 100000000, por Io que no aparecerd un 1 fuera de formato por tratarse de un resultado menor que 100000000. O sea que sial efectuar una resta de naturales mediante una suma, resulta C=O (que aparece como C=I en el registro de estado), debe ser A BsdlosiS® Us-89 N.6 Numeros binarios fraccionarios el sistema decimal, un ntimero fraccionario se puede expresar como un cociente o mediante una coma. Ast 1/4 = 0,25; 4/3 = 1,33..., etc. En base dos 0 en otra, también podemos representar, con una simbologia semejante, un ingimero que sea menor que la unidad, o que presente una parte entera y otra que es una fracciGn de la unidad. Volviendo a la balanza decimal del apéndice de la Unidad 1, con 9 pesas de 1, 10, 100, .... gramos, si se necesita apreciar fracciones de un gramo, podemos suponer que existen 9 pesas de una décima de gramo (1/10 0,1), 9 pesas de ‘un centésimo de gramos (1/100 = 0,01), etc... Cada 9 pesas que son fraccién de gramo son diez veces menores que las 9 existentes de la medida superior siguiente. Cuando escribimos que un objeto pesa 328,205 la coma indica que el 8 que esté a su izquierda son unidades, y que el 2 de su derecha son decimas de gramo. Esta misma convencién se usa en base dos, pero del mismo modo que a partir de la pesa de 1 gramo hacia arriba, cada pesa es el doble que la medida anterior, las pesas menores que | gramo van en una progresién en que cada pesa es la mitad de la medida mayor anterior, comenzando por la medida de 1/2 gramo, existiendo tanto para las mayores 0 ‘menores de 1 gramo, una pesa de cada tipo. Expresadas en decimal las pesas binarias tendrfan los gramajes: 32g, 16g, 8g, 4g, 2g. Ig, 12g, 14g, 18g, 1/168, ‘presadas en binario serfan: pudiendo existi infinitas medidas hacia un lado u otro 100000g, 10000g, 1000g, 100g, 10g, 1g, 1/10g, 1/100g, 1/1000g, 1/10000g Realizando las divisiones binarias indicadas conforme se vié en el apéndice numérico de la Unidad 1, y usando ‘coma para separar la parte entera de la fraccionaria, también resulta en binario: 1N0=0,1 1/100=0,01 ete, Suponiendo un objeto que pese en decimal 0,75 g. en la balanza con pesas binarias se formaria con una de I/2g y owrade 14g ig + 0,01g= Para cotejar la estructura fraccionaria en bases dos y diez. en las figuras siguientes se ha dibujado la misma fraccién de un cftculo, Dicha fraccién en base diez se forma con 7 agrupamientos de 1/10 de efreulo, més $ de 1/100, mientras que en base dos con una fraccién que es la mitad y otra igual a la cuarta parate del cfrcuto, ‘AL igual que en base diez, en base dos habra fracciones que no puede expresarse mediante un nimero finito de digitos. También ‘como veremos, puede ocurrir que una fraccién representable por lun niimero finito de digitos en base diez, requiera infinitos en base dos. Entonces, del mismo modo que en base diez existen la décima, centésima, milésima, ... parte de la unidad, en base dos, se define la mitad, cuarta, octava, diciseisava, .. parte de la unidad. expresado en binario seria: 1/10g + 1/100g = 1g bp De manera inversa, dado 0,11 en binario, para concer que fraccién decimal se procede como se indica a continuacién: ! 2 a Oly = UD4 May = 05 +025) = 0. A continvacin generalizaemos el método pata pasar a decimal un aiimerobinario con parte entra y decimal rei bee 5 10110,101p = OIN0 101 g =(164442)+(1/2+1/8)p = (2260,625)p v4.90 Regla para convertir un niimero binario con parte fraccionaria a decimal: 1. E1bit que esté ala iquierda de 1a coma binatia le corresponde peso 1 2. A partir del mismo hacia la izquierda los pesos 2, 4,8, 16, .. Se escriben sobre los bits de la parte entera;y hacia la derecha los pesos 1/2, 1/4, 1/8, 1/16, 1/32... sobre los bits fraccionarios. 3, Sesuman los pesos de las posiciones que tengan un uno, y el numero se expresa en decimal El pasaje inverso de decimal a binario se realiza segin la siguiente: Regla para convertir un niimero decimal con partes entera y fraccionaria a binario: 1. Convertir a binario cada parte por separado, La parte entera se convierte por ejemplo conforme al método de las divisiones sucesivas por 2 2. Lapartefraccionaria mediante sucesivas multiplicaciones por 2 3. Sumar ambas porciones antes halladas. _Ejemplo: convertir a binario el niéimero decimal 35,62 = 35 + 0,62 1. 35p = 1000115, 2, Para hallar la parte fraccionaria binaria, se procede como sigue, por sucesivas multiplicaciones por 2 de cada nueva parte fraccionaria decimal (Su justificacién se da en el Apéndice A2) +024 +048 +0,96 +0,92 +0.84 +0,68 +0336 $0.72 2x0.72= 1.44 =1 +044 2x04 =0,88 = 0 + 0,88 Las sucesivas partes enteras halladas (en negrita) conforme van apareciendo, constituyen los bts de la parte fraccionaria binaria (0 sea 0,62 = 0,4001111010, 3, 35-40,62)p = (100011 + 0,1001111010) En este caso se ha interrumpido arbitrariamente el proceso Iuego de haber obtenido una precisién de 10 bits fraccionarios, sin haber aleanzado una parte fraccionaria decimal igual a 0,00 como aparece por ejemplo si se pase 0,75 a binari: 50 =1+0,50 40,00 pudiéndose escribir Ia igualdad 0,75p = 0.115 100011, 10011110105, Puede darse el caso que la determinaciGn anterior no termine nunca, o sea, que un nero decimal con parte fraccionaria pura, en ‘base dos tenga su parte fraccionaria periédica. Por ejemplo, cualguice nimero decimal con parte fraccionaria 0,1 al convetirse en binario Seré periédico, Puede verifcarse que Oly = 0,000115 (periodo en negrita) Este método puede aplicarse para pasar de decimal a cualquier base R, con tal de realizar en decimal el método de las divisiones « multiplicaciones sucesivas por R, para la parte entera y fraccionaria,respectivamente. N.7_ Potenciaciénen cualquier base sr nn En cualquier base, siempre que se tengan p factors iguales de un nimero n, se podrd escribir: nan xnxnx ....nx n= nP segin sea la base, variard la representacién de n y p. Resulla una buena ejercitacin para sistemas numéricos, verifiar las siguientes equivalencias: (1100 x 1100 x 1100) = 1100! = 1235 (10x 10x 10x 10)g = 10000g = 101%, 10100 = 24 = (2x2x2%2p = 16p = 104= 24, v4.91 1000p = 103) = 1010! ly = (1010 x 1010 x 1010)g = 1111101000 1035p = AMY =(AX Ax A) =3E8H 1034 = (10 x 10x 10), = 1000} = 16° p = 4096p 103, = 10000! ly = (10000x10000%10000) = 1000000000000, ‘Dobe eid recto Gis en cualquier base; la anidad seguida de p Gerd puede expresar = cee ae ‘potencia p, simbolizindose 10 la base en todos los sistemas numéricos: sali Ast: 100000g = (10x 10x 10x 10x 10) = 10101 siendo 10g = 2p 10044 = (10x 10)44= 1024 siendo 1044 = 16) Ng Representaci6n en punto flotante de numeros reales declarados como tales en alto nivel ‘Asi como se defini mediante el complemento a dos~ una forma de representar niimeros positivos y negativos mediante el bit cextremo izquierdo, cuando se opera con niimeros que presenten coma se requiere alguna convencidn representarlos mediante combinacione binatias. Las representaciones de mimeros reales en "punto flotante' | (“floating point" = FP) -en castellano coma flotante~ sirven para tal cometido, permitiendo ademds operaciones con magnitudes y resultados dentro de un amplio rango de valores, para aplicaciones desde las comerciales hasta los célculos astronémicos. Ademés, obviamente, se puede operar con nimeros enteros. En esencia se trata de una representacisn de tipo exponencial: N= tmxl0*P ‘semejante a la notacién cientfica decimal, que permite en unos pocos bytes expresar nimeros muy grandes 0 muy pequefios.. ‘Su denominacién se debe a que la posicién del punto (coma), en Ia expresi6n anterior, puede desplazarse en el nimero m de Ia cexpresiGn anterior, sia la par se ajusta el exponente p, para adecuar la representacién de operandos o resultados, si asf se requiere. Esto se vincula con el hecho de que los circuitos para operaciones en punto flotante (coprocesador) determinan en forma automsética el lugar dénde va la coma en cada resultado, desentendiéndose de ello el programador. Cuando un computador no posee tales circuitos, se debe recurrir al software que opera con la UAL para emularlos, a costa de velocidad de procesamiento En notacién cientifica estandar, los nimeros se expresan de la forma: N=:tnEtp = tnx 10*P donde n es un niimero comprendido entre 1 y 10; p es un ntimero entero, p Por ejemplo: 60,0000: 246.3 82000000000 = 8.2 +10=8,2 x 10!0 En el papel n 6 p pueden tomar cualquier valor, mientras que en el visor de una calculadora tienen valores méximos predeterminados. Supongamos que en un cierto formato m y p pueden tener hasta 5 y 2 digitos, respectivamente; y que no escribimos Ta letra E 0 la base 10. ‘Los nimeros anteriores podrfan representarse como sigue: (+3,0000;~05) ; (-2,4636; +02) ; (+8,2000; +10) ‘También diremos que constan de una mantse con 5 digits significativos o de precision, y que cada factor deescala (10-5 107 'y 1010 segtin sea) determina la verdadera posicién de la coma. Normalizacién: "En notacin exponencial siempre es posible correr k lugares la coma a la icquierda (o derecha), si simulténeamente se incrementa (o decrementa) el exponente en un valor k, sin que cambie el valor del niimero representado. ‘Asf, sumando uno a los exponentes de los nimeros anteriores, resulta: osxiont ; 024636108 sx to! Tn contraposicién tos nimeros de “punto fo” 0 “coma fja” en castellano, suponen que la coma debe estar en una posicién fija en un Geterminado formato de bits, seta la conveniencia del céleulo a realizar. En particular si se supone que est luego del bit extremo derecho, se trata de in numero entero. En un formato de 8 bits, estos enteros tienen un rango de 0 a 25S con resoluciGn de una unidad entre una combinacin y la Situient. Si por ejemplo la coma se ubica a a izquiea dl bit mds significative, todos ls nimeros de dicho formato ser fraccionaris, dela forma Dan "Entonces la resolucin pasa a ser 1/256, pero el rango estard slo entre 0 y 1. Vale deci que al aumentar el rango se pierde resolucin. A diferencia, punto flounte permite alta resolucién y rango extens. 4.92 ‘Decimos que se trata de una notacién exponencial "normalizada”, de la forma: mx 10P donde mes la mantisa, siendo de la forma OX1X7...Xq con Xy #0; 0 sea que debe ser distinto de cero el primer digito que sigue a la coma. En general, sera pues 0,1 Como s6lo pueden almacenarse 23 bits de Ia parte fraccionaria, resulta que el ntimero queda truncado, con 8 bits fuera del formato (11111110 = 254). Suponiendo que no exista redondeo para el truncamiento dichos 8 bits se considerarfan eros, por lo que el niimero almacenado serfa 1111111111111111111111100000000 = 4.294.967.294 ~ 25: 4,294,967.040 Se verifica, como se anticip6, que sélo se han conservado intactos 7 digitos de precisiGn. Esto esté de acuerdo con el hecho de que a cada digito decimal le corresponden 3,5 bits, por lo que 23 bits permiten representar 23/3,5 digitos, cociente cercano a7. Punto flotante doble precisin (64 bits) Un Pentium esté preparado para procesar 64 bits en FP, segvin la convencién para este formato del IEEE, el primer bit es el del signo; Iuego siguen 11 bits para el exponente més 1023 de exceso, quedando los 52 bits restantes para representar la parte fraccionaria del nimero normalizado. Esto permite una precisi6n de 52/3,5 dfgitos, cociente cereano als. N.9_Codificacidn y suma en BCD natural Segtin se vi6, para pasar del sistema decimal al binario es necesario realizar una serie de operaciones aritméticas, como en el método manual de las sucesivas divisiones por dos. Los “eédigos BCD" (Binary-Coded-Decimal: decimal codificado en binario) se emplean para convertir directamen- te, sin cAlculo alguno, mimeros decimales en combinaciones binarias, segtin determinadas convenciones, que tienen en comin el hecho de que a cada digito decimal le corresponden 4 bits. La convencién "BCD natural" 0 "BCD 8-4-2-1" atribuye a los s{mbolos decimales la correspondencia binaria dada por Ia tabla de la figura 2.2 que volvemos a repetir: F421 | Daiolin)nitinero cudlquiéra en base diez, para convertirlo a binario BCD ‘Basta 0000 | digito:del mismo por los 4 bits correspondientes HSN 0001 | Esta metodologia de conversién es semejante a la utlizada para pasar de hexadecimal a binario para los 0010 | simbolos del 0 al 9: ooit daateans gant saat 0100 | 8125p 1000000100100101,, 4. 0101 8 i 2 5 0110 | mientras que en el sistema binario se representa oil em eeeatee a at Poon | Sager TOTTH 1b ip 1001 CeWRURGNSS Asimismo, 10, = 00010000,,,, ; siendo en cambio 10,, = 1010, De lo anterior surge claramente, que si bien las conversiones de decimal a BCD, y de hexadecimal a binario natural, se realizan de igual forma, el significado de la combinacin binaria es bien diferente, Se us6 el sfmbolo = para indicar equivalencia de representaci6n entre BCD y decimal, y no el simbolo = , pues se trata de una convencién. El pasaje inverso de BCD a decimal consiste en separar en el niimero binario grupos de 4 bits, y determinar en base diez qué digito decimal representa cada cuarteto: Asi: 0010100100000000 pcp = 2900p L2 JLo JLolLoJ 4-96 En definitiva, podemos sistematizar est6 asf, para indicar que el pasaje es directo s6lo en sentido horizontal Hexadecimal _| simbolo por cuarteto de bits. => Binario natural Decimal € I simbolo por cuarteto de bits = BCD Para pasar de decimal a hexa, o en sentido inverso, hay que hacer jas operaciones indicadas en la unidad 1 ‘Asf:0010100100000000gcp = 2900p = BS4y = 101101010100p ; siendo también: 0010100100000000, = 2900 ‘La desventaja del BCD respecto a los binarios naturales, es que en BCD en un byte se pueden representar combinaciones desde (00 2 99, mientras que con los segundos se puede codificar de 0 a 255, en un byte. Asimismo, solo conviene realizar sobre datos en BCD la suma y testa, existiendo instrucciones para corregir (ajustar) los resultados que se obtienen de sumar cuartetos BCD como si fueran nimeros binarios. En esencia el formato BCD es un buen compromiso entre el tiempo de convertir mimeros de ASCII a binarios ~que en BCD es directo y el tiempo que insumen sumas y restas, que en BCD es bastante corto, segin pods deducirse Suma de niimeros en BCD natural Un método para sumar dos nimeros decimales codificados en BCD *natural” consiste en sumar los euartetos que los consttuyen como si fueran niimeros naturales, y luego sumar 6= 0110, sila suma parcial de dos cuartetes supera 9 = 1001p Esto tiltimo puede ocurrir de dos formas: 1. Si dicha suma resulta con valores 1010 1111 (10p 15p): combinaciones que no son BCD 2 Siellaes 10000, 10001, 10010, 10011 (16p a 19 2 ): combinacién BCD con 1 de acarreo 1p Se-ejemplifica una suma efectuada con este método, aplicable a cualquier niimero de digitos. Las combinaciones a cortegir por no set BCD, 0 por que el uno fuera del cuarteto indica resultado 2 16, se les ha sumado 0110. En negrita aparece el uno de acarreo en decimal y en BCD. 11 1, 1, Is, Para justificar por qué se suma 6, apelaremos 437853—~, 0011") o111"\) 1000) 0101 0041 um cvema-welias binaro. con meron del 12776 ——= 0001 | 0010 / O11} O111 0110 000 al iia sete 16), razonando como ot. —OLLL{ OLE 0110, er dita de a dreca) pati dl 50629 101] 1010 |,10000[ 1100 1001 SSapsananon sonidos ep O10 5 Q 0110 o110 \ 0110 9 y si luego progresamos 7 més se alcanza la eee 100, habia ean la suma S47 = soo90 “40310 “L000 i eee as naturale. La misma suma en el cuenta-vueltas izquierdo para decimales y BCD (con niémeros de 0000 a 1001): si desde el 0101 se avanza 7 posiciones ‘mas se alcanza el 0010 luego de haber dado una vuelta, en correspondencia con el niimero 12 = 0001 0010g¢p Si queremos usar el cuenta-vueltas binario (con 6 pasos més que el otro) para sumar en BCD, cada ver, que al sumar aleanzamos el valor 1001 debemos sumarle 6 = 0110, de modo de pasar al 1111, que est a una unidad det 0000, el mismo modo que lo esti el 1001 respecto del 0000 en el cuenta-vueltas BCD. om Podemos pensar esto titimo como que en cl cuenta vueltas binario la suma 5+7 la realizamos como 5+44+643. Esto es, descom= ponemos 7= 43, para mostrar que al realizar la suma parcial 5+4 habremos llegado al 1001 en este cuenta-vueltas, por lo que le ‘Sumamos 6=0110 para pasar al 1111, y luego surmamos las 3 unidades que faltaban para completar las 7 de la cuenta. De esta forma, ‘como se ha dibujado, se alcanza el 0010, como debe ser en la suma BCD. uesto que en una suma no importa el orden de los sumandos, en vez de efectuar 5+4+643 se hace directamente 5+7+6 = (0101+0111+0110 como se realizé para uno de los cuartetos de la suma BCD arriba ejemplificada, 2 Lasuma de dos digitos decimates alo sumoes 19, cuando se suma 9 +9 + I (I de acarre de Ia posicién anterior) 4.97 Decimal (BCD) empaquetado (packed) El término “empaquetado” se refiere a una representacién numérica con uno 0 més bytes, siendo que en los dos ccuartetos de cada byte estan codificados en BCD dos digitos decimales. En contraposicién en BCD “desempaquetado” cada digito decimal ocupa un byte, como ser 3 = 00000011 Existe una representacién “clisica” basada en los 4 bits por digito del 0 al 9 del eédigo BCD, con caracteres adicionales para indicar signo mediante otros 4 bits extras de las combinaciones restantes (1010 a 1111, de Aa F) que irdn en el extremo derecho. Los némeros positivos pueden terminar en cualquiera de las combinaciones: 1100 (C), 1010 (A), 1111 (F)6 1110 (B). Para los negativos se pueden usar indistintamente 1011 (B) 6 1101 (D) Los procesadores de Intel™ para codificar signo agregan un byte extremo izquierdo, cuyo primer bit (0 6 1) indica el signo. Los siete bits siguientes pueden ser de valor cualquiera (elegidos ceros en los ejemplos siguientes) bp Ejemplos: CONVENCION “CLASICA” CONVENCION DE INTEL™ 310289 = [00000071] 0001 00000010 1000] 1001 THT (00000000 [0011 0007 [0000 0010 | 1000 1001 03 10 28 9 F + a 426998 = [00100110] 1001 1001] 10001100] = [[0000'0000 | 0000 0010 [OT 10 To0r | 1007 1000 26 9 9 8 C + 02 69 «9 8 26998 = [ODIO OIG] TOOT 1001 | 1000 1101 000 0000 [0000 0070 [0110 Toor | 100% 1000 26 9 9 8 D = 02 69 #98 8 1 =[0001 1111] = [00000000 | 0000 0001 TF + 0 1 [En ambas convenciones un nimero debe ocupar un numero entero de bytes. En la “clasica” al 310289 hubo que + agregarle un cero a la izquierda, siendo que F indica que el niimero es positivo, no siendo necesario hacerlo en los tres ejemplos siguientes. El + 26998 difiere del -26998 en el cuatteto final indicador de signo, habiéndose elegido C y D para uno y otra caso. Los tres ultimos ejemplos requirieron un cero a la izquierda en la otra convenci6n. sentados en ASCIL. Para Cabe mencionar que existe otra convenci6n tipo “clasica” para mimeros previamente rep! Jos mismos se sigue usando la D para negativos, pero los positivos terminan en OOLL = 3. ‘Asi, el £26998 = 0010 0010 1001 1001 1000 0011 = 269983, siendo que el ~26998 se representa igual. Decimal desempaquetado con signo Cada digito se codifica en 8 bits ASCH (o EBCD). Los 4 bits superiores de cada byte (0011 en ASCII, 1111 en EBCD), se conocen como bits “de zona”. El signo se representa mediante los 4 bits de zona del byte menos significativos. En ASCII estos bits son 0011 =3 y 1101 =D para positivos y negativos, respectivamente. En EBCD estos bits son D para los negativos, y para los positivos 1111 =F 6 1100 =C Ejemplo para ASCII 426998 = 001 10010 001101 10.001 11001 00111001 00111000 =26998 = 00110010 00110110 00111001 00111001 11011000 cen negrita se indican los bits de zona dedicados al signo. 4.98 N.10 Recapitulacién de las posibles codificaciones de datos numéricos procesables por la UAL o el coprocesador El esquema de 1a pégina siguiente se intenta mostrar las codificaciones bésicas por las que pasa un dato numérico desde que es entrado desde el teclado hasta que debe ser procesado: y por las que pasa un resultado hasta que se hace visible en un monitor o en papel impreso con los simbolos del sistema decimal. Se ha supuesto que se han tipeado las tres cifras que forman un niimero (250), el cual puede tener distintas alternativas de codificacién segin el tipo de datos (naturales, enteros, reales, etc) que se hayan definido en un supuesto programa en alto nivel (Pascal, C, Basic, Cobol, ‘etc), siendo que luego en todas esas alternativas se supone que en algin punto de un programa (desarrollado para procesar el tipo de dato en cuestidn) se ordena sumarle uno a dicho dato (obteniéndose 251) Cuando este programa codificado en c6digo de maquina se ejecute (etapa indicada como “procesamiento de los datos tipeados”), también se asume que en algtin momento se obtendré 251, codificado conforme al tipo de dato que se esta usando en cada alternativa. Luego se plantea supone que dicho resultado debe apatecer en pantalla (0 en papel impreso) como un mtimero de tres cifras decimales. Para tal fin, el monitor (0 la impresora) en todos los casos debe r dichas tres cifras que componen el 251 en c6digo ASCIL Por ejemplo, suponiendo (nivel 1) que se tipee 250 como dato a procesar de un programa desarrollado para ntimeros ‘enteros. Entonces, al tipear el 2, la circuiteria del teclado primero codificard el cédigo de dicha tecla (“scan code”), que es 00000011, y la enviaré a memoria principal (MP). Luego, la ejecucién de una subrutina del BIOS permitira determinar el cédigo ASCII del 2, que es 00110010, el cual también quedaré en memoria principal. Puesto que la tecla fen cuesti6n ademés del 2 tiene arriba el sfmbolo @, dicha subrutina deberd determinar que no se puls6 antes la tecla Shift (para lo cual ella también debe determinar si el cédigo de esta tecla no estaba antes en memoria). Del mismo modo, luego de tipear el 5, este quedard en memoria en ASCII como 00110101; y el 0 como 001 10000 En el nivel 2 hay que pensar que se llamé o debe actwar una subrutina de traduccién, cuya ejecucién permite reconocer que el 2, el 5 y el 0 codificados separadamente en ASCII componen el nimero 250; y que luego convierte éste a binario en formato 16, lo invierte y le suma uno, de modo de representarlo como 000000001111 1010. De esta forma, éste y otros datos antes tipeados quedan codificados con bit de signo -y por lo tanto operables en la UAL- cuando se ejecute el programa citado (codificado en cédigo de méquina). En tal oportunidad (nivel 3) se supone que una instruccién ordena sumarle uno al 0000000011111010, para asf obtener 0000000011111011, como se indica, cl cual podré guardarse en memoria principal ocupando dos bytes. A posteriori (nivel 4), si se ordena una salida por impresora (0 por monitor) para que este niimero se vea como el 251, otra subrutina traductora al ser ejecutada ‘pasaré el 0000000011111011 con bit de signo a un nimero decimal de tres digitos: 2, 5 y 1, que en ASCII quedarén en memoria como 0011010, 00110101 y 00110001, respectivamente. Estos asf codificados serén transferidos al monitor o a la impresora merced a Ia ejecucidn de otra subrutina del BIOS. Uno u otro de estos periféricos convertirén estos dfgitos en el nidmero decimal 251 visualizable (nivel 5). De igual modo pueden seguirse las distintas codificaciones que ocurren para otros tipos de datos. Si se esté trabajando con un procesador de texto, los caracteres tipeados una vez que estén en memoria codificados en ASCII son directamente datos para el programa procesador, Utilizando éste serd factible seleccionar en pantalla el ruimero 0 del 250 y reemplazarlo por el 1, lo cual implica cambiar el c6digo ASCII 00110000 por el 00110001. Se visualiza en pantalla el 251 merced a que se transfirieron al monitor los correspondientes caracteres ASCIL 4.99 sise Sie acini sein ‘Naturales, Integers ‘SUBRUTNA PASK] | SUBRUTINA PASA] | L250 DE ASCH A | EL.250DE ASCII A | | BINARIONATURAL} | BINARIO SIGNADO | enue etScoqueta: en 250 que: iio oorponor oo tants 0 yo 4 [Simpdanaae] [Soares] [ratralseow gr | | elmo ona (act alznrei || ar ars + , rid 25h) ononebition |operacin en la UAL) [Para ver (-251) toperadéren a UAL) ¥ a ibmaro | [ Pata ver este na | Tela pusada 1 (cmcumos oe] [tects | | CODIGO DELA TECLA PULSADA EN MP (Por empl oot000t se pus ate del 2) [Sarum | CODIGO ASCII DE LA MINUSCULA jo MAYUSCULA ) DE DICHA TECLA EN MP | footooia se pus sn haber pulsaco Sh) Sige iped 2, ogo 5 y luego 0 pox el nimaro 250, en MP estos dgins quedaran en ASCH como: {0110010 (por ela) enparatao pape. una| |en pana o peel una rtna to pasa de natural ruta pasa de inaro| _—a SOIL | [conbitee signo.a ASCIL coti00% por 2) 011010 por els) 011000 gar) u (00110010 (por 2) o1t0101 (po el), ‘00t1000% (po elt), 0110104 (por 2 250.en ASC (60110000 fpor et}, E1250 DE ASCII A PUNTO FLOTANTE | ni ot 50 quods: ofoooottotii0%0 000000000000000 (yes en ox 127) reales ordena su [Lar ta 250 resuta orooo01 brtron 0000000000000000 (operacén en el copro ‘cesador mateatico) oy Para ver este numero | ‘on pantalla o pap, una} rutin o pasa de punto “tltante-a ASCH _¥ ‘Sian programa | ' 00110010 pre 2} 0011010" (pore §) (00110001 {pore §) [Wonton IMPRESORA é ‘SUBRUTINA PASA | L250 DE ASCII A | \eco EMPAQUETADO| En ot $50 queda ‘opt00t0100001111 1 ‘lun programa para packed ordena su: mat 1a 250 esuta: ’ coroatotooottttt (-251) (peracién en la UAL) ame Paraveresienime | ‘enpanalao papel una nna opasa de ema: | cuelado « ASCIL_—_} 1 (0010010 (pore) (00110101 (gor el), (00110001 ipo 1), (Strings) | | Sse tabaja con un programa procesador de texto, ste opara con los caraceres como han quedado en ASCH Sranun pbs sid Indo et 250 se cambia 251, resula en ASCH!) cortoat por et2) 00110101 (por et5) 00110001 (por el) {se reempazé en MP 1 cbdigo asc del O pore scl dl 1 Para vor ete nimero ‘en pata o papel, (0000000010000010 (P) [Los indicadores que genera Ia UAL son S=1 Z=0 V=0 C=0 +LLIOHI1111111001 (0) 1111900001111011 = -3973=(P +Q) Después de ejecutar I que ordena restar: ‘AX = 1111000001 111111 = FO7F que es P +Q-T=R (3969 en decimal), Este valor es el resultado de sumar en la UAL ———> 1111000001111011 P+ Q) Los indicadores que genera la UAL son S=1 Z=0 V=0 C=1\(testa) ++000000000000100 (Compl deT) 1111000001111111 P+ Q)-T=R (0000000000000100 es el complemento de 1111111111110 =—4 se halla invirtiendo este dltimo niimero y sumando uno: 600000000000001 1 + 1 = 0000000000000100 CObsérvese que al representar ~4 en el paso 2. el compilador (software) complements el +4 binario, y en el paso 3 la UAL (hardware), para restar siempre complementa el sustraendo, por lo que el 4 antes representado en merioria, se vuelve a complementar otra vez, {quedando nuevamente +4. En definitiva aritméticamente resulto que ~(~4) = +4, aunque, como orden6 la sentencia, la variable T debe ser restada, sin importar que su valor sea negative © positivo, y eso fue lo que se hizo en el proceso tratado. Después de ejecutar I, el valor de AX no cambiard, pues Iy ordena que una copia de AX pase a memoria AX = 1111000001 111111 = FO7F 4) La ejecucién de I, ordena que en la direccién A23E y en la siguiente (asignadas a R) copiar el valor de AX, por Io que luego de e|jecutarse Ty en memoria se tendri lo indicado en Ia figura de abajo a la izquierda '5) En modo texto, 1a subrutina de impresién dejar en posiciones sucesivas de memoria los caracteres a imprimir, cada uno codificado en ASCII. Previamente dicha subrutina interpretari la orden de impresién (en este caso R = valor de R), siendo que el valor de R que esti en A23E y A23F deberd pasarlo a digitos decimales codificados en ASCII. Esto es, determinaré que el valor de R, que es 1111000001111111 es el ~3969, el cual en ASCII resultard 00111101 00110011 00111001 00110110 00111001. como aparece en memoria, ‘Antes de estos cédigos aparecen los cédigos de R y de =, como se indica en la figura de abajo a la derecha 6) La ejecucisin del programa mediante el Debug, para verificar que los resultados y flags obtenidos en el punto 3) coinciden con la, cjecucién por un procesador de cada una de las 4 instrucciones, se realiza siguiendo los mismos pasos descriptos en el capitulo 1.6 de la unidad | A236 | 7F | 2000 F onRwn Us107 Un programador ha desarrollado para variables que son reales, un programa en un cierto lenguaje de alto nivel “X", cuyas sentenciasha tipeado desde el teclado de un computador. Para una porcién del programa ha tipeado la sentencia que mas abajo se indica, Se supone que luego de ella, se puede escribir el valor de las variables que dicha sentencia ordena operat. Variable: REALES « 410375; T=4 - (las flechas indican que se hizo un espacio mediante a barra espaciadora) 1, Indicar cémo quedan en memoria los caracteres tipeados, a partir de una direccién dada Si posteriormente el programador llama al programa compilador del lenguaje “X", indicar c6mo el compilador deja traducida la sentencia R=P-+Q-T en cédigo de méquina, para un procesador de Intel, trabajando en punto flotante, y escribirlos en memoria ‘partir de la direccidn 20D1. Asignar a las variables R, P, Q y T las direcciones D015, 2003, A200, y BCO8, respectivamente 3, Si una vez que todo el programa en el lenguaje “X” fue traducido a c6digo de maquina (y luego “link editado" para agregarle subrutinas), se ordena ejecutarlo (“run”), indicar cuando se ejecute la secuencia traducida en el punto anterior, cémo el coprocesador lleva a cabo las sumas y restas que as instrucciones correspondientes ordenan, y cémo queda la cima de a pila gue el coprocesador opera, luego de que se ejecuta cada una de las instrucciones de dicha secuencia. También pasar a base diez cada resultado binario que est en la cima de la pila, veificando que sea el valor esperado 4, Indicar luego de ejecutar Ia instruccién I e6mo queda en memoria el resultado asignado a la variable R, conforme ordena dicha instruccién. 5, Suponiendo que luego de la sentencia R = P + Q—T siga la sentencia PRINT “R=” R (0 sea imprimir R = valor hallado de R fen decimal), el compilador la traduciré a varias instrucciones en cédigo de méquina, una de las cuales lamaré a una subrutina de mpresién. Si ésta ordena que la impresora opere en modo texto, indicar cémo debe quedar codificada en memoria Ia informacién & enviar a la impresora, para que imprima en decimal el valor de R. 6. _Ejecutar mediante el Debug Ia secuencia de instrucciones determinadas en el punto 2, verificando que los resultados esperados coincidan con los calculados en el punto 3. 1) No hay grandes diferencias con la concrecién de este punto en el ejecicio anterior para enteros. 2) El compilador para el lenguaje “X" recorre la zona de memoria donde quedé codificado en ASCII el programa en lenguaje “X”. ‘Ast va identificando cada sentencia y los datos que ella ordena operar, afin de traducirlos en instrucciones (e6digos) de maquina que cl microprocesador pueda ejecutar, y c6digos de datos que el coprocesador pueda operar. Con estos fines, primero (2a en la figura de la hoja siguiente) debe determinar el tipo de variables (en este caso reales) que las sentencias ordenan procesar, para llevar a cabo las traducciones a instrucciones para procesar punto flotante, y obdigos de datos correspondientes a éstas. Entonces, el compilador antes de traducir leeré en memoria que en ASCII esté escrito “REALES". ‘Segundo (2b) el compilador reservaré 4 bytes de memoria para las variables R, P. Q y T, (si fueran en doble precisidn” reservaria 8 bytes) en las direcciones de men: >ria indicadas. El compilador (0 una subrutina traductora preparada para “REALES") traduciré cada valor de variable decimal escrita en ASCII en el ntimero en punto flotante de 32 bits equivalente. Asi. el valor decimal -1305 de la variable P que en memoria est en ASCII quedaré traducida como el valor en punto flotante 1100001 1000000101000000000000000 = C3028000 = -130,5p que ocuparé las 4 posiciones asignadas a la variable P. El valor decimal -4103,75 de Q que el compilador encuentra en binario ASCII en las las traduciré como el nimero en punto flotante 110001010000000001 1 111000000000= C5803E00 = ~4103,75p, que ocupard las cuatro posiciones asignadas a la variable Q Del mismo modo, el valor 4 de T que al compilador Hega como 00110100 en ASCII, ocupando un byte, pasaré a ser {01400000100000000000000000000000, = 40800000 = 4p que el compilador escribiré en las cuatro direcciones asignadas a T. ara la variable R. cuyo valor recién se conocer cuando se ejecute el programa que se esté traduciendo, el compilador le reserva las 4 posiciones indicadas. Una vez asignada a cada variable una direccién de localizacién y las tres siguientes, el compilador traduciré la sentencia R= P + Q— T en instrucciones cuyos e6digos de maquina son los indicados.(2c en la figura de la hoja siguiente) “Tales cédigos suponen, que el coprocesador matematico hoy integrado al microprovesador (ver dibujo siguiente, esté igado a una pila de registros sin denominaci6n individual COperaremos, de la misma forma que lo hicimos con AX en el ejercicio anterior, con el registro que est en la cima de la pila, La instrucci6n I, (c6digo D906) ordenaré llevar el dato que esté en 2003 a la cima de la pila. I; (cSdigo D806) ordena sumar contra la cima el dato Q que esté en A200, y el resultado guardario en la cima. Is (cédigo D826) ordena restar conta la cima e! dato T que esté en BCOB. I, (c6digo D916) ordena enviar una copia de la |pomeg| cima hacia DOIS, donde esta R en memoria, piezamg| 10 instruccién I, (c6digo DBE) habilita el funcionamiento del coprocesador, tnico DXEEEES sitzcaag | due entiende binario que codifiea FP. 3) Cuando se ordene ejecutar e} programa que el compilador dej6 en c6digo de méquina en memoria, y la UC ejecute las jnstrucciones fy a ly, luego de cada una de ellas, la cima de la pila quedar4 como se indica a continuacién. El coprocesador operaré Tas instrucciones Ty ¢ Is, que ordenan sumar y restar, espectivamente, de la forma que se indica mds abajo. 4-108, Después de ejecutar I Cima = 1100001 1000000101.000000000000000 = C3028000 = 130.5, Después de ejecutar I: ‘Cima = 11000101 100001000101001000000000 = C5845200, que es P +Q =-4234.25p, Memoria Principal m X DEO AHHN msO7mTo! Inne MOQ yom ~ Este valores resultado de sumar en el coprocesador como sigue, conforme se vié en la seccién N11, para sumar nimeros en FP (punto c) = 111000011000000101000000000000000 = 1,00000101.x10' 2a El compilador antes de comenzar a tra~ ducir determina que ‘= 11000101 10000000001 1111000000000 = 1,000010001010001 xto Después de ejecutar Iy 52(R [i dedatos sehen Memoria definido (en este ca 8 ff so reales) Principal C(L 2004 Ste 2 aaa 3 3{110 Bier) 4 6 Dy Direcei6n 0 (P) di deP 2G 8 2c Di) Elcompliadortra QI Direocion 3 (Cp) ducelasentencia a CrEby enebdigas dems (2) quinaparareales — ELAOTTA4 oh D FH110710011 eT 1 (4. 000010114 3. 19001010 k 2tiso10000) Bisecn ) 2b CR) AP tor 2003 El _compilador Oy frasucealvaor P=C3028000 )) delosdatosen 4) base dea and: 4) meros que pue-_~2gq de procesar el 3) coprocesador : Q=C5803E00 matematico. 3 tf Erevamente a eS Signa una direc fea (lay nacadave: 8C08L 00 riable J T=40800000 al cane (4) ceo Dc15| Reservado| para R = 0,0000100000101 x10!" * Looo900001 111 x10!" 1,000010001010001 x10"! = 11900101 100001000101001 000000000 = €5845200 ‘Cima = 11000101 1000010001 1101000000000 = C5847200, que es P + Q T= ~4238,25p 4-109 El coprocesador procede para la resta, de manera semejante a la suma, primero igualando los exponentes y luego restando Después de ejecutar Iy el valor de la cima no cambiaré, pues I, ordena que una copia de la cima pase a memoria Cima = 11000101 1000010001 1100100000000 = 5847200 4) Luego de la ejecucidn de I, ordena que en Ia direccién DO15 y en las tres siguiente (asignadas a R) copiar el valor de la cima por lo que luego de ejecutarse I, en memoria se tendra como indica la figura de més abajo a la izquierda 5) En modo texto, la subrutina de impresion dejaré en posiciones sucesivas de memoria os caracteres a imprimir, codificados en ASCII. Previamente dicha subrutina interpretara la orden de impresién (en este caso R = valor de R), siendo que el valor de R que esté en DOIS y siguientes debers pasarlo a digitos decimales codificados en ASCII. Esto es, determinaré que el valor de R, que es 11000101 1000010001 1100100000000 es el -4238,25, el cual en ASCII resultaré como se indica en la figura de abajo a la derecha ‘Antes de estos cédigos aparecen los cédigos de Ry de = , como se indica en la figura siguiente a la derecha. DC15 [00) 2000 [52](R) 672 1 3D|( ) 7 | 84 2 | 2D'(-) 8 [csi 3 133, (3 4 321 9 5 [361 (6 6 | 39 (9) 6) Como en las unidades 1 y 3 indicaremos en letra itdlica los simbolos que se tipean, y con -1 ta accién de pulsar Ia tecla Enter. En negrita nquello que interesa ver en la UCP a los fines del ejercicio, y en menor tamaito de mimero o letra, el valor que puede ser dlisitnto de una PC a otra Cie DEBUG -1 ~ E2003 4 309D:2003 1F.00 26.80 78,02 1F.C3 J Asi se ha escrito P = C3028000 en las direcciones 2003 a 2006 En 2003 se supuso que existia IF, 26 en 2004, etc.El valor 309D implica una direccién de referencia, que en general seré XXXX -EA200 4 309D:A200 3F.00 6.3E AB.8O FRCS Ast seha escrito Q= C5803E00 en las direcciones A200 a A203 —E BCO8 4 309D:BCO8 33.00 EF.00 AA.80 22.40. Ast se ha escrito T = C5803E00 en las direcciones BCO8 a BCOB Escritura en memoria de las 5 instrucciones a ejecutar -E20D1 4 309D:20D135,DB 00.E3 00.D9 AF.06 35.03 00.20 0.D8 309D:20D8 FROG DE.00 68.A2 AA.DS 95.26 FEO8 38,BC 40.D9 309D:20E0 67.16 35.15 E7.D0-1 -R IPs IP 0100 En general en IP puede haber en general, XXXX 20DI1 Ast se ha escrito 20D1 en el registro IP para que cambie el valor 0100 que tenia por 20D1., que es donde se ha escrito la instruccién DBE3 en el paso anterior, como se indica en la unidad -R4 ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000—SI=0000 —DI=0000 DS=309) ES=309D SS=309D CS=3090 | TP=20D1_ NV UP El PL NZ NA PO NC 309D:20D1 DBE3 FINIT Este paso tiene como fin verificar que todo esté en orden antes de ejecuar Ia instruceién. Como ser, que la préxima instruccion ‘a ejecutar es DBE3 =T.4 (Orden de ejecucién de la instruccién DBE3 ) ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000—SI=0000DI=0000 DS=309D ES=309D SS=309D CS=309D 1P=20D3_ NV UP EI PL NZ NA PO NC 4090:20D3 D9060320 FLD DWORD PTR {2003} U4-110 =T.5 Orden de ejecucién de la instruccin D9060320) ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000_ —SI=0000_DI=0000 DS=309D _ES=309D $S=309D CS=309D 1P=20D7_ NV UP EI PL NZ NA PO NC 309D:20D7 D80600A2 FADD DWORD PTR [A200] =T.1 (Orden de ejecucién de Ia instruccién D800600A2) ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000 _ST=0000_D1=0000 DS=309D ES=309D SS=309 CS=109D IP=20DB_NV UP El PL NZ NA PO NC 309D:20DBD82608BC. FSUB DWORD PTR [BCO8} =T 4 (Orden de ejecuci6n de ta instruccién D82608BC) ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000 © ‘SI=0000._Di=0000 DS=309D ES=309D $$=309D CS=300D [P=20DF NV UP El PL NZ NA PO NC 309D:20DF D91615D0 FST DWORD PTR [DO15) =T-1 (Orden de ejecucién de la instruccién D91615D0) ‘AX=0000 BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000 __Sl=0000_D1=0000 DS=309D ES=309D $$=309D CS=309D | IP=20E3.__ NV UP EI PL NZ NA PO NC Este tercer rengén no interes Siendo que el Debug slo muestra los registros vinculados a la UAL (que para estas instrucciones no se usan) y a la UC, y que los registros ligados al coprocesador son “invisibles”, para todas las instrucciones ejecutadas e! tinico registro visible que ha cambiado es el IP, permaneciendo sin varias los restantes, asf como los flags. = EDOIS <5. (Examinar las posiciones DO15 a D018 correspondieates ala variable R) x090:D015. 72,8440 309p:D018 CS €5847200 = 11100010110000100011 1001000000000 = ~1,0006!0001 11001000000000x10'" = -4238,25 Se verifica que el valor de R que esté en FP es el experado. ~1000010001 110,01 N.13__Problemas Explicar por qué no pueden representarse en memoria ntimeros enteros binarios, o sea por qué se usa bit de signo 2. Dado el niimero con bit de signo 10111001 = -N obtenido a partir invertir el nimero N y sumarle 1, indicar qué operacién. aritmética se evita realizar operando de esta forma, Explicar por qué no se usa restar 1 y luego invertir los bits para hallar N Representar el nidmero binario con bit de signo 10110010 en formato 16, ;Qué conclusién resulta ? 4, {Cuntos bytes hacen falta para representar en binario némeros decimales entre ~32768 y 32767 ? Para un formato de 4 bytes: jcudl es Ia maxima magnitud que puede representarse, y cuél el mayor mimero positivo entero? Idem el niimero negativo de mayor magnitud, 6. Realizar en médulo 100000 las siguientes operaciones en base diez con niimeros enteros usando digito de signo con la cconvencién del complemento al médulo. Verificar que los resultados con dfgito de signo coincidan con los que se obtendrfan con los efectuados en forma corriente. a) 96+ 180; b) 96+(-180); c) -96+ 180; d) -96+ 180) 7. Para el punto b) anterior justificar por qué al hacer una suma de naturales también se puede efectuar una suma de enteros. Tener presente los ejemplos dadios en pie de paginas de la seccién N.2 8. Dadas las siguientes sumas algebraicas en base diez, hacerlas en base dos para nimeros con bit de signo, en el menor formato posible, indicando SZVC. Verificar si el resultado binario pasado a base diez concuerda con el esperado en base diez a) 18 +102 b)18+(-102) c) -18+102 —d) -18 + (-102). 9. Idem anterior para las sumas 304102 y -30+(-102) Si no resultara la verificacién, explicar por qué no concuerda, y determinar en qué formato minimo es posible realizar correcta- ‘mente cada operacin. Verificar que es posible realizarta en formato 16 10, Realizar en el menor formato posible sin que dé overflow la operacién ~534 ~ (~256) indicando SZVC 11, En funcién del problema anterior explicar por qué se afirma que el overflow es un error por truncamiento, 12, fectuar las siguientes restas algebraicas dadas en base diez en base dos, en el menor formato posible, indicando SZVC. No es Jactible hacer "menos por menos = mas’, etc. Verificar si el resultado binario convertido a decimal concuerda con el esperado hhaciendo las operaciones en base diez. a) 18-102, b) 18=(-102) c) -18.~ 102d) -18 -(-102) U4 13, Efectuar en formato 8 la resta entre mimeros decimales 150 - 37 representado los mismos como binarios naturales (magnitudes), indicando SZVC. Verificar si el resultado binario convertido a decimal concuerda con el esperado haciendo las. ‘operaciones en base diez. ;Se podrfa haber hecho esta misma operacién en formato & suponiendo que se opere con niimeros signados ? 14, Si con fos mismos némeros se intentara realizar 37 — 150 (operaci6n prohibida entre naturales), indicar una forma de conocer la ‘magnitud de la diferencia. ;, Se podria haber hecho las operaciones en formato 8 silos niimeros hubiesen sido signados? 15. Para el problema 8, justificar para el caso d) por qué los binarios con bit de signo se pueden sumar como si fueran naturales (magnitudes), conforme aparece en la seccién N.2 16. Explicar la diferencia entre los indicadores V y C. Bjemplificar numéricamente para bases diez y dos, Indicar para qué tipos de niimeros se usa cada uno. 17. Se tiene un apeltido que empieza con D y otro que empieza con R, en ese orden, Indicar como harfa un computador para ) | O10100i1 Gy ‘memoria quedaré almace- | 00110010 (2) | 00110010 (2) | 0110010 (2) | 01101111 (o) nada en ASCII como: oo11o101 (5) | ooit0101 (5) | oor1o101 S) | o1101100 a) 1 + + Un programa traductor los | 1 T1TTTT T1000001 ‘00000010, ‘OroTooIT TOOOITOT pasaré de ASCII ala 11100111 11001000 o1o1to1t oul representaci6n indicada, } (formato 16) | 00000000 01101100 ‘quedando en memoria: 100000000 Nameros con bit| Niimeros en BCD Caracteres Feo designo | punto flotante_|__empaguetado en ASCII 32, Realizar los ejercicios integradores de conocimientos para integers y reales con valores a eleccién, 4-112 GENERALIZACIONES-JUSTIFICACIONES DE PROCEDIMIENTOS UTILIZADOS A2.1__Expresién de un numero en potencias de su base Base diez; Los digitos de un nimero son, matemiticamente, los coeficientes que multiplican a las correspondientes potencias de diez en la cexpresién que es la suma de dichos productos, Habfamos escrito: N=107=(1x10? + 0x10! +7)p Un niimero de tres digitos decimales, designados dg,dy,dg! (cada uno puede valer 0 a 9) tend la forma: N= dgdydg = dgx10? + d)x10! + dy siendo para 107: d= Generalizando, cualquier nimero decimal natural tendré por expresién N= ade g dg = dyex10K + dye.px10K} +. +.dpx102 + dyx10! + do (A2.1) ick yen forma més compacta N= djxt0 con dj 3 x0 Base dos El mismo nimero 107p en binario es N= 110101 1p, que representa la sumatoria: N = (11000000 + 1100000 + 010000 + 1x1000 + 0x100 + 1x10 + 1p Conforme a la seccién N.7, puede eseribirse N=(axt0!10 4 110101 + 9x10100 4 1x10! + 0x10!0 + 1x10! + Dy siendo 10 = 2p, CCualquier nimero de siete digitos binarios (cada bit de valor 1 6 0) seré de Ia forma: Parte Np. entera Maltiplicando la nueva parte fraccionaria obtenida Np por 2 resulta: 2 xNpy= 20.24 = 0.48 = 0+ 048= bot by Itt by T+... thy. —__ Pate Nes Similarmente: +096 =b3 +Npq Lucgo b_. +092 =b_4+Nes Lego b_4 =1 +084 = 05 + NBG Luego bs =1 +068 =b_6 + Np Luego bg =1 +0,36=b_7 + Neg Luego b_7 =1 72 = bg + NFO Lucgo b_g =0 9 + Neo Lego b 10+ Nei Luego b_ig=0 El procedimiento finaliza cuando se obtiene un niimero de bits estipulado, acorde a la precisién binaria deseada, o si antes alguna parte fraccionaria fue 0 = N- En nuestro ejemplo, suponiendo que se necesiten diez bits fraccionarios: 0,62 = (b_jb_9 bg... bep)p = 0.1001111010g = Nps y sumando Ng antes hallado: N=Ng+Np= (23 +0,62)p = (10111 +0,1001111010)p = 10111,1001111010g = 23.62, A2.8 Pasaje de un numero real binario a hexadecimal En la unidad 1 se dieron las reglas précticas para convertir un ntimero entero binario a hexadecimal y viceversa. A través de un ejemplo se mostraré la consistencia de estas reglas, que pueden extenderse al pasaje de nimeros reales entre dichas bases. Regla para convertir un nimero hexadecimal con partes entera y fraccionaria a binario: "A partir de la coma, hacia la derecha e izquierda, se reemplaza cada digito hexadecimal por el niimero binario de 4 bits equivalente, De existr, se eliminan los ceros superfluos. Ejemplo: convertir a binario 3B,74py 3B,744y = 00111011,01110100g = 111011,011101g De hecho también da validez al pasaje inverso de hexa a binario, por el método de reemplazar cada digito hexa por e! nimero binario equivalente de 4 bits: si se parte del nimero binario hallado, se sigue el camino inverso expresindolo como suma de potencias positivas y negativas de 2, para luego sacar factor comin 24, 2-4 y 2-8, y por tiltimo hallar los valores decimales de cada paréntesis de 4 sumandos, al ser 6stos convertidos a hexa se Hlega al nero 38,744, Por lo tanto, es vélide la siguiente regla: Regla para convertir un nimero binario con partes entera y fraccionaria a hexadecimal: L.A partir de la coma, formar grupos de 4 bits hacia la izquierda y derecha de ta misma. De ser necesario, se agregan ceros a uno u otro lado. 2, Se reemplaza cada grupo de 4 bits por su equivalente hexadecimal. p Ejemplo: convertir a hexadecimal el ndmero binario101011111,0000101 101011111,0000101 y = 000101011111,00001010g = 1SFOAW TABLA DE CONTENIDOS ALGEBRA DE BOOLE APLICADA Postulados de Huntington /Conjuntos que verifican .... 1/8 ‘Teoremas que se deducen de los postulados 8 Cables de un circuito con dos niveles de tensién 9 ‘Compuertas y operaciones I6gicas .... 1016 ‘Compuertas combinadas con inversores 1820 Funciones I6gicas/Cuadro/Equivalencias .......... 20/21 Cireuitos con varios tipos de compuertas 22s Propiedades booleanas: verificaciGn/aplicacién ....., 25/30 Principio de dualidad....... : 31 Funcién como suma de minitérminos 3133 ‘Sumador/restador de dos niimeros den bits........ 3637 ‘Sumador/Restador de la UAL, generador de flags... 38 + Decodificador.... 40 Selector de datos/Multiplexor ae a Generador/Verificador de paridad 44 Memorias ROM 47 Flip-flops... cee 48152 Registros. 53/56 Contadores/Secuenciadores .... a ST Estructura de una RAM estética (SRAM) ......... 59 Estructura de una RAM dinémica (DRAM) 60/61 Estructura de una PAL. .......0000000+ 8 Problemas . 2 COMPLEMENTO: Diagramas de Kamaugh ons NUMEROS CODIFICADOS EN EL COMPUTADOR Nameros decimales con digio de signo n ‘Complemento ala base (0 al médulo).......2... 77 Namero binarios con bit de signo 79/81 Suma de binarios enteros con bit de signo ro Indicadores de estado SZVC (“fags”) 83/85 Resta de binarios enteros con bit de signo 86187 Los flags SZVC en la comparacién de mimeros... 88 Nimeros binarios fraecionarios 89 Potencicacién en cualquier base 0 Representacién en punto flotante (IEEE) 9194 Codificacién y suma en BCD natural 95/96 RecapitulaciGn de las representaciones ” _Ejemplos integradores re) Formato, rango y prcisién de datos en Pentium, 103 Ejerccios integradores de integers y reales ...... 104/110 Problemas .... voeeeeees MOA GENERALIZACIONES-JUSTIFICACIONES DE PROCEDIMIENTOS UTILIZADOS..... 112/116 Bjercicios 47 Respuestas a problemas seleccionados . . 47 4-117 A210 __Ejercicios _ 1 5. Expresar el nimero 2036p a) En una serie de potencias de diez en el sistema decimal 'b) Idem de dos en el sistema decimal; «) Idem de dieciseis en el sistema decimal 4) Idem de dos en el sistema binario; «) Idem de dieciseis en el sistema binario. Realizar el problema anterior para el niimero 202,341) Pasar abinario y hexadecimal el nimero 1522p) y luego justificar conforme a la seecién A2.8 el método algoritmico seguido Dado el nimero 384, pasarloa base dos, realizando operaciones en esta bas, a partir del expres 384 = (3x102+ 8x10! +4)p Luego pasa a hexaderiml,oprando en esta base Convertir a hexadecimal el nimero binario 110111001,001. Luego justficar el método utilizado, conforme a la seccién AL8 Apéndice: Respuestas de problemas seleccionados Problemas de la seccion A1.34 2 Si 5 a) Unade las entradas debe estar siempre en 1 (5 volts) +b) Una de las entradas debe estar en 1 cuando se quier invertir la otra. Caso contrario debe estar en 0 ) Una entrada debe ser A y la otra B. Si Z=0 es A=B; si Z=1 sera A#B 4) Siel nimero de unos es impar (01 6 10)en A y B, serd Z.= 1; y sies par (006 11) seréZ=0 10 LaexpresiGn del circuito es Z= A.B.C+A.B.C 12 Noysi,respectivamente 4 Si 15 No, se trata de una regla préctica 21 Lasalida Zy vale 1 y las restantes 0 26 Con cada pulso reloj se invierte el valor de la salida Q Problemas de la seccion N.13 1. 100000000 - 01000111 2. 1111111110110010 3. 2bytes 4, La mdxima magnitud es 4.294,967.295. El mayor entero positivo es +2.147.483.647 y el més negativo es 2.147 483.648 5. a) 00096 + 00184 b) 00096 + 99820=99916=-84 ) 999094 + 00180 = 00084 = +84 <4) 99904 + 99280 = 99724 = -276 8 a) 00010010 + 01100110=01111000 = 120 SZVC=0000; b) 00010010+1001 1010 = 10101100 ©) H101110 +01100110=01010100=84 SZVC=0001 4) 11101110+10011010= 10001000: 9, Laverificaci6n no concuerda en formato 8 por que hay overflow. En cambio concuerda en formato 16 10, a) 1010110=-84 —_b) 01111000=120 ¢) 10001000 -120 dy 1010100 = 84 13, 10010110 + 11011011 = 01110001 = 113 (se descartael 1 de carry en la resta de naturales como en lade signados) Estas operaci6n no se puede hacer en formato 8 para signados, pues para representar 150 se necesitan por lo menos 9 bit. 17, Al e6digo ASCH de la D se lerestael ASCII de la Ry en funci6n del indicador C se conoce el orden. 18 10",; 10%y 10» 20. 2" 22 139.24 25 1,0x10"" g = 0,001g= 1/8 26 1100001001001 p=309 1, =12433=000100100100001 1001 1 pco=001 10001 001 10010 001 10100 00110011 0011001 Tasca 27a) -110p BY 140) 6) 925 INFORMACION PARA EL LECTOR Esta unidad ha sido. pensada y esiructurada de manera. que los temas progresen desde concepios generales hasta su desarollo. en detalle, prevaleciendo e! criferio de empezar cualquier tema a partir de conocimientos ya adquiridos por e! lector en su vida cotidiana, y que le son familiarires. A partir de ellos se construyen nuevos saberes, acorde con modemas metodologias. Con referencia a la representacién de datos, el lector encontrara sistematizadas las distintas codificaciones que puede presentar un numero dentro de un computador, en lugar de simples reglas de representacién, aisladas de la cadena de procesos que se dan en un computador. En particular se tratan los formatos en un procesador 486/Pentium. Asimismo, se defineny se muestran aplicaciones de los “flags” SZVC Alos fines de la ejercitacién, se presenta un conjunto de problemas, cuya respuesta se indica en la mayoria de los casos. Entre los ejercicios resueltos se incluye un detalle de la codificacién y suma de enteros con bit de signo, usando registtos y memoiras de una PC. Para concretarlos se emplea el programa Debug del DOS Del mismo autor "INTRODUCCION A LAS TECNICAS DIGITALES CON CIRCUITOS INTEGRADOS" (7ma edicion)

Вам также может понравиться