ESTRUCTURA DE COMPUTADORES INTRODUCCIÓN A LA UNIDAD DE MEMORIA Contenido: D Características generales del sistema de memoria: jerarquía D Memoria interna: tipos y tecnologías de memorias. D Mapas de memorias. D Memorias secuenciales (pilas, colas) D Memoria externa. Bibliografía básica W. Stalling (5ª ed.): Cap 4 A. S. Tanenbaum: Structured computer organization. Caps. 2 y 3 J. Wakerly: Digital Design: Principles and Practices. Cap 10 C. Baena et al: Cap 10 Dpto. Tecnología Electrónica EC Memoria Secuencial - 1 MEMORIAS SECUENCIALES Memorias secuenciales • El tiempo de acceso al dato depende de su posición • Tipos: Cintas, CCD, discos, ...; aquí veremos LIFO y FIFO •• LIFO: Last In First Out. También llamadas: ••• FILO: First In Last Out ••• STACK: pilas de registros (proviene de apilar los datos) •• FIFO: First In First Out. Dpto. Tecnología Electrónica EC Memoria Secuencial - 2 MEMORIA TIPO LIFO LIFO o STACK: Visión conceptual PULL o POP: Leer /y extraer último dato PUSH: Escribe nuevo dato Dato último Fondo (D) Dato primero TOP (R0) PILA VACÍA: Cuando no se ha escrito ningun dato PILA LLENA: Cuando están escritos D datos PILA OCIOSA: Cuando no hay Pull ni Push Dpto. Tecnología Electrónica EC Memoria Secuencial - 3 MEMORIA TIPO LIFO LIFO o STACK: Descripción formal Descripción estructural Din (n) Descripción funcional Dout (n) Push Pull Rx ← Push R0 Pull R1 ... R(D-1) Dpto. Tecnología Electrónica 0 0 0 1 1 0 1 1 EC Dout = Rx ← Rx Dout = HI Rx ← R(x+1); R(D-1) ← 0 Dout = [R0] Rx ← R(x-1); R0 ← Din Dout = HI Prohibida Memoria Secuencial - 4 MEMORIA TIPO LIFO LIFO o STACK: Utilización Boletín EC1 Memorias: Problema 8 En una memoria LIFO de fondo 6 se va a realizar la siguiente secuencia de operaciones: 3 PUSH, 1 NOP1, 1 PULL, 2 PUSH, 2 NOP, 1 PULL, 1 PUSH. La memoria está vacía en el instante inicial. La anchura de la memoria es de 8 bits. Por su bus de entrada vienen caracteres ASCII con paridad par, concretamente, los valores durante las sucesivas operaciones de escritura son: N, E, G, I, C, B. a) Muestre el contenido de la LIFO al realizar la secuencia de operaciones. b) Supuesta vacía la LIFO y siguiendo un proceso de 2 operaciones de escritura y 1 de lectura (después otras 2 de escritura y 1 de lectura, ...), indique la secuencia de entradas a la LIFO para que en la pila esté escrita la palabra FINAL en algún momento. 1.NOP: no operación. Dpto. Tecnología Electrónica EC Memoria Secuencial - 5 MEMORIA TIPO LIFO LIFO o STACK: Diseño • 3 formas de diseño: 1/Con registros de carga en paralelo; 2/con los de desplazamiento (Prob. 17) y 3/con RAM y puntero de pila (Stack Pointer, SP) Boletín EC1 Memorias: Problema 17 Diseñe una memoria tipo LIFO de 8 bits de anchura y un fondo de 6 en los siguientes casos: a) Con registros de carga en paralelo. b) Con registros de desplazamiento. Solución: Dpto. Tecnología Electrónica EC Memoria Secuencial - 6 MEMORIA TIPO LIFO Problema 17.a BASADO EN REGISTROS CON CARGA EN PARALELO: I[8] 8 1 0 PUSH 8 LOAD R1 PULL OUT[8] 1 0 1 0 0 0 1 0 1 0 Rx LOAD 0 1 1 Rx ← Rx Rx ← Rx+1, R6 ← 0 Rx ← Rx-1, R1 ← I 8 LOAD >1 PUSH PULL OUT HI [R1] HI 1 0 R5 8 LOAD EC R4 8 LOAD 0 R3 8 LOAD 1 0 R2 8 LOAD 1 0 Dpto. Tecnología Electrónica 8 R6 Memoria Secuencial - 7 MEMORIA TIPO LIFO PUSH PULL L R 0 0 0 Rx OUT Rx ← Rx 0 1 0 1 Rx ← SHR(Rx,0) 1 0 1 0 Rx ← SHL(Rx,Ix) ... HI 1 [R0 2 R0 . .. ... R80] HI O U T [8] ... I[8] ... 0 BASADO BASADO EN REGISTROS DE DESPLAZAMIENTO: ... Problema 17.b Xlin 1 R0 Derecha Xlin 2 R0 L R2 R1 R 8 R0 L L Xlin ... R8 R R Izquierda Xrin = 0 PUSH ... ... PULL Dpto. Tecnología Electrónica Xrin = 0 Xrin = 0 EC Memoria Secuencial - 8 MEMORIA TIPO LIFO LIFO CON PUNTERO DE PILA (STACK POINTER) Bases de operación: Los datos se almacenan en un sector de una RAM ( El registro TOP está ‘apuntado’ por un registro que se llama SP (Stack Pointer) Acuerdos a tomar: * Sector de Stack: Lo enunciarán * Hacia dónde se apila: Hacia direcciones menores * Posición ociosa del puntero: $0 $1 $2 ··· Apilar SP Desapilar En el TOP RAM TOP Parte llena $F...F Dpto. Tecnología Electrónica EC Memoria Secuencial - 9 MEMORIA TIPO LIFO Un diseño (a medio hacer) SP n-3 n-2 n-1 n n+1 n+2 Address Up Top SP Dw interconexión LLENA Push: Ociosa: UpDw = 00 Dpto. Tecnología Electrónica RAM Datos Pull: 1º) UpDw = 01: SP ← SP - 1 1º) Dato = [RAM(SP)] 2º) RAM(SP) ← Dato 2º) UpDw = 10: SP ← SP + 1 EC Memoria Secuencial - 10 MEMORIA TIPO FIFO Dpto. Tecnología Electrónica EC Memoria Secuencial - 11