0% encontró este documento útil (0 votos)
133 vistas35 páginas

Historia de los Microprocesadores

El documento detalla la historia de los microprocesadores, comenzando con el Intel 4004, el primer microprocesador comercial, y su evolución a través de modelos como el 8008 y el 8080. Se discuten los avances en tecnología, como la integración de componentes en un solo chip y el desarrollo de arquitecturas como CISC y RISC, así como la importancia del MIDI en la comunicación entre dispositivos musicales. Además, se mencionan microcontroladores como el Intel 8051 y su relevancia en sistemas embebidos.

Cargado por

Mondongo Espk
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
133 vistas35 páginas

Historia de los Microprocesadores

El documento detalla la historia de los microprocesadores, comenzando con el Intel 4004, el primer microprocesador comercial, y su evolución a través de modelos como el 8008 y el 8080. Se discuten los avances en tecnología, como la integración de componentes en un solo chip y el desarrollo de arquitecturas como CISC y RISC, así como la importancia del MIDI en la comunicación entre dispositivos musicales. Además, se mencionan microcontroladores como el Intel 8051 y su relevancia en sistemas embebidos.

Cargado por

Mondongo Espk
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INSTITUTO POLITECNICO NACIONAL

CECyT 9 “Juan De Dios BATIZ”

U.A. ARQUITECTURA DE MICROCONTROLADORES

TAREA 2

-Historia de los Microprocesadores

-mc51 primer procesador fabricado por INTEL

-Sistema MIDI

-Zilog z80

-CISC Y RISC

GRUPO: 5IM2

PROFESOR: Olivares Vargas Jesús Alberto

ALUMNO: Pineda Omaña Moisés Natanael


HISTORIA DE LOS MICROPROCESADORES

Microprocesador:

El procesador o microprocesador es la unidad de procesamiento principal de un


ordenador, es por ello la unidad más importante, el «cerebro» de un ordenador.

Es el encargado de ejecutar todos los programas, desde el sistema operativo hasta


las aplicaciones de usuario; solo ejecuta instrucciones en lenguaje máquina,
realizando operaciones aritméticas y lógicas simples, tales
como sumar, restar, multiplicar, dividir y las operaciones bitwise, también las lógicas
binarias y accesos a memoria.

El microprocesador surgió como resultado de la evolución de tecnologías


preexistentes, especialmente en el ámbito de la computación y los semiconductores.
Estas tecnologías comenzaron a desarrollarse a mediados del siglo XX,
combinándose en la década de 1970 para crear el primer microprocesador. Durante
la Segunda Guerra Mundial, se hicieron grandes avances en computación para
aplicaciones militares, y en la posguerra, la computación digital se expandió hacia el
ámbito científico y civil. En paralelo, los progresos en la electrónica permitieron el
desarrollo de componentes de estado sólido, como el transistor, inventado en 1948
en los laboratorios Bell. En los años 1950, aparecieron las primeras computadoras
digitales de propósito general,
que usaban tubos de vacío como
componentes electrónicos.

A medida que avanzaba la


tecnología, se desarrollaron
circuitos lógicos más eficientes,
como la arquitectura de von
Neumann, que permitía
almacenar datos y programas en
memoria para su posterior
ejecución. El transistor reemplazó
al tubo de vacío en el diseño de
circuitos electrónicos a finales de
los años 1950, lo que impulsó la evolución de las computadoras de estado sólido. En
los años 1960, surgieron diversas tecnologías de lógica digital, y a finales de esa
década se comenzó a producir dispositivos con una mayor integración de
componentes.

El microprocesador, que redujo la arquitectura de la computadora a un solo circuito


integrado, fue un avance crucial. Intel presentó el primer microprocesador, el Intel
4004, en 1971, y con el paso del tiempo, se desarrollaron microprocesadores más
potentes, como el Intel 8008 y el 8086, que fue el primer miembro de la arquitectura
x86. El Intel 80286, lanzado en 1982, y el Intel 80386, de 32 bits, introducido a fines de
la década de 1980, marcaron hitos importantes en el desarrollo de los
microprocesadores. En la década de 1990, surgieron procesadores como el DEC
Alpha y el Intel Pentium, que elevaron la velocidad y capacidad de procesamiento.
Los microprocesadores modernos, como la serie Core i7, pueden operar a
frecuencias de más de 3 GHz y contienen cientos de millones de transistores.

Hasta los primeros años de la década de 1970, los procesadores no podían estar
contenidos en un solo circuito integrado; se necesitaban varios chips para formar una
CPU, separando funciones como la Unidad Aritmética Lógica (ALU), la Unidad de
Control y el Banco de Registros. Sin embargo, en 1971, Intel logró integrar todos los
transistores de un procesador en un solo circuito integrado, el modelo 4004,
marcando el nacimiento del microprocesador.

EL 4004

El Intel 4004, lanzado en


noviembre de 1971, fue el
primer microprocesador
comercial del mundo,
marcando un hito fundamental
en la historia de la informática.
Este revolucionario chip fue
desarrollado por la compañía
Intel, en colaboración con la
empresa japonesa Busicom,
que necesitaba un conjunto de
circuitos integrados para sus calculadoras programables. El equipo de desarrollo
estuvo liderado por el ingeniero Federico Faggin, junto con Ted Hoff y Stanley Mazor
Características técnicas:

- Arquitectura: El Intel 4004 fue - Transistores: Contenía Frecuencia de reloj: El


un microprocesador de 4 bits, 2.300 transistores de chip funcionaba a una
lo que significa que podía tecnología MOS (Metal- frecuencia de reloj de
procesar información en Oxide-Semiconductor), lo 740 kHz, lo que le
bloques de 4 bits a la vez. A
que fue un avance permitía realizar unas
pesar de sus limitaciones,
significativo en 92.000 operaciones por
permitió realizar tareas que
miniaturización. Esta segundo.
previamente requerían varios
chips separados integración permitía que
todo el procesador
funcionara en un solo chip,
algo inédito en su época.
Instrucciones por ciclo:
Podía ejecutar
instrucciones básicas en
Memoria: Aunque el 4004
un ciclo de reloj, como
no tenía memoria interna de
sumar, restar, mover datos
almacenamiento, estaba
y realizar operaciones
diseñado para funcionar
lógicas, además de
con módulos de memoria
controlar periféricos.
externa, incluyendo ROM y
RAM, que se usaban para
cargar datos y programas.

Desarrollo y aplicación:

El Intel 4004 fue originalmente diseñado para ser el corazón de una calculadora de
sobremesa, como parte de un conjunto de chips que Intel había creado para la
compañía Busicom. El chip fue una solución eficiente que reemplazó un sistema más
complejo de varios circuitos integrados, simplificando el diseño y reduciendo costos.
Aunque la primera aplicación comercial del 4004 fue en una calculadora, su
versatilidad lo convirtió en el punto de partida para una nueva era en la computación.
Importancia histórica:

El Intel 4004 marcó el inicio de la era de los microprocesadores, permitiendo que la


potencia de cálculo, hasta entonces reservada a grandes y costosos equipos, pudiera
ser miniaturizada en dispositivos más accesibles. Este avance fue clave para el
desarrollo posterior de las computadoras personales y otros dispositivos
electrónicos. Además, el 4004 mostró por primera vez que era posible construir una
CPU completa en un solo chip, sentando las bases para futuras generaciones de
microprocesadores, incluidos los de 8, 16 y 32 bits.

Legado:

Aunque su potencia era muy limitada en comparación con los estándares actuales, el
Intel 4004 fue un parteaguas que impulsó a Intel a desarrollar procesadores más
avanzados, como el Intel 8008 en 1972 y el Intel 8080 en 1974. El diseño y la
implementación del 4004 demostraron que la computación podía ser más compacta,
rápida y eficiente, y abrió el camino para la creación de microprocesadores de uso
general.

EL 8008 Y 8080

El Intel 8008, lanzado en 1972, fue el primer


microprocesador de 8 bits de Intel, capaz de manejar
datos en bloques de 8 bits, lo que lo hacía más potente
que el 4004. Originalmente desarrollado para terminales
de computadoras, podía procesar hasta 3300 transistores
y operar a frecuencias de hasta 800 kHz.

El Intel 8080, introducido en 1974, fue un gran avance


sobre el 8008. También de 8 bits, contenía 4500 transistores y podía ejecutar hasta
200,000 instrucciones por segundo. Fue el primer microprocesador verdaderamente
diseñado para uso general, lo que lo hizo muy popular en computadoras personales
tempranas, como la Altair 8800.
El Motorola 6800, lanzado en 1974, fue uno de los primeros microprocesadores de 8
bits y un competidor directo del Intel 8080. Diseñado por un equipo liderado por
Chuck Peddle en Motorola, el 6800 fue notable por su simplicidad en el diseño y su
facilidad de uso, lo que lo hizo popular entre ingenieros. Funcionaba con 4,100
transistores y tenía una arquitectura de 8 bits, lo que le permitía manejar
instrucciones más complejas que los procesadores anteriores.

Características del Motorola 6800:

Arquitectura: 8 bits, con un bus de direcciones de 16 bits, lo que permitía acceder


hasta 64 KB de memoria.

Frecuencia de reloj: Entre 1 MHz y 2 MHz, dependiendo de la versión.

Soporte periférico: Fue uno de los primeros procesadores en introducir un conjunto


completo de chips periféricos (como controladores de interfaz y temporizadores) que
facilitaban la conexión con dispositivos externos.

Programación: Era más fácil de programar en comparación con otros procesadores


de la época debido a su eficiente conjunto de instrucciones.

El "clon": MOS Technology 6502

El MOS Technology 6502 fue un "clon" del Motorola 6800, desarrollado por Chuck
Peddle y otros ingenieros que dejaron Motorola para trabajar en MOS Technology. El
6502, lanzado en 1975, fue más asequible y técnicamente similar al 6800, aunque
con algunas diferencias clave en su diseño.

- Costo: Una de las razones de su éxito fue su precio mucho más bajo en
comparación con el 6800 y otros procesadores, lo que lo hizo atractivo para
fabricantes de computadoras personales.

- Compatibilidad: Aunque no era 100% compatible con el 6800 a nivel de hardware,


tenía un conjunto de instrucciones similar, lo que facilitaba la transición para los
desarrolladores.
El 6502 se usó en algunas de las primeras computadoras personales icónicas, como
el Apple I, Apple II, y las consolas de videojuegos Atari 2600 y NES, lo que contribuyó
a su popularidad y legado.

En resumen, el Motorola 6800 allanó el camino para muchos avances en la industria


de los microprocesadores, mientras que su "clon", el MOS Technology 6502, ayudó a
democratizar la computación personal gracias a su bajo costo y adopción en
dispositivos populares.

El Zilog Z80, lanzado en 1976, fue un microprocesador de 8 bits que se destacó por
su rendimiento, bajo costo y compatibilidad con el conjunto de instrucciones del Intel
8080. Diseñado por Federico Faggin, uno de los ingenieros que trabajaron en el
desarrollo del Intel 8080, el Z80 se convirtió en uno de los procesadores más
populares de su época, especialmente en computadoras personales y consolas de
videojuegos.

Características clave del Zilog Z80:

- Arquitectura de 8 bits: Como procesador de 8 bits, podía procesar datos en bloques


de 8 bits y tenía un bus de direcciones de 16 bits, lo que le permitía acceder a hasta
64 KB de memoria.

- Mejoras sobre el Intel 8080: Aunque era compatible con el conjunto de


instrucciones del Intel 8080, el Z80 incorporaba mejoras, como nuevos registros de
16 bits, un mejor manejo de interrupciones y la capacidad de trabajar con memoria
dinámica (DRAM) sin necesidad de un controlador externo.

- Frecuencia de reloj: El Z80 podía operar a frecuencias que oscilaban entre 2.5 MHz y
8 MHz, dependiendo de la versión, lo que le otorgaba un buen rendimiento para la
época.

- Uso extendido: Fue ampliamente adoptado en computadoras personales como la


TRS-80, ZX Spectrum, y la Amstrad CPC. También se utilizó en consolas de
videojuegos, como la Game Boy de Nintendo, y en sistemas embebidos y
controladores.
Ventajas y aplicaciones:

- Popularidad en computadoras personales: El Z80 fue muy popular en las primeras


computadoras personales debido a su capacidad de ejecutar software compatible
con el Intel 8080 y su costo accesible, lo que lo hizo preferido por muchos
fabricantes.

- Versatilidad: Su diseño permitía su uso en una amplia variedad de dispositivos,


desde computadoras hasta sistemas embebidos y periféricos.

- Compatibilidad: Gracias a su compatibilidad con el software del Intel 8080, muchas


empresas que ya habían desarrollado software para este procesador pudieron migrar
fácilmente al Z80, lo que facilitó su adopción.

Legado

El Zilog Z80 es considerado uno de los microprocesadores más influyentes de la


historia de la informática, tanto por su impacto en las primeras computadoras
personales como por su durabilidad, ya que sigue siendo utilizado en algunos
sistemas embebidos hasta el día de hoy. Su diseño simple pero eficiente y su
conjunto de instrucciones ampliado hicieron que fuera extremadamente flexible y
adaptable a diversas aplicaciones.

El Intel 8051, también conocido como MCS-51, es un microcontrolador de 8 bits


lanzado en 1980, diseñado especialmente para sistemas embebidos. A diferencia de
los microprocesadores tradicionales que requieren varios chips para manejar
periféricos, el 8051 integra todos los componentes esenciales en un solo chip, lo que
lo hace ideal para aplicaciones controladas por microprocesadores, como
electrodomésticos, dispositivos médicos y sistemas automotrices.
Características clave del Intel 8051 (MC51):
1.Arquitectura de 8 bits:

- El microcontrolador 8051 es de 8 bits, lo que significa que puede manejar y


procesar datos en bloques de 8 bits.

2. Memoria integrada:

- 4 KB de ROM interna para almacenar el programa.

- 128 bytes de RAM para almacenamiento de datos temporales y variables.

- 32 registros de propósito general, organizados en bancos de registros.

3. E/S (Entradas/Salidas):

- Cuenta con 32 líneas de E/S de propósito general, organizadas en cuatro puertos


de 8 bits, que permiten la conexión directa con periféricos y otros dispositivos.

4. Temporizadores y contadores:

- Dispone de “dos temporizadores/counters de 16 bits”, que permiten medir


intervalos de tiempo y generar señales de temporización para diversas aplicaciones.

5. Soporte de interrupciones:

- Tiene cinco fuentes de interrupciones (dos externas, dos del temporizador, y una
del puerto serie), lo que permite gestionar eventos de forma eficiente, como señales
externas o finalización de operaciones.
6. Comunicación serie:

- El 8051 tiene un puerto serial full-duplex para la comunicación asíncrona, que es


útil para la transmisión de datos con otros dispositivos o computadoras.

7. Frecuencia de reloj:

- El 8051 opera típicamente a una frecuencia de reloj de 12 MHz, lo que proporciona


un buen rendimiento para sistemas embebidos.

8. Conjunto de instrucciones:

- El conjunto de instrucciones del 8051 es eficiente, con alrededor de 255


instrucciones diseñadas para aplicaciones de control y manipulación de bits. Muchas
de estas instrucciones se ejecutan en 1 o 2 ciclos de reloj.

Ventajas del 8051:

- Integración en un solo chip: El 8051 incluye CPU, RAM, ROM, E/S y otros periféricos,
lo que reduce la necesidad de circuitos adicionales en aplicaciones embebidas.

- Amplia adopción: Su diseño y características lo convirtieron en uno de los


microcontroladores más utilizados en la industria, lo que generó una gran cantidad
de versiones compatibles producidas por varios fabricantes.

- Flexibilidad: Puede adaptarse fácilmente a una variedad de aplicaciones


embebidas, desde sistemas industriales hasta dispositivos domésticos.
MIDI

(Musical Instrument Digital Interface) es un estándar tecnológico que permite la


comunicación entre diferentes dispositivos musicales electrónicos, como
sintetizadores, computadoras, controladores de teclado y otros instrumentos
digitales. MIDI no transmite audio en sí mismo, sino que envía información sobre
notas, velocidad, control de parámetros y otros aspectos musicales para que los
dispositivos conectados puedan reproducir música de manera coordinada.

¿Qué es MIDI?

MIDI es un protocolo de comunicación que permite a los dispositivos musicales


intercambiar información musical en tiempo real. En lugar de transmitir sonidos,
transmite mensajes que indican:

- Qué nota se toca.

- La duración y velocidad de la nota.

- Cuándo empieza y cuándo termina.

- Cambios en el tono, volumen o efectos aplicados al sonido.

Estos mensajes permiten controlar instrumentos y software musical desde otros


dispositivos sin que se pierda la calidad del sonido original. Un solo dispositivo puede
controlar varios instrumentos electrónicos al mismo tiempo, y todos pueden estar
sincronizados.
¿Cuándo y por qué surge?

MIDI fue desarrollado a principios de los años 80, con su lanzamiento oficial en 1983.
Surge en respuesta a la necesidad de un estándar de comunicación entre los
instrumentos electrónicos, ya que hasta ese momento, cada fabricante de
sintetizadores y dispositivos musicales usaba sus propios sistemas de control, lo que
dificultaba la integración entre equipos de diferentes marcas.

Dave Smith, un pionero de la música electrónica y


fundador de Sequential Circuits, fue uno de los
principales impulsores de MIDI, junto con empresas
como Roland, Yamaha, Korg, y Oberheim, que
también colaboraron para crear este estándar
universal. MIDI se creó para facilitar la
interoperabilidad y compatibilidad entre diferentes
dispositivos de audio, permitiendo a los músicos conectar y controlar varios
instrumentos sin problemas.

Aplicaciones de la tecnología MIDI:

1. Música en vivo: Los músicos pueden utilizar teclados y controladores MIDI para
disparar sonidos de diferentes sintetizadores y módulos de sonido en tiempo real,
creando configuraciones complejas y variadas sin necesidad de tener múltiples
teclados.

2. Producción musical: MIDI es fundamental en los DAWs (Digital Audio


Workstations), como Ableton Live, Logic Pro, y FL Studio, donde permite secuenciar
música, controlar instrumentos virtuales y ajustar parámetros de efectos y mezclas
con gran precisión

3. Edición y composición: MIDI facilita la edición musical, ya que los eventos de notas
y parámetros son fáciles de manipular. Los compositores pueden modificar la
duración, la altura o la velocidad de las notas después de haber sido grabadas sin
alterar el sonido original.

4. Sistemas de iluminación y efectos escénicos: MIDI también se utiliza para


controlar efectos de iluminación y escenografía en conciertos, sincronizando efectos
visuales con la música en tiempo real.
5. Educación musical: Existen programas que utilizan MIDI para ayudar a los
estudiantes de música a aprender teoría musical y mejorar su práctica de
instrumentos.

6. Controladores MIDI: Los dispositivos como controladores de teclado, pads, o


guitarras MIDI permiten a los músicos tocar y controlar cualquier instrumento virtual
o dispositivo externo sin que necesariamente reproduzcan sonidos de manera
autónoma.

Ventajas de MIDI:

1. Compatibilidad universal: MIDI es un estándar ampliamente adoptado, lo que


significa que cualquier dispositivo compatible con MIDI puede comunicarse con otros
sin importar la marca o el modelo.

2. Flexibilidad y control preciso: Al transmitir solo datos de control y no audio, los


músicos tienen un control preciso sobre aspectos como la velocidad de las notas, la
modulación, y otros parámetros que enriquecen la interpretación musical.

3. Capacidad para múltiples canales: MIDI puede transmitir en 16 canales


simultáneamente, permitiendo el control de diferentes instrumentos electrónicos o
secciones dentro de una orquesta virtual desde un solo dispositivo

4. Facilidad de edición: Como la información se transmite en forma de datos


digitales, es extremadamente sencillo modificar una secuencia MIDI, ajustando notas
y parámetros con gran exactitud.

5. Tamaño reducido de los archivos: Los archivos MIDI (.mid) son mucho más
pequeños que los archivos de audio, lo que los hace ideales para compartir y trabajar
sin ocupar grandes cantidades de espacio en disco.

6. Control externo: Además de controlar instrumentos musicales, MIDI puede


interactuar con dispositivos de iluminación, efectos especiales, y otros equipos
utilizados en el entorno escénico.
FLAGS REISTERS

En los procesadores de 8 bits, como el Intel 8080, el Zilog Z80 o el MOS 6502, los
registros de bandera o "flags" son registros de un solo bit que indican el resultado de
una operación aritmética o lógica, proporcionando información importante para la
toma de decisiones en el flujo de ejecución de un programa. Estos registros ayudan al
procesador a ejecutar instrucciones de control, como saltos condicionales,
basándose en el estado de ciertos cálculos o condiciones. A continuación, se
presentan algunos registros de bandera comunes en estos procesadores:

Bandera de procesadores comunes de 8 bits

• Bandera de Acarreo (Carry Flag, C)

Indica un acarreo (o préstamo en operaciones de resta) en la operación aritmética. Se


establece en 1 si el resultado de la operación desborda el tamaño de los registros.

• Bandera de Cero (Zero Flag, Z)

Indica si el resultado de la operación es cero. Si el resultado es cero, el bit Z se


establece en 1; de lo contrario, permanece en 0.

• Bandera de Signo (Sign Flag, S o N)

Indica si el resultado es positivo o negativo en operaciones con signo. Si el bit más


significativo del resultado es 1 (lo que indica un número negativo en la notación
complemento a dos), la bandera se establece en 1.

• Bandera de Paridad (Parity Flag, P)

Indica si el número de bits en 1 del resultado es par o impar. Si es par, la bandera se


establece en 1; si es impar, en 0.

• Bandera de Desbordamiento (Overflow Flag, V)

Indica un desbordamiento en operaciones aritméticas con signo. Esta bandera se


establece cuando el resultado de una operación aritmética excede el rango
permitido.
• Bandera de Medio Acarreo (Half-Carry Flag, H)

Especifica si hubo un acarreo desde el cuarto bit al quinto bit en operaciones de


suma y resta. Es útil en ciertas operaciones aritméticas específicas, especialmente
en sistemas BCD.

CISC AND RISC

CISC y RISC son dos tipos de arquitecturas de procesador, cada una con un enfoque
diferente en cuanto a la forma en que manejan las instrucciones para el
procesamiento de datos.

CISC (Complex Instruction Set Computer)

"Computadora con Conjunto de Instrucciones Complejas."

Objetivo: Simplificar la escritura de código para los programadores al incluir un


conjunto amplio y complejo de instrucciones.

Características de CISC:

• Instrucciones complejas: CISC posee instrucciones de alto nivel que pueden


realizar tareas complejas con una sola instrucción. Estas instrucciones
pueden incluir múltiples operaciones en una.

• Más instrucciones: Incluye una gran variedad de instrucciones (por ejemplo,


Intel 8086 tiene más de 300 instrucciones).

• Instrucciones de varios ciclos: Muchas de las instrucciones en una


arquitectura CISC requieren varios ciclos de reloj para ejecutarse. Cada
instrucción compleja puede llevar varias etapas internas (decodificación,
ejecución, almacenamiento) y ser más lenta.

• Menos registros: Suele tener menos registros internos, ya que las


instrucciones tienden a operar directamente con la memoria en lugar de
hacerlo entre registros.

• Ejemplo de Procesadores CISC: La arquitectura x86 de Intel y AMD es un


ejemplo clásico de CISC.
Ventajas de CISC:

• Simplificación en el desarrollo de software: Al tener instrucciones


complejas, los desarrolladores pueden escribir código más sencillo, ya que
una sola instrucción puede realizar tareas complejas.

• Menor uso de memoria: La longitud variable de las instrucciones permite


optimizar el uso de la memoria al codificar instrucciones más compactas.

Desventajas de CISC:

• Mayor consumo de energía: Las instrucciones complejas y los ciclos de reloj


adicionales aumentan el consumo de energía.

• Ejecución más lenta en general: Aunque las instrucciones son complejas,


requieren más ciclos para ejecutarse, lo que puede hacer que los
procesadores CISC sean más lentos en comparación con RISC en ciertas
aplicaciones.

RISC (Reduced Instruction Set Computer)

: "Computadora con Conjunto de Instrucciones Reducido."

Objetivo: Simplificar el diseño del procesador y mejorar la eficiencia, permitiendo la


ejecución de instrucciones en un solo ciclo de reloj cuando sea posible.

Características de RISC:

• Instrucciones simples: RISC se enfoca en tener un conjunto de instrucciones


sencillo, donde cada instrucción realiza una tarea simple. Esto permite una
ejecución rápida y eficiente.

• Más registros: La mayoría de los datos se mueven entre registros en lugar de


memoria, lo cual acelera el procesamiento.

• Instrucciones de longitud fija: Las instrucciones suelen tener una longitud


fija, lo cual facilita la decodificación y el diseño del pipeline, permitiendo
ejecutar múltiples instrucciones en paralelo.

• Pipelining: RISC está optimizado para el pipelining, donde varias


instrucciones pueden ejecutarse en diferentes etapas simultáneamente,
mejorando la velocidad del procesador.
• Ejemplos de Procesadores RISC: ARM (usado en muchos dispositivos
móviles), MIPS, PowerPC, y algunos procesadores de IBM y Apple Silicon.

Ventajas de RISC:

• Mayor eficiencia y rendimiento: Dado que las instrucciones simples se


ejecutan en un solo ciclo, los procesadores RISC suelen ser más rápidos y
eficientes en el uso de energía.

• Mejor optimización de pipelines: La estructura simple y regular de las


instrucciones permite implementar pipelines más efectivos, incrementando el
rendimiento.

• Facilidad para optimizar en hardware: La menor cantidad de instrucciones


facilita la implementación de optimizaciones de hardware.

Desventajas de RISC:

• Mayor complejidad en software: Debido a que cada instrucción realiza solo


una tarea simple, se necesitan más instrucciones para lograr el mismo
resultado que en CISC, lo que puede aumentar la complejidad de los
programas.

• Uso de memoria: El código RISC tiende a ser más largo debido a la


simplicidad de las instrucciones, lo cual puede aumentar el uso de memoria.
ORTOGONALIDAD

La ortogonalidad en los lenguajes de programación es una característica fundamental


que busca simplicidad, consistencia y ausencia de efectos secundarios no deseados.
A través de diferentes conceptos, como la encapsulación y la separación de
preocupaciones, la ortogonalidad permite que los componentes de un sistema
operen sin interferencias entre sí. Esto significa que cada operación dentro del
lenguaje tiene una funcionalidad específica y afecta únicamente el elemento al que
está destinada, sin generar consecuencias en otras partes del sistema.

En la programación, la ortogonalidad permite combinar características del lenguaje


de manera arbitraria y obtener resultados previsibles y consistentes. Esto se vio, por
ejemplo, en el diseño de Algol 68, donde se buscaba un comportamiento predecible
al aplicar combinaciones de funcionalidades sin que generaran efectos laterales o
comportamientos inesperados. La ortogonalidad también aparece en la arquitectura
de los conjuntos de instrucciones, donde la ausencia de redundancia y la
independencia de los modos de direccionamiento permiten que las operaciones sean
intuitivas y efectivas.

Esta propiedad es crucial porque ayuda a reducir el tiempo de desarrollo y prueba al


hacer más fácil la verificación y depuración. Al no depender de efectos secundarios,
los sistemas son más confiables y modulares, permitiendo un diseño más limpio y
compacto. Los efectos emergentes, o comportamientos inesperados, se evitan
mediante la definición formal de la lógica del sistema en lugar de depender de
interacciones accidentales entre módulos.

En el contexto de la programación en ensamblador (Assembler), la ortogonalidad se


refiere a la simplicidad y consistencia con la que se pueden combinar las
instrucciones y los modos de direccionamiento sin efectos secundarios. Los
lenguajes ensambladores de sistemas altamente ortogonales, como el de algunas
arquitecturas RISC (Reduced Instruction Set Computer), permiten que cada
instrucción se utilice de manera flexible con cualquier registro o modo de
direccionamiento disponible.
Un lenguaje ensamblador se considera altamente ortogonal cuando:

1. Ausencia de Redundancia: Cada operación tiene una única instrucción que


la representa, sin múltiples formas de realizar la misma tarea. Esto permite
una mayor consistencia en la escritura y lectura del código.

2. Consistencia en el Uso de Registros y Modos de Direccionamiento: Un


lenguaje ensamblador ortogonal permite que cualquier registro pueda ser
utilizado en cualquier instrucción y en cualquier modo de direccionamiento
permitido. Por ejemplo, en un conjunto de instrucciones ortogonal, una
instrucción de suma podría usar cualquier registro como operando sin
restricciones, lo que facilita la creación de código más flexible y reutilizable.

3. Ausencia de Efectos Secundarios: Las instrucciones en un lenguaje


ensamblador ortogonal afectan solo los registros o las direcciones de
memoria explícitamente especificadas, evitando cambios en otras partes del
sistema. Esto asegura que las operaciones sean predecibles y más fáciles de
depurar.

4. Flexibilidad y Simplicidad en el Diseño del Conjunto de Instrucciones: Un


lenguaje ensamblador ortogonal, al permitir el uso de cualquier registro y
modo de direccionamiento en cualquier instrucción, reduce la complejidad
del conjunto de instrucciones y facilita el aprendizaje del lenguaje y el diseño
de los compiladores.

Algunos ensambladores en arquitecturas como MIPS o ARM siguen principios de


ortogonalidad más rigurosamente que otros, mientras que en arquitecturas CISC
(Complex Instruction Set Computer) como x86, la ortogonalidad puede estar algo
limitada debido a su gran variedad de instrucciones y modos de direccionamiento
específicos que no siempre se pueden combinar de forma libre.

W EL REGISTRO ACUMULADOR

En el contexto de los microcontroladores, especialmente en las arquitecturas de la


familia PIC de Microchip, el registro W se denomina "acumulador" porque es el
registro principal en el que se almacenan temporalmente los resultados de las
operaciones aritméticas y lógicas.

El término "acumulador" se usa tradicionalmente en muchos sistemas de


computación para referirse a un registro central que acumula resultados de
operaciones. En los microcontroladores PIC, el registro W (de working register) actúa
como acumulador en el sentido de que la mayoría de las instrucciones aritméticas,
lógicas y de movimiento de datos lo utilizan de forma predeterminada para almacenar
resultados temporales antes de transferirlos a otra ubicación de memoria o registro.

1. Centro de Operaciones: En la arquitectura PIC, casi todas las operaciones


aritméticas y lógicas involucran al registro W como uno de los operandos. Por
ejemplo, si sumas un valor a un registro en memoria, el resultado se coloca
temporalmente en W antes de que pueda ser movido a otra ubicación.

2. Facilita el Diseño del Set de Instrucciones: En muchas arquitecturas de


microcontroladores, el uso de un registro central como el acumulador
simplifica el conjunto de instrucciones, ya que permite usar un solo registro
para manejar la mayoría de las operaciones sin tener que especificar otros
registros adicionales. Esto es especialmente útil en arquitecturas con
conjuntos de instrucciones reducidos, como las de los microcontroladores
PIC.

3. Velocidad y Eficiencia: Como el registro W está integrado directamente en la


unidad de procesamiento de la CPU, se pueden realizar operaciones sobre él
más rápido que si se utilizaran otros registros o la memoria. Esto reduce la
cantidad de ciclos de reloj necesarios para ejecutar instrucciones y, por lo
tanto, aumenta la eficiencia del microcontrolador.

4. Propósito Histórico: Desde las primeras computadoras, el término


"acumulador" ha sido usado para describir registros centrales para cálculos
intermedios. Aunque algunos microcontroladores modernos no usan el
término "acumulador" formalmente, la funcionalidad es la misma, y el registro
W en los PIC hereda esta función histórica.

En el caso del microprocesador Z80, no existe un registro W como en las


arquitecturas de microcontroladores PIC. En lugar de eso, el Z80 usa una serie de
registros acumuladores y otros registros de propósito general que cumplen funciones
similares, pero el registro acumulador principal en el Z80 es el registro A.
Registros Principales en el Z80

El Z80 tiene un conjunto de registros que incluyen:

• A: El acumulador principal donde se almacenan los resultados de las


operaciones aritméticas y lógicas, muy parecido al registro W en PIC.

• B, C, D, E, H, y L: Registros de propósito general que pueden usarse para


operaciones individuales o emparejarse (como BC, DE, y HL) para operaciones
de 16 bits.

• IX e IY: Registros de índice que se utilizan para direccionamiento de memoria,


especialmente en tablas y estructuras de datos complejas.

• F: El registro de banderas, que almacena los resultados de las operaciones


(como los indicadores de cero, acarreo, etc.).

Diferencias Clave con el PIC

En el Z80:

1. Registro A como acumulador principal: La mayoría de las operaciones


aritméticas y lógicas se realizan en el registro A, similar al rol del W en el PIC,
pero con una gama de instrucciones y capacidades mucho más amplias
debido a la naturaleza CISC (Complex Instruction Set Computer) del Z80.

2. No existe un registro W: A diferencia del PIC, el Z80 no necesita un "working


register" o registro de trabajo exclusivo. En su lugar, el Z80 tiene un sistema de
registros más extenso y flexible, lo cual permite operar directamente sobre
registros como B, C, D, E, H, y L, en combinación con el acumulador A y otros
registros.

3. Instrucciones Complejas y Flexibles: La arquitectura del Z80 incluye un


conjunto de instrucciones más complejo, donde puedes operar no solo sobre
el acumulador (A), sino también sobre pares de registros (como HL, DE, o BC)
para realizar operaciones de 16 bits, facilitando un diseño más flexible y con
menos restricciones en el uso de registros.

4. Uso de Pares de Registros: Los registros B, C, D, E, H y L pueden combinarse


para almacenar valores de 16 bits, lo que permite una gran flexibilidad en
operaciones y desplazamientos de memoria sin depender exclusivamente de
un único acumulador o un registro de trabajo intermedio como en el PIC.
ALGUNAS INTRUCCIONES DEL PIC16F877A

1. subwf f,d - Subtract W from f

La instrucción subwf f,d significa "restar W de f".

• f: Es el archivo de registro o el registro específico de la memoria donde se


almacenará uno de los operandos y donde se puede almacenar el resultado.

• d: Especifica el destino de la operación, que puede ser 0 o 1:

o d = 0: El resultado de la resta se guarda en el registro W (Working


Register).

o d = 1: El resultado se guarda en el archivo de registro f (es decir, en la


ubicación de memoria o registro especificado por f).

La operación realiza:

f−W→destino (especificado por d)

1-Inicio del programa que relizara la operación de resta

2- w es cargado con la constante 07h


3-el registro 0x20 (x) es cargado con el contenido del registro w

4-w es cargado con la constante 05h

5-el registro 0x21 (y) es cargado con el contenido del registro w


6-el registro w es cargado con el resultado de la operación de x - w

7-el registro 0x22 (resul) es cargado con el contenido del registro w

Este pequeño programa demuestra la función de la instrucción subwf. Básicamente,


esta instrucción indica una resta y para comprobar que esta función fue correcta,
entonces recordamos como se resta en binario.

Paso a Paso

1. Columna 1 (de derecha a izquierda):

1010 – o 0−1 no es posible sin un préstamo, así que pedimos un préstamo del
bit siguiente a la izquierda, convirtiendo el 0 en un 2 en binario (10).
0011
o 10−1=1.
_______
2. Columna 2: Ahora tenemos 0−1 nuevamente, así que pedimos otro préstamo,
0111 convirtiendo el siguiente bit en la izquierda a 10 en binario.

o 10−1=1

3. Columna 3: Ahora tenemos 0−0=0

4. Columna 4: 1−0=1

Así obtenemos el resultado final: 0111


2. xorwf f,d - XOR W with f

La instrucción xorwf f,d significa "realizar un XOR entre W y f".

• f: Es el archivo de registro o registro específico en memoria.

• d: Determina el destino del resultado, que puede ser 0 o 1:

o d = 0: El resultado de la operación XOR se guarda en W.

o d = 1: El resultado se guarda en el registro f.

Para entender el funcionamiento de esta instrucción debemos recordar la tabla de


verdad de una compuerta OR, ya que, esta función se le aplicara a cada par de bits de
los registros involucrados en la operación.

Se dice que si los bits de las entradas A y B SON


IGUALES (00 o 11), entonces en la salida
tendremos un estado lógico en 0.

1-Inicio del programa que hará una función XOR entre el contenido de dos registros
2-w es cargado con la constante 0Ah

3- el registro 0x20 (x) es cargado con el contenido del registro w

4- el registro w es cargado con la constante 05h


5- el registro 0x21 (y) es cargado con el contenido del registro w

6- El registro w es cargado con el resultado de la operación de x || w (w=y)

7- El registro 0x22 (resul) es cargado con el contenido del registro w


LITERAL AND CONTROL OPERATIONS

1- ADDLW k - Add Literal and W

• Suma un valor literal k (constante) al contenido del registro W y almacena el


resultado en W.

• Es útil para realizar sumas rápidas con valores constantes.

• Ejemplo: ADDLW 0x05 suma 5 al valor en W.

1-inicio del programa que sumara al contenido del registro w una constante

2- El registro w es cargado con la constante 07h


3- el registro w es cargado con la suma binaria de la constante 05h + el contenido del
registro w

4- El registro 0x22 (resul) es cargado con el contenido del registro w


1-inicio del programa que realizará la suma del contenido en w con una constante
determinada.

2-w es cargado con la constante 07h


3-el registro 0x20 (x) es cargado con el contenido del registro w

4-se llama a la subrutina “ajuste”


5-W es cargado con la constante 0Fh

6-el registro 0x21 (y) es cargado con el contenido de w

La suma original deseada era el contenido de w (0x07) + la constante que se va a


proporcionar posteriormente, pero después de la subrutina, el registro w quedo
cargado con otra constante la cual no deseamos en la suma, por lo tanto, usaremos
la instrucción retlw.

RETLW k - Return with Literal in W

o Retorna de una subrutina con un valor constante k en W.

o Muy útil para devolver valores desde subrutinas.

o Ejemplo: RETLW 0x05 retorna de la subrutina y deja 0x05 en W.

Entonces, en este caso, observamos que el contenido del registro w es la constante


0Fh, y nosotros queremos que w tenga la constante 07h. Por tanto, la instrucción de
retorno quedara escrita de l siguiente manera:

retlw 0x07; regresa a la siguiente instrucción después del llamado a la subrutina pero
regresa con la constante 07h cargada en el registro w.
7-Se comprueba lo anteriormente mencionado.

8-La instrucción addlw suma correctamente la constante 05h y el contenido del


registro w

También podría gustarte