Este documento resume cinco puntos sobre arquitectura de hardware. El primer punto describe las unidades aritméticas lógicas y de punto flotante en los procesadores. El segundo punto explica la pila de datos y su uso. El tercer punto compara lenguajes ensambladores con lenguajes de programación más comunes como C y Java. El cuarto punto describe instrucciones como MOV, ADD, SUB, MUL y DIV. El quinto punto explica cómo construir una unidad aritmética lógica básica usando conjuntos de bits.
La familia x86 utiliza la arquitectura de Von Newman.
En este diseño se buscaba la comunicación entre todos los bloques que lo integran, de esta manera se pueden enviar y recibir datos tanto de la memoria como de los dispositivos de I/O
Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina.
La familia x86 utiliza la arquitectura de Von Newman.
En este diseño se buscaba la comunicación entre todos los bloques que lo integran, de esta manera se pueden enviar y recibir datos tanto de la memoria como de los dispositivos de I/O
Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina.
En este material podrás encontrar información acerca de los tipos, caracteristicas, ejemplos de arquitecturas de computadoras. Nota: Esta es la actualización de mi material # 3
2. PRIMER PUNTO
• ALU. Acrónimo de unidad aritmetica lógica. Normalmente, los procesadores tienen varias de
estas en el interior de la unidad de ejecución de números enteros. Por ejemplo, la
arquitectura de los procesadores AMD K10 era capaz de calcular 6 micros operaciones por
ciclo de reloj. Se utiliza el termino micro por que las operaciones más complejas se dividen
dando lugar a varias de ellas.
• FPU. Acrónimo de unidad de punto flotante. Es decir, realizan las operaciones sobre los
números decimales. Estas unidades suelen ser más complejas y por lo tanto necesitan de
más área dentro del micro. Esto es lo que ha llevado a AMD a integrar solo una cada dos
nucleos en su arquitectura CMT.
En definitiva, los fabricantes de procesadores tienen que elegir entre ofrecer un rendimiento
elevado para las aplicaciones convencionales o ser capaces de dar buenas prestaciones en
aplicaciones científicas o de generación y tratamiento de imágenes.
Es muy importante entender que el diseño de las ALUS y de las APUS internamente no es el
mismo en distintas arquitecturas. En cada nueva generación los fabricantes son capaces de
hacer que sus bloques realicen un mayor número de operaciones por ciclo de reloj.
3. SEGUNDO PUNTO
Stack o pila es una estructura de datos con acceso del tipo LIFO (Last In
First Out), último en entrar, primero en salir. Como similitud se puede
asociar a un almacenamiento de libros formando una pila, en la que se
almacenan uno sobre otro, los nuevos elementos se apilan sobre el
último, y cunado se retiran se extrae el último que se ha apilado.
Este tipo de estructura de datos es fácil de desarrollar por los sistemas
microprocesadores y resulta de gran utilidad para trabajar con listas de
datos y es imprescindible para el trabajo interno del microprocesador
en las subrutinas e interrupciones.
Algunos microprocesadores pueden tener el Stack en su interior,
representando un sistema muy rápido pero de tamaño limitado, la
mayoría de microprocesadores disponen el stack en la memoria
externa, hecho que proporciona una gran capacidad de
almacenamiento y el control de su ubicación, aunque el acceso sea
más lento.
4. TERCER PUNTO
• En el mundo de la programación existen diversos tipos de lenguajes que permiten diferentes ejecuciones, cada uno tiene pros y
contras respecto a sus competidores y también poseen distintos usos en este punto se mostraran las ventajas y desventajas de
los leguajes ensambladores de procesadores con respecto a lenguajes mas habituales como c o java.
• Te permite hacer procesadores que en si son estructuras de datos mas complejas que los programas que permite realizar java o
C.
• Tiene un sinfín de ayudas dentro del programa que permiten un mejor entendimiento y mejor ejecución
• Tiene una gran cantidad de compresión de datos y no hay necesidad de crear tantas variables y poder tener muchos datos
• Permite ver todos los cambios que ocurren un la ejecución del programa y muestran los saltos de cambio de línea según la
acción que este ejerciendo.
• Ayuda a generar procesos aritméticos mas simples ya que los tiene implícitos.
• Generalmente estos programa necesitan de demasiadas líneas de código para crear programas muy simples.
• Tiene códigos que tienden a confundir al usuario
• Necesita mucha repetición en sus códigos para hacer acciones diferentes
• Tiene ambientaciones que no muestran los errores antes de compilarlos y tiene un panorama grafico muy deficiente
5. CUARTO PUNTO
MOV
• Esta instrucción copia el segundo operando
(origen) en el primer operando (destino)
• Se puede realizar copia directa de los
numeros, o puede ser el registro en el que se
encuentra guardado.
Ambos operandos deben tener el mismo
tamaño, es decir:
• Si el registro de origen es de 8 bits, el registro
destino debe ser de 8 bits también y
viceversa.
ADD
Esta instrucción realiza la suma de los
dos operandos, almacenando el
resultado en el primero de ellos, con la
siguiente sintaxis:
ADD operando1, operando2
SUB
Esta instrucción realiza una resta
entre los operandos.
Aparte de eso, sus características y
restricciones son las mismas del
ADD
6. CUARTO PUNTO
MUL
• La instrucción MUL realiza
multiplicación (sin signo) entre
AL y otro registro o un número.
El resultado se almacena en AX.
• DIV
• La instrucción DIV realiza la
multiplicación (sin signo) entre
AX y otro registro, quedando el
resultado en AL y el modulo en
AH, es decir, el algoritmo es
HLT (Halt the System)
Como la traducción del nombre indica "Parar el
Sistema"
Esta instrucción termina el programa una vez que es
ejecutada.
ET
Instrucción de retorno.
Si la ponemos al final del codigo, nos retorna al
sistema operativo, es decir, nos finaliza el programa.
Si la ponemos al final de una función, nos retorna a
la línea de código siguiente al llamado.
CMP
Compara dos registros indicados.
7. QUINTO PUNTO
• Primero hay que entender la arquitectura que forma una ALU
esta esta formada por 4 componentes:
• Conjunto de 4 bits para el primer digito.
• Conjunto de 4 bits para el segundo digito.
• Conjunto de 4 bits para la asignación del modo
• 1 bit de acarreo
Ya con esto claro lo primero es crear numero en base 10 del 1 al
9 para que sean nuestros dígitos y poder relizar operación
aritméticas mas complejas, esto con nuestros dos primeros
conjuntos de 4 bits los cuales arrojaran por medio de leds y
switchs nuestros dos dígitos.
8. QUINTO PUNTO
• Ya con nuestros dos dígitos asignados el
siguiente paso es generar el modo en nuestro
ALU esto mediante nuestro tercer conjunto de
4 bits este conjunto solo corresponderá a
numerps binarios y en ellos podremos escoger
cual será la operación aritmética que
queremos darle a nuestro ALU.
• Ya sabiendo cuales son los mdos disponibles
se ingresaran en nuestro conjunto de 4 bits
para asi seleccionar el modo y generar la
operación aritmética que en el caso que se
pregunto anteriormente será 1000 con la