EJEMPLO DE DISEÑO DE IA Se trata de diseñar una memoria de 5Kx a partir de módulos Kx, y Kx, teniendo en cuenta que los primeros 64K deben ser y el resto. Además del diseño general, indicar cómo quedaría el bus de direcciones cuando se eligen las palabras con las siguientes direcciones en hexadecimal: 7FA9, EBE y 69B9F. NOTA: Por simplicidad del dibujo, no dibujar las líneas de lectura y escritura, que se suponen unidas entre sí a las entradas externas correspondientes. SOLUCIÓN Como la memoria diseñada es de 5K, se necesitan 9 líneas de direccionamiento, que llamaremos A A. El elemento de memoria más pequeño tiene K, con lo que necesita 4 líneas de direccionamiento, que serán comunes con el resto de módulos, siendo las líneas de la memoria de los K las 4 líneas menos significativas del conjunto. Dichas líneas se conectan en paralelo con las 4 líneas menos significativas de TODOS los elementos de memoria superiores. Para realizar el diseño, dividimos la cantidad total de memoria, 5K, en 4 bloques de K. Los tres bloques de memoria superiores los realizan directamente tres elementos de Kx, de los que disponemos. Por tanto, un direcciona cada uno de esos tres bloques cuando las dos líneas más significativas A y A 7 son, o bien. El direccionamiento de los primeros K necesita más explicaciones. En primer lugar, A y A 7 son, ya que es la primera cuarta parte del total de 5K. Además, los primeros 64K, de memoria, se seleccionan cuando A=, mientras que los siguientes 64K, de memoria, son implementados directamente por dos pastillas de, de las que disponemos, sumando los bits de cada una para obtener y poniendo en paralelo las líneas de direccionamiento de ambos circuitos. Para direccionar los primeros 64K con módulos de K, siendo A=, simplemente se necesita un para seleccionar alguna de las 4 memorias, en función de las líneas A 5 y A 4. En este ejemplo, dicho sólo se usa cuando se selecciona memoria. Una pequeña lógica adicional, compuesta por dos puertas y un inversor, se encarga de inhibir el citado cuando A =, habilitando las memorias de, y de habilitarlo cuando A=, inhibiendo las memorias de, todo ello siempre que estemos en los primeros K de la memoria total, ya que en caso contrario, directamente estaría deshabilitado todo el primer bloque de K.
A A 3 A 4 A 5 Parte común del Bus de direcciones (A 3 -A ), las 4 líneas menos significativas 4 4 4 4 3--- Kx 3--- Kx Espacio direccionable K 5 K K 3 K 4 3--- Kx 3 K 47 K A 4 3--- Kx 4 K 63 K 5 4 3-5 4 3-64 K 7 K 5 4 3--- Kx K 55 K A 7 5 4 3--- Kx 56 K 33 K A Bus de datos (D 5 -D ) 5 4 3--- Kx 34 K 5 K
Parte común del Bus de direcciones (A 3 -A ), las 4 líneas menos significativas Direcciones A A 3 A 4 A 5 A 4 Dirección 3.6 7FA9 H.97 3FA9 H (4 bits) 4 4 4 4 4 5 4 3-3--- Kx 3--- Kx 3--- Kx 3--- Kx 5 4 3-. H.33 3FFFH.34 4 3.767 7FFFH 3.76 H 49.5 BFFFH 49.5 CH 65.535 FFFF 65.536 H 3.7 FFFFH 5 4 3--- Kx 3.7 H 6.43 3FFFFH A 7 5 4 3--- Kx 6.44 4H 393.5 5FFFFH A Bus de datos (D 5 -D ) 5 4 3--- Kx 393. 6H 54.7 7FFFFH
Parte común del Bus de direcciones (A 3 -A ), las 4 líneas menos significativas Direcciones A A 3 A 4 A 5 A 4 Dirección.7 EBE H 4 4 4 4 4 5 4 3-3--- Kx 3--- Kx 3--- Kx 3--- Kx 5 4 3-36.54 EBE H ( bits). H.33 3FFFH.34 4 3.767 7FFFH 3.76 H 49.5 BFFFH 49.5 CH 65.535 FFFF 65.536 H 3.7 FFFFH 5 4 3--- Kx 3.7 H 6.43 3FFFFH A 7 5 4 3--- Kx 6.44 4H 393.5 5FFFFH A Bus de datos (D 5 -D ) 5 4 3--- Kx 393. 6H 54.7 7FFFFH
Parte común del Bus de direcciones (A 3 -A ), las 4 líneas menos significativas Direcciones A A 3 A 4 A 5 A 4 Dirección 433.55 69B9F H 4 4 4 4 4 5 4 3-3--- Kx 3--- Kx 3--- Kx 3--- Kx 5 4 3-. H.33 3FFFH.34 4 3.767 7FFFH 3.76 H 49.5 BFFFH 49.5 CH 65.535 FFFF 65.536 H 3.7 FFFFH 5 4 3--- Kx 3.7 H 6.43 3FFFFH A 7 A Bus de datos (D 5 -D ) 5 4 3--- Kx 5 4 3--- Kx 39.39 9B9F H ( bits) 6.44 4H 393.5 5FFFFH 393. 6H 54.7 7FFFFH
EJEMPLO Para seleccionar la dirección de memoria 7FA9 H, equivalente a 3.6 decimal, hay que elegir el º bloque de K, que cubre de las posiciones.34, hasta 3.767, y dentro de dicho bloque, la posición relativa referida a su comienzo,.34, es.97, ya que.34+.97=3.6. Por tanto, en las 4 líneas A 3 A del módulo hay que poner.97, en hexadecimal 3FA9, A 5 A 4 =, por ser el º bloque de K, A = por estar en la primera mitad de los primeros K y A A 7 = por estar en el primer bloque de K del total de 5K. Viendo directamente la dirección, resulta: 7 F A 9 A A 7 A A 5A 4A 3A A A A 9A A 7A 6A 5A 4 A 3A A A 3 F A 9 EJEMPLO Para seleccionar la dirección de memoria EBE H, equivalente a.7 decimal, hay que elegir el º bloque de 64K, que cubre de las posiciones 65.536, hasta 3.7, y dentro de dicho bloque, la posición relativa referida a su comienzo, 65.536, es 36.54, ya que 65.536+36.54=.7. Por tanto, en las líneas A 5 A del módulo hay que poner 36.54, en hexadecimal EBE, A = por estar en la segunda mitad de los primeros K y A A 7 = por estar en el primer bloque de K del total de 5K. Viendo directamente la dirección, resulta: E B E A A 7A A 5A 4A 3A A A A 9A A 7A 6A 5A 4 A 3A A A E B E EJEMPLO 3 Para seleccionar la dirección de memoria 69B9F H, equivalente a 433.55 decimal, hay que elegir el 4º bloque de K, que cubre de las posiciones 393., hasta 54.7, y dentro de dicho bloque, la posición relativa referida a su comienzo, 393., es 39.39, ya que 393.+39.39=433.55. Por tanto, en las 7 líneas A A del módulo hay que poner 39.39, en hexadecimal 9B9F, y A A 7 = por estar en el cuarto bloque de K del total de 5K. Viendo directamente la dirección, resulta: 6 9 B 9 F A A 7 A A 5A 4A 3A A A A 9A A 7A 6A 5A 4 A 3A A A 9 B 9 F