Professional Documents
Culture Documents
1. Introducción
2. Generaciones de computadoras
3. Unidad Central del Sistema
4. Unidad Central de Proceso
5. Unidad de Control (CU)
6. Unidad Aritmética y Lógica (ALU)
7. Registros
8. Memoria de Acceso Aleatorio (RAM)
9. Memoria ROM
10. Memoria Caché
11. Memorias externas
12. Buses
13. Arquitecturas de Bus
14. Reloj
15. Tarjetas de expansión interna
16. Tarjetas Controladoras de Periféricos
17. Tarjetas de Expansión Controladoras del Modo de Video
18. Tarjetas Controladoras de Comunicaciones
19. Jerarquía de computadoras
20. Modelo de Von Neumann
21. Los componentes físicos de una unidad de disco duro
22. Organización de la memoria semiconductora
23. El Procesador
24. Lenguaje ensamblador
25. Bibliografía
1.- INTRODUCCIÓN
El concepto de arquitectura de computadoras en el entorno
informático proporciona una descripción de la construcción y distribución
física de los componentes de la computadora. Son todos aquellos
atributos que tienen un impacto directo en la ejecución lógica de un
programa.
Mientras tanto, el concepto de organización de computadoras se
refiere a las unidades funcionales y sus interconexiones.
La estructura es el modo en el que los componentes están
interconectados.
El funcionamiento es la operación de cada componente individual
como parte de la estructura, tales como el procesamiento de datos, el
almacenamiento de datos, la transferencia de datos y el control.
Gráficamente, las funciones serían algo así:
ENTORNO OPERATIVO
(FUENTE Y DESTINO DE
DATOS)
Sistema de
transferencia de
datos
PERMANENTE
(BIOS, ROM, USB,
TEMPORAL
DISCO DURO,
(RAM, CACHÉ)
DVD)
Mecanismo de
control Recurso de
Recurso de
almacenamiento
almacenamiento
de datos
de datos
Jerarquía de buses:
Para mejorar el rendimiento del bus, las jerarquías de buses fueron
implementadas cada vez mas, una primera aproximación a una jerarquía
de bus básica seria la siguiente:
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 esta 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 interfase, que entre las principales tareas
esta la de adaptar las velocidades de transmisión, por ejemplo para un
dispositivo muy lento conectado al bus de expansión la interfase podría
acumular una cierta cantidad de datos y luego transmitirla a través del
bus del sistema.
El hecho de que cada vez mas salgan al mercado dispositivos que
requieren mas velocidad de transmisión en los buses, hizo que los
fabricantes implementaran los buses de alta velocidad, el cual esta muy
estrechamente ligado al bus local, solo hay un adaptador que los une.
Debajo de este bus tenemos el bus de expansión, mas lento conectado
mediante otro adaptador.
Las señales de temporización indican la validez de los datos que están
en el bus en un momento dado.
Tipos de Operaciones
Procesador-memoria: Transferencia de datos entre la CPU y la memoria.
Procesador-E/S: Transferencia de datos entre la CPU y un modulo de E/S.
Procesamiento de datos: Alguna operación aritmética o lógica sobre los
datos
Control: Alteración de la secuencia de operaciones. Ej.: jump
Harvard
El modelo de Harvard consta de 2 memorias; memoria de datos y
memoria de instrucciones.
El CPU accede de manera independiente y simultánea a cualquiera de
las memorias. Como los buses son independientes, éstos pueden tener
distintos contenidos en la misma dirección.
21.- Los componentes físicos de una unidad de disco duro
· Cabeza de lectura / escritura: Es la parte de la unidad de disco que
escribe y lee los datos del disco. Su funcionamiento consiste en una
bobina de hilo que se acciona según el campo magnético que detecte
sobre el soporte magnético, produciendo una pequeña corriente que es
detectada y amplificada por la electrónica de la unidad de disco.
· Disco: Convencionalmente los discos duros están compuestos por
varios platos, es decir varios discos de material magnético montados
sobre un eje central. Estos discos normalmente tienen dos caras que
pueden usarse para el almacenamiento de datos, si bien suele
reservarse una para almacenar información de control.
· Eje: Es la parte del disco duro que actúa como soporte, sobre el cual
están montados y giran los platos del disco.
· Impulsor de cabeza: Es el mecanismo que mueve las cabezas de
lectura / escritura radialmente a través de la superficie de los platos de
la unidad de disco.
Mientras que lógicamente la capacidad de un disco duro puede ser
medida según los siguientes parámetros:
· Cilindro: Es una pila tridimensional de pistas verticales de los múltiples
platos. El número de cilindros de un disco corresponde al número de
posiciones diferentes en las cuales las cabezas de lectura/escritura
pueden moverse.
· Cluster: Es un grupo de sectores que es la unidad más pequeña de
almacenamiento reconocida por el DOS. Normalmente 4 sectores de 512
bytes constituyen un Cluster (racimo), y uno o más Cluster forman una
pista.
· Pista: Es la trayectoria circular trazada a través de la superficie circular
del plato de un disco por la cabeza de lectura / escritura. Cada pista está
formada por uno o más Cluster.
· Sector: Es la unidad básica de almacenamiento de datos sobre discos
duros. En la mayoría de los discos duros los sectores son de 512 Bytes
cada uno, cuatro sectores constituyen un Cluster.
Otros elementos a tener en cuenta en el funcionamiento de la unidad es
el tiempo medio entre fallos, MTBF (Mean Time Between Failures), se
mide en horas (15000, 20000, 30000..) y a mayor numero mas fiabilidad
del disco, ya que hay menor posibilidad de fallo de la unidad. Otro factor
es el AUTOPARK o aparcamiento automático de las cabezas, consiste en
el posicionamiento de las cabezas en un lugar fuera del alcance de la
superficie del disco duro de manera automático al apagar la
computadora, esto evita posibles daños en la superficie del disco duro
cuando la unidad es sometida a vibraciones o golpes en un posible
traslado.
22.- Organización de la memoria semiconductora
El elemento básico de la memoria semiconductora es la celda de
memoria, aunque existen muchas tecnologías utilizadas para su
implementación, todas compartes algunas propiedades.
* Presentan 2 estados, los cuales se utilizan para representar un uno o
un cero.
* Puede escribirse en ellas al menos una vez.
* Pueden leerse para saber su estado.
Lo más común es que posean tres terminales, uno para seleccionar la
celda para lectura o escritura, otra para indicar el tipo de operación
(lectura/escritura), y otro para los datos, como salida (lectura) o entrada
(escritura).
Características
El código escrito en lenguaje ensamblador posee una cierta dificultad de
ser entendido directamente por un ser humano ya que su estructura se
acerca mas bien al lenguaje máquina, es decir, lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código
escrito para un microprocesador en particular necesita ser modificado
muchas veces en su totalidad para poder ser usado en otro
microprocesador.
Los programas hechos en lenguaje ensamblador son generalmente más
rápidos y consumen menos recursos del sistema (memoria RAM y ROM).
Al programar cuidadosamente en lenguaje ensamblador se pueden crear
programas que se ejecutan más rápidamente y ocupan menos espacio
que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las
tareas realizadas por un microprocesador por lo que se pueden crear
segmentos de código difíciles de programar en un lenguaje de alto nivel.
Ensambladores: Un ensamblador (assembler en inglés) es un programa
que crea código objeto traduciendo instrucciones nemónicas de un
programa fuente escrito en ensamblador a códigos ejecutables e
interpretando los nombres simbólicos para direcciones de memoria y
otras entidades (ensamblado). El uso de referencias simbólicas es una
característica básica del lenguaje ensamblador, evitando tediosos
cálculos y direccionamiento manual después de cada modificación del
programa. La mayoría de los ensambladores también incluyen
facilidades para crear macros, a fin de generar series de instrucciones
cortas que se ejecutan en tiempo real, en lugar de utilizar subrutinas.
Los ensambladores son por lo general más fáciles de programar que los
compiladores de lenguajes de alto nivel, y han estado disponibles desde
la década de 1950. Los ensambladores modernos, especialmente para
arquitecturas basadas en RISC, como por ejemplo MIPS, SPARC y PA-
RISC optimizan las instrucciones para explotar al máximo la eficiencia de
segmentación[2] de la CPU.
Los ensambladores avanzados ofrecen posibilidades de abstracción que
incluyen:
Control avanzado de estructuras.
Procedimientos de alto nivel, declaración de funciones.
Tipos de datos que incluyen estructuras, registros, uniones, clases
y conjuntos.
Sofisticado procesamiento de macros.
Lenguaje: Un programa escrito en lenguaje ensamblador consiste en
una serie de instrucciones que corresponden al flujo de órdenes
ejecutables que pueden ser cargadas en la memoria de un sistema
basado en microprocesador.
Por ejemplo, un procesador x86 puede ejecutar la siguiente instrucción
binaria como se expresa en código de máquina:
Binario: 10110000 01100001 (Hexadecimal: 0xb061)
La representación equivalente en lenguaje ensamblador es más fácil de
recordar:
MOV al, 061h
Esta instrucción significa:
Asigna el valor hexadecimal 61 (97 decimal) al registro "al".
El mnemónico "mov" es un código de operación u "opcode", elegido por
los diseñadores de la colección de instrucciones para abreviar "move"
(mover, pero en el sentido de copiar valores de un sitio a otro). El
opcode es seguido por una lista de argumentos o parámetros,
completando una instrucción de ensamblador típica.
La transformación del lenguaje ensamblador en código máquina la
realiza un programa Ensamblador, y la traducción inversa la puede
efectuar un desensamblador. A diferencia de los lenguajes de alto nivel,
aquí hay usualmente una correspondencia 1 a 1 entre las instrucciones
simples del ensamblador y el lenguaje de máquina. Sin embargo, en
algunos casos, un ensamblador puede proveer "pseudo instrucciones"
que se expanden en un código de máquina más extenso a fin de proveer
la funcionalidad necesaria. Por ejemplo, para un código máquina
condicional como "si X mayor o igual que" , un ensamblador puede
utilizar una pseudoinstrucción al grupo "haga si menor que" , y "si = 0"
sobre el resultado de la condición anterior. Los Ensambladores más
completos también proveen un rico lenguaje de macros que se utiliza
para generar código más complejo y secuencias de datos.
El uso del ensamblador no resuelve definitivamente el problema de
cómo programar un sistema basado en microprocesador de modo
sencillo ya que para hacer un uso eficiente del mismo, hay que conocer
a fondo el microprocesador, los registros de trabajo de que dispone, la
estructura de la memoria, y muchas cosas más referentes a su
estructura básica de funcionamiento.
Cada arquitectura de microprocesadores tiene su propio lenguaje de
máquina, y en consecuencia su propio lenguaje ensamblador ya que
este se encuentra muy ligado al la estructura del hardware para el cual
se programa. Los microprocesadores difieren en el tipo y número de
operaciones que soportan; también pueden tener diferente cantidad de
registros, y distinta representación de los tipos de datos en memoria.
Aunque la mayoría de los microprocesadores son capaces de cumplir
esencialmente las mismas funciones, la forma en que lo hacen difiere y
los respectivos lenguajes ensamblador reflejan tal diferencia.
Pueden existir múltiples conjuntos de mnemónicos o sintaxis de lenguaje
ensamblador para un mismo conjunto de instrucciones, instanciados
típicamente en diferentes programas en ensamblador. En estos casos, la
alternativa más popular es la provista por los fabricantes, y usada en los
manuales del programa.
Código máquina: El código máquina, o lenguaje de máquina, está
formado por instrucciones sencillas, que -dependiendo de la estructura
del procesador pueden especificar:
Registros específicos para operaciones aritméticas,
direccionamiento o control de funciones.
Posiciones de memoria específicas (offset).
Modos de direccionamiento usados para interpretar operandos.
Las operaciones más complejas se realizan combinando estas
instrucciones sencillas, que pueden ser ejecutadas secuencialmente o
mediante instrucciones de control de flujo.
Las operaciones disponibles en la mayoría de los conjuntos de
instrucciones incluye:
mover
llenar un registro con un valor constante
mover datos de una posición de memoria a un registro o
viceversa
escribir y leer datos de dispositivos
computar
sumar, restar, multiplicar o dividir los valores de dos
registros, colocando el resultado en uno de ellos o en otro registro
realizar operaciones binarias, incluyendo operaciones lógicas
(AND/OR/XOR/NOT)
comparar valores entre registros (mayor, menor, igual)
afectar el flujo del programa
saltar a otra posición en el programa y ejecutar instrucciones
allí
saltar si se cumplen ciertas condiciones (IF)
saltar a otra posición, pero guardar el punto de salida para
retornar (CALL, llamada a subrutinas)
Algunas computadoras incluyen instrucciones complejas dentro de sus
capacidades. Una sola instrucción compleja hace lo mismo que en otras
computadoras puede requerir una larga serie de instrucciones, por
ejemplo:
salvar varios registros en la pila de una sola vez
mover grandes bloques de memoria
operaciones aritméticas complejas o de punto flotante (seno,
coseno, raíz cuadrada)
25.- Bibliografía:
http://www.monografias.com/trabajos17/arquitectura-
computadoras/arquitectura-computadoras.shtml
http://html.rincondelvago.com/arquitectura-de-
computadoras_2.html
http://www.taringa.net/posts/apuntes-y-
monografias/2059091/Arquitectura-y-organizacion-de-
computadoras-1.html
http://www.taringa.net/posts/apuntes-y-
monografias/2097028/Arquitectura-y-organizacion-de-
computadoras-2.html
http://www.monografias.com/trabajos16/memorias/memorias.shtm
l
http://www.alegsa.com.ar/Dic/memoria%20externa.php
http://docs.google.com/viewer?
a=v&q=cache:HIv81PiJg7kJ:www.dc.uba.ar/people/materias/oc1/fil
es/teorica/TD02B.pdf+jerarquia+de+computadoras+nivel+del+le
nguaje+ensamblador&hl=es&gl=mx&pid=bl&srcid=ADGEESjkiYU
HpKzXO7D1s6iB6riv2M3vPhjbSfXxaV0B5gCscn6bTqwP1G0zaBGfhy
1mLXZzstEvFp16SJI5rzqRg2_OJXnrCUNe7O67l7g1edA55vbAzanJO7
QhyYaoJlSoMooFuTDR&sig=AHIEtbQlG2jz_FEgUltYEHre1GBaM-
dvGw
http://iteso.mx/~jluis/acpdf/oto-04/14-Memoria-externa.PDF
http://www.wikilearning.com/curso_gratis/b_curso_b_de_programac
ion_de_virus-ensamblador_i_conceptos_basicos/4312-5