Buffers Circulares. Modulo Addressing Si Mn=FFFF (-1) Rn se mueve en forma lineal Si 1 < Mn < $7FFF tenemos Buffers circulares de modulo M Donde M=Mn+1.

1 Buffers Circulares ...
Author: Yazmin Granado
0 downloads 0 Views

1 Buffers Circulares

2 Modulo Addressing Si Mn=FFFF (-1) Rn se mueve en forma lineal Si 1 < Mn < $7FFF tenemos Buffers circulares de modulo M Donde M=Mn+1

3 Modulo Addressing Cirular Buffer limits Base address: Todo Múltiplo de 2 K tal que 2 K ≥ M o sea que tenga ceros en sus K bits menos significativos Base address = Q 2 K donde Q = 0,1,2,3,…….. B 15 B 14 B 13 ….B 0  B 15 B 14 B 13... 0 0 0 0 0 2 0 0 2 1 1 0 2 2 1 0 0 2 3 1 0 0 0

4 Modulo Addressing Cirular Buffer limits Base address: Q 2 K donde Q = 0,1,2,3,…….. Upper Address: Base Address + (M-1)

5 Modulo Addressing M puede ser : M= 2 K o bien M ≠ 2 K en cualquiera de los dos casos el mapa de memoria se divide de la siguiente manera: Una vez establecido el valor de M el mapa queda dividido en una serie se bloques consecutivos de tamaño 2 K siendo 2 K la menor potencia de 2 mayor que M R+(M-1) R-(M-1) GAP M 2 K - M 2K2K GAP M 2 K - M 2K2K

6 Modulo Addressing Ej M=21 => 21 ≤ 2 K => K=5 => BA=Q 2 5 = Q 32 Q=0,1,2,.. => BA= 0,32,64,96,128 …. Una vez establecido el valor de M el mapa queda dividido en una serie se bloques consecutivos de tamaño 2 K siendo 2 K la menor potencia de 2 mayor que M GAP 21 0 31 GAP 21 32 63 20 52

7 Modulo Addressing Definición de un buffer circular 1- Elgir M  Mn=M-1 2- BA = Q 2 K donde Q = 0,1,2,3,…….. 3- Si M= 2 K GAP=0. Si M < 2 K GAP  0 Addressing Modes a) (Rn) + b) (Rn) – c) (Rn) + Nn Donde Nn≤M para un correcto funcionamiento

8 Modulo Addressing

9 Si Nn > M el resultado es indeterminado salvo que Nn=P 2 K Observar que Nn es múltiplo del tamaño del bloque. GAP x Rn (Antes) 2K2K GAP 2K2K x Rn (Despues) Después de actualizarse el puntero (Rn) + Nn salta a la misma posición relativa en el próximo bloque (Si P=1)