Logo Studenta

CPU memoria manejo de entrada salida buses e interrupciones IvanAlejandroGallegosMartinez - Iván gallegos

¡Estudia con miles de materiales!

Vista previa del material en texto

Arquitectura Von Neumann y Harvard 
 
Ivan Alejandro Gallegos Martinez 
 
Instituto Tecnológico de Estudios Superiores de Zamora 
 
alexgalle125242@outlook.com 
RESUMEN: En este documento podremos observar 
un poco acerca de la estructura de lo que es un 
procesador, aprender las diferentes estructuras de 
este, tambien aprenderemos el funcionamiento de los 
buses para que sirve, cuantos tipos de estos existen 
entre otros aspectos importantes sobre lo que es una 
arquitectura completa de computadora 
 
I. INTRODUCCIÓN 
 
Durante el desarrollo de esta investigacion podremos 
observar en que consiste la arquitectura de los CPU o 
unidad de procesamiento central, cuantas existen y cómo 
funcionan estas, y observar lo importante que es la 
memoria, los buses, el manejo de los dispositivos 
externos entre otros aspectos importantes que 
complementan toda la arquitectura de una computadora. 
Ademas que de estos elementos existe una gran variedad 
de ellos, diferenciando en sus arquitecturas, 
funcionamientos, ventajas y limitaciones entre otros 
aspectos. Pero al mismo tiempo comprendiendo que para 
ciertas acciones, unas arquitecturas son mejores que 
otras. Tambien que unas funcionan en combinación mejor 
que otras. 
 
II. DESARROLLO 
 
CPU 
La CPU es uno de los elementos físicos que más 
importancia tiene en nuestra computadora, ya que este 
define la capacidad de trabajo de esta. Al final de cuentas 
un CPU no es otra cosa más que un circuito integrado, un 
circuito integrado bastante complejo. Se tiene que un 
CPU solamente se encuentra integrado de una 
computadora, lo cual es ciertamente falso, pues estos se 
encuentran en la mayoria de electrónica, por ejemplo, la 
televisión necesita un CPU, para procesar las imágenes, 
una lavadora para procesar las señales de los botones, 
calcular el tiempo entre otros aspectos, y asi podriamos 
mencionar diferentes lugares donde se podria observar 
esto, basicamente y en pocas palabras la CPU está 
diseñado para controlar al resto de los componentes. 
En el ámbito de las computadoras que es el que nos 
interesa, el CPU puede ejecutar una cantidad inmensa de 
instrucciones posibles. Pero para poder comprender 
tenemos que observar más a fondo como es su 
arquitectura. 
 
La CPU tiene 4 bloques funcionales, que trabajan juntas, 
la una junto a la otra. Los bloques son: 
• Unidad aritmética logica (ALU): Esta unidad 
como lo dice su nombre, su trabajo es realizar los 
cálculos aritméticos y lógicos. Esta se comunica 
por medio de un bus interno. 
• Unidad de control: Esta unidad es la que genera 
todas las señales que lo controlan, basicamente 
contiene las instrucciones a realizar. 
• Buses internos: Estos se utilizan para comunicar 
a todos los bloques de nuestra CPU, y estos 
mismos, podrán enviarle las órdenes a el resto de 
los componentes. 
• Registros internos: Estos registros guardan toda 
la informacion de datos necesarios para las 
operaciones y tambien las direcciones de 
memoria en los que estos se encuentran 
Por ejemplo, si quisiéramos sumar dos números, 
pongamos 2 y 3. A alto nivel, una posible secuencia 
lógica sería: 
 
1. Previamente se han cargado los dos operandos en 
los registros de datos. 
2. La unidad de control va al registro adecuado y 
pone el primer operando en el bus interno 
3. La unidad de control se comunica con la ALU: le 
dice que tiene un operando en el bus interno. 
4. Hace lo mismo con el otro dato. 
5. Luego indica a la ALU la operación que quiere 
que realice, en este caso la suma. 
6. Le indica también en que registro quiere que deje 
el resultado. 
Memoria 
La memoria presenta talvez la más amplia diversidad de 
tipos, tecnología, estructura, prestaciones y coste, de 
mailto:alexgalle125242@outlook.com
entre todos los componentes de un computador. Ninguna 
tecnología es óptima para satisfacer las necesidades de 
memoria de un computador. En consecuencia, un 
computador convencional está equipado con una 
jerarquía de subsistemas de memoria, algunos internos 
(directamente accesibles por el procesador), y otros 
externos (accesibles por el procesador mediante módulos 
de entrada/salida). 
Los sistemas de memoria tienen características claves. 
• Ubicación: 
Indica si la memoria es interna o externa al 
computador. Una característica obvia de las 
memorias es su capacidad. Para memorias 
internas se expresa normalmente en términos de 
bytes (1 byte=8 bits) o de palabras. 
• Procesador 
El procesador necesita su propia 
memoria local en forma de registros 
• Interna (Principal) 
La memoria interna suele identificarse 
con la memoria principal. 
• Externa (Secundaria) 
La memoria externa consta de 
dispositivos periféricos de 
almacenamiento 
• Capacidad 
• Tamaño de la palabra 
Longitudes de palabra comunes son 8, 
16, y 32 bits. 
El tamaño de la palabra suele coincidir 
con el número de bits utilizados para 
representar números y con la longitud de 
las instrucciones. 
• Números de palabras 
CRAY C90 =64 bits 
VAX = 32 bits 
• Unidad de transferencia 
la unidad de transferencia es igual al número de 
líneas de entrada/salida de datos del módulo de 
memoria 
• Palabra 
Es la unidad natural de organización de 
la memoria 
• Bloque 
Es el número de bits que se leen o 
escriben en memoria a la vez 
 
• Método de acceso 
• Acceso secuencial 
El acceso debe realizarse con una 
secuencia lineal específica. Utiliza un 
mecanismo de lectura/escritura 
compartida que debe ir trasladándose 
desde su posición actual a la deseada, 
pasando y obviando cada registro 
intermedio. 
• Acceso directo 
El acceso directo tiene asociado un 
mecanismo de lectura/escritura. Sin 
embargo, los bloques individuales o 
registros tienen una dirección única 
basada en su dirección física. El acceso 
se lleva a cabo mediante un acceso 
directo a una vecindad dada, seguido de 
una búsqueda secuencial, bien contando, 
o bien esperando hasta alcanzar la 
posición final 
• Acceso aleatorio 
cada posición direccionable de memoria 
tiene un único mecanismo de acceso 
cableado físicamente. El tiempo para 
acceder a una posición dada es constante 
e independiente de la secuencia de 
accesos previos. Por tanto, cualquier 
posición puede seleccionar 
aleatoriamente y ser direccionada y 
accedida directamente. 
• Acceso asociativo 
es una memoria del tipo de acceso 
aleatorio que permite hacer una 
comparación de ciertas posiciones de 
bits dentro de una palabra buscando que 
coincidan con unos valores dados, y 
hacer esto para todas las palabras 
simultáneamente 
• Prestaciones 
• Tiempo de acceso 
Es el tiempo que tarda en realizarse una 
operación de escritura o de lectura, es 
decir, el tiempo que transcurre desde el 
instante en el que se presenta una 
dirección a la memoria hasta que el dato 
• Tiempo de ciclo 
consiste en el tiempo de acceso y algún 
tiempo más que se requiere antes de que 
puede iniciarse un segundo acceso a 
memoria. 
• Velocidad de transferencia 
Es la velocidad a la que se pueden 
transferir datos a, o desde, una unidad de 
memoria. 
• Dispositivo físico 
• Semiconductor 
• Soporte magnético 
• Soporte óptico 
• Magneto-óptico 
• Características Físicas 
• Volátil/no volátil 
Las memorias semiconductoras pueden 
ser volátiles o no volátiles 
• Borrable/no borrable 
No pueden modificarse, salvo que se 
destruya la unidad de almacenamiento 
• Organización 
Memoria caché 
El objetivo de la memoria caché es lograr que la 
velocidad de la memoria sea lo más rápida posible, 
consiguiendo al mismo tiempo un tamaño grande al 
precio de memorias semiconductoras menos costosas. 
La caché contiene una copia de partes de la memoria 
principal. Cuando el procesador intenta leer una palabra 
de memoria, se hace una comprobación para determinar 
si la palabra está en la caché. Si es así, se entrega dicha 
palabra al procesador. 
 
Cuando ocurre un acierto decaché, los buffers de datos y 
de direcciones se inhabilitan, y la comunicación tiene 
lugar solo entre procesador y caché, sin tráfico en el bus. 
Cuando ocurre un fallo de caché, la dirección deseada se 
carga en el bus del sistema y el dato es llevado, a través 
del buffer de datos, tanto a la caché como al procesador. 
 
 
• La caché puede almacenar 64 KB. 
• Los datos se transfieren entre la memoria 
principal y la caché en bloques de 4 bytes. Esto 
significa que la caché está organizada en 16K= 
214 líneas de 4 bytes cada una. 
• La memoria principal es de 16MB, con cada byte 
directamente direccionable mediante una 
dirección de 24 bits (224 = 16M). Así pues, al 
objeto de realizar la correspondencia, podemos 
considerar que la memoria principal consta de 
4M bloques de 4 bytes cada uno. 
 
Manejo de entrada y salida 
El medio más comun para realizar la introducción de 
datos a una computadora es un teclado. Que permite a las 
personas introducir datos alfanuméricos. Cada vez que el 
usuario oprime una tecla, se envía un carácter codificado 
en binario a la computadora. La velocidad de 
introducción de estos datos depende el usuario ya que 
será tan rapido como el usuario teclee. A los dispositivos 
de entrada y salida tambien se les llama comúnmente 
periféricos. Otro de los periféricos más comunes es el 
monitor, es algo indispensable ya que en él se proyectan 
las imágenes. Y se podrían comentar asi varios 
periféricos, desde el mouse, impresoras, cintas 
magnéticas, etc. Pero ahora nos concentraremos más en 
las interfaces de estos. La interface basicamente 
proporciona un método para transferir informacion entre 
los dispositivos y de E/S. 
Un módulo E/S permite que el procesador gestione una 
amplia gama de dispositivos periféricos de una forma 
similar, ocultando los detalles concretos de 
temporización, formatos de datos y principios físicos de 
funcionamiento. El módulo de E/S se conecta con el 
procesador a través de un conjunto de líneas de datos, 
dirección y control (un bus). 
Un módulo de E/S dispone de la lógica específica para su 
conexión con uno o más dispositivos periféricos. En la 
siguiente figura se muestra la estructura general de un 
módulo de E/S: 
 
El codigo de función se denomina un comando de E/S y 
es, en esencia, una instrucción que se ejecuta en la 
interface y está conectada en la unidad periférica. Una 
interface puede recibir 4 tipos de comandos, y estos se 
clasifican en: 
• Control 
Se emite un comando de control que activa el 
periférico y le dice que hacer. Cada periférico 
tiene un comando de control especifico y cada 
uno recibe distintos comandos de control 
• Estado 
Se utiliza para probar diversas condiciones de la 
interfaz y un periférico. Por ejemplo, un pc puede 
que primero consulte el estado de un periférico 
antes de iniciar una transferencia 
• Salida de datos 
Este comando hace que una interface responda 
transfiriendo datos del canal a uno de sus 
registros 
• Entrada de datos 
Este comando realiza basicamente lo mismo que 
el de salida, guardando todos los datos en 
registros por medio de canales 
 
La estructura de un controlador de dispositivo tendrá que 
adaptarse en cada caso a las peculiaridades específicas del 
periférico. Unos tendrán que actuar sobre elementos 
electromecánicos otros sobre elementos ópticos. 
Presentan una estructura general como la representada en 
la siguiente figura: 
 
Analizaremos en este apartado el dialogo de señales que 
de forma general tiene lugar entre el módulo de E/S y el 
controlador de dispositivo en una transmisión de datos. 
• Salida 
En el caso de un dispositivo de salida (o de e/s 
en operación de salida) las líneas básicas que 
intervienen son las del bus de datos y dos de 
control: dato válido y dato aceptado. La primera 
indica al dispositivo la validez del dato presente 
en el bus de datos, y es activada por el módulo 
de E/S cuando ha estabilizado el bus de datos 
con el valor del dato a transmitir. 
La segunda la activa el dispositivo periférico en 
respuesta a la lectura y procesamiento del dato, y 
como respuesta a la disponibilidad para aceptar un 
nuevo dato. 
 
• Entrada 
En el caso de un dispositivo de entrada (o de e/s 
en operación de entrada) las líneas básicas que 
intervienen son las del bus de datos y dos de 
control: petición de dato y dato aceptado. La 
primera solicita al dispositivo un dato de 
entrada, y es activada por el módulo de E/S. La 
segunda la activa el dispositivo periférico 
cuando ha generado el dato y su valor es estable 
en el bus de datos. Con la activación de esta 
señal el módulo de E/S conoce la validez del 
dato en el bus y puede proceder a su carga en el 
registro de datos 
 
Buses 
A través de la investigacion de este documento hemos 
hablado sin parar de los buses, pues estos transportan 
datos, etc. Pero ¿Qué es un bus?, Un bus es un mecanismo 
comun para la comunicación entre los diferentes 
componentes del pc. En la parte física, estos buses son 
conductores por el cual viajan señales eléctricas. Los 
buses son los “caminos” que podemos observar en los 
dispositivos electrónicos, por ejemplo, en una 
motherboard. 
Estos buses son dispositivos comunes entre dos o más 
componentes, si dos componentes transmiten señales al 
mismo tiempo, puede causar una distorsión en las mismas 
y por consecuente perder informacion. Obviamente los 
buses transmiten 0 y 1, si se desea transmitir 1 byte, se 
deberán mandar 0 señales, una detrás de otra. 
Existen diferentes tipos de buses: 
• Bus del sistema 
Es el bus que comunica al procesador, memoria y E/S 
se lo denomina bus del sistema. 
• Bus de datos 
Por estas líneas se transfieren los datos, pueden ser de 
8, 16, 32 o más líneas, lo cual nos indica cuantos 
datos podemos transferir al mismo tiempo, y es muy 
influyente en el rendimiento del sistema. Por 
ejemplo, si el bus es de 8 líneas y las instrucciones 
son de 16 bits, el sistema va a tener que acceder 2 
veces a memoria para poder leer la instrucción 
• Bus de direcciones 
Por estas líneas se envía la dirección a la cual se 
requiere hacer referencia para una lectura o escritura, 
si el bus es de 8 líneas, por ejemplo, las 
combinaciones posibles para identificar una 
dirección irían del 00000000 al 11111111, son 256 
combinaciones posibles, en consecuencia, el ancho 
del bus de datos nos indica la cantidad de direcciones 
de memoria a la que podemos hacer referencia 
• Bus de control 
Estas líneas son utilizadas para controlar el uso del 
bus de control y del bus de datos. Se transmiten 
órdenes y señales de temporización. Las órdenes son 
muy diversas, por ejemplo: 
o Escritura en memoria. 
o Lectura de memoria. 
o Escritura de E/S. Lectura de E/S. 
o Transferencia reconocida. 
o Petición del bus. Sesión del bus. 
o Petición de interrupción. 
o Interrupción reconocida. 
o Señal de reloj. 
o Inicio 
Todo elemento que esté conectado al bus tiene que saber 
reconocer si la dirección que está en el bus de datos le 
corresponde, tiene que reconocer algunas órdenes 
transmitidas por el bus de control, y puede emitir algún 
tipo de señal por el bus de control. 
 
Jerarquía de buses 
Para mejorar el rendimiento del bus, las jerarquías de 
buses fueron implementadas cada vez más, una primera 
aproximación a una jerarquía de bus básica seria como la 
que se muestra: 
 
Primero tenemos un bus local, de alta velocidad que 
conecta el procesador a la cache, el controlador de la 
cache también puede acceder al bus del sistema, con esta 
implementación, la mayor parte de los datos a los que va 
a acceder el procesador, que están en la cache, serán 
entregados a una alta velocidad, otro punto a destacar de 
esta parte es que los accesos a memoria por parte de la 
cache no van a interrumpir el flujo de datos entre 
procesador y cache. También se ve la posibilidad de 
conectar un dispositivo de entrada salida al bus local.Luego tenemos el bus del sistema, al cual está conectada 
la memoria y por debajo el bus de expansión, al cual se 
pueden conectar una amplia diversidad de dispositivos, 
entre el bus del sistema y el bus de expansión se encuentra 
una interface, que entre las principales tareas está la de 
adaptar las velocidades de transmisión, por ejemplo para 
un dispositivo muy lento conectado al bus de expansión 
la interface podría acumular una cierta cantidad de datos 
y luego transmitirla a través del bus del sistema. 
Interrupciones 
Las interrupciones se pueden definir como un evento 
asíncrono (es decir que ocurre junto a otros procesos al 
mismo tiempo) al programa que se está ejecutando. 
Hay dos tipos de interrupciones: 
• Interrupciones de hardware 
Es iniciada por un periférico que demanda atencion 
debido a un evento asociada a este periférico, pues 
demanda algun procedimiento de parte del CPU. 
Estas interrupciones tienen otras interrupciones más 
pertenecientes: 
o Interrupción división por cero 
Se da cuando en una división el divisor 
es cero o cuando el cociente en una 
división es mayor que el valor maximo 
que permite el destino 
o Interrupción ejecución paso a paso 
Ocurre despues de ejecutar una 
instrucción si la bandera vale 1. Esto 
permite la ejecución de un programa 
paso a paso, lo que es muy útil para la 
depuración de programas 
o Interrupción no enmascarable 
Esta interrupción causa que la CPU deje 
lo que esta haciendo, cambie el puntero 
de instrucción para que apunte a una 
dirección particular y continue 
ejecutando el codigo desde esa dirección 
o Interrupción punto de ruptura 
Es una detención intencional o lugar de 
pausa en un programa, que tiene 
propósitos de depuración paso a paso. De 
manera mas general, un punto de ruptura 
es un medio de adquirir conocimiento de 
un programa durante su ejecución 
o Interrupción desbordamiento 
Ocurre cuando una cantidad excede la 
capacidad que se tiene. Por ejemplo, 
cuando un número es excesivamente 
grande 
o Interrupción doble falta 
En la arquitectura x86, una excepción 
doble falta ocurre si el procesador 
encuentra un problema mientras trata de 
servir una interrupción o excepción 
pendiente. Un ejemplo de una situación 
donde una doble falta ocurriría es cuando 
una interrupción es activada pero el 
segmento en el que el manejador de 
interrupciones reside es invalido 
o Interrupción dispositivo no disponible 
Esta ocurre si ejecutamos una 
instrucción cuando el dispositivo aun no 
se encuentra disponible para esa 
instrucción. 
• Interrupciones para interactuar con un periférico 
o Interrupciones de la BIOS 
Las funciones de BIOS se invocan, desde 
los programas de usuario, ejecutando una 
interrupción de software con un cierto 
valor inicial en los registros. La BIOS 
emplea un cierto rango de 
interrupciones, cada una encargada de 
una tarea especifica. 
Funciones de la BIOS: 
INT 10h: Servicios de Vídeo (texto y 
gráficos). 
INT 11h: Informe sobre la configuración 
del equipo. 
INT 12h: Informe sobre el tamaño de la 
memoria convencional. 
INT 13h: Servicios de disco (muy 
elementales: pistas, sectores, etc.). 
INT 14h: Comunicaciones en serie. 
INT 15h: Funciones casette (PC) y 
servicios especiales del sistema (AT). 
INT 16h: Servicios de teclado. 
INT 17h: Servicios de impresora. 
INT 18h: Llamar a la ROM del BASIC 
(sólo máquinas IBM). 
INT 19h: Re inicialización del sistema. 
INT 1Ah: Servicios horarios. 
INT 1Fh: Apunta a la tabla de los 
caracteres ASCII 128-255 (8x8 puntos). 
 
o Interrupción de DOS 
El Dos emplea varias interrupciones, al 
igual que la BIOS; sin embargo, cuando 
se habla de funciones del DOS, todo el 
mundo sobreentiende que trata de llamar 
a la INT 21h, la interrupción más 
importante con diferencia. 
Funciones del DOS: 
INT 20h: Terminar programa (tal vez en 
desuso). 
INT 21h: Servicios del DOS. 
INT 22h: Control de finalización de 
programas. 
INT 23h: Tratamiento de Ctrl-C. 
INT 24h: Tratamiento de errores críticos. 
INT 25h: Lectura absoluta de disco 
(sectores lógicos). 
INT 26h: Escritura absoluta en disco 
(sectores lógicos). 
INT 27h: Terminar dejando residente el 
programa (en desuso). 
INT 28h: Idle (ejecutada cuando el 
ordenador está inactivo). 
INT 29h: Impresión rápida en pantalla 
(no tanto). 
INT 2Ah: Red local MS NET. 
INT 2Bh-2Dh: Uso interno del DOS. 
INT 2Eh: Procesos Batch. 
INT 2Fh: Interrupción Multiplex. 
INT 30h-31h: Compatibilidad CP/M-80. 
INT 32h: Reservada. 
o Interrupción de dato exterior 
Un programa que se venia ejecutando 
luego de su instrucción I5, llama al 
sistema operativo, por ejemplo, para leer 
un archivo de disco (Cuando un 
programa necesita un dato exterior, se 
detiene y pasa a cumplir la tarea de 
recoger este dato) 
III. CONCLUSIONES 
 
Durante el desarrollo de esta investigación aprendimos 
sobre la arquitectura de como trabajan por dentro los CPU 
’s, y los tipos que hay de estos, entre diferentes cosas que 
van junto al apoyo de elementos que acompañan a la 
CPU, como por ejemplo son los buses para la transmisión 
de datos, y estos ayudan a los dispositivos de entrada y 
salida a transmitir los datos que son necesarios, asi como 
en una interrupción de software donde se detiene un 
programa esperando que el usuario por medio de un 
teclado o un mouse, introduzca un dato, y alli entran en 
juego, los buses, el cpu y su arquitectura, la memoria 
principal, la cache, pues cada uno lleva su función cuando 
un usuario manda un dato a la computadora, y tambien 
cuando la computadora, manda un dato al usuario a través 
del monitor. 
 
REFERENCIAS 
 
[1] Quiroga, P. (2010). Arquitectura de computadoras 
(Vol. 1). Alfaomega. 
 
[2] Mano, M. M. (1994). Arquitectura de computadoras. 
Pearson Educación. 
 
[3] Stallings, W. (2006). Organizacion Y Arquitectura De 
computadores (7.a ed.). Pearson Educación. 
[4]http://www.fdi.ucm.es/profesor/jjruz/web2/temas/ec8
.pdf 
[5]https://sites.google.com/site/computadorasarquitectur
a/unidad-4-los-sistemas-de-bus 
[6] 
https://sistemasitseldorado.files.wordpress.com/2010/09/
lenguaje-ensamblador-tercera-parte-unidad-i.pdf 
[7] 
http://www.ciens.ucv.ve:8080/genasig/sites/organizacio
n-del-comp-II/archivos/Interrupciones.pdf 
http://www.fdi.ucm.es/profesor/jjruz/web2/temas/ec8.pdf
http://www.fdi.ucm.es/profesor/jjruz/web2/temas/ec8.pdf
https://sites.google.com/site/computadorasarquitectura/unidad-4-los-sistemas-de-bus
https://sites.google.com/site/computadorasarquitectura/unidad-4-los-sistemas-de-bus
https://sistemasitseldorado.files.wordpress.com/2010/09/lenguaje-ensamblador-tercera-parte-unidad-i.pdf
https://sistemasitseldorado.files.wordpress.com/2010/09/lenguaje-ensamblador-tercera-parte-unidad-i.pdf
http://www.ciens.ucv.ve:8080/genasig/sites/organizacion-del-comp-II/archivos/Interrupciones.pdf
http://www.ciens.ucv.ve:8080/genasig/sites/organizacion-del-comp-II/archivos/Interrupciones.pdf
ACLARACIONES ADICIONALES 
 
1. Los valores de los márgenes del documento son los siguientes: 
• Superior: 1.9 cm 
• Inferior: 2.5 cm 
• Izquierdo-derecho: 1.7 cm 
2. El formato es a dos columnas con un espacio entre ellas de: 
• Espacio entre columnas: 0.5 cm 
3. Todos los párrafos deben estar justificados. 
4. Para el tamaño de la letra del documento: 
• Título: 24 puntos 
• Nombres de los autores: 11 puntos 
• Nombre del Tecnológico y Correos electrónicos: 9 puntos 
• Documento: 11 puntos 
5. La bibliografía debe incluir la siguirnte información: autor(es), título del libro o artículo, edición, nombre de 
la revista (para artículos). Editorial, año de publicación. Si es una dirección en internet, debe ir el URL 
completo. 
6. Es importante que las figuras, tablas y referencias se mencionen en el texto entre corchetes,k de lo contrario 
la referencia no tendrá validez. 
7. Todos los valores deben incluir su respectiva incertidumbre. 
 
 
MauricioSilva

Continuar navegando