Motorola 6809

De MadriSX wiki
Ir a la navegaciónIr a la búsqueda
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.
Microprocesador Motorola MC6809EP

El 6809 es un microprocesador de 8 bits fabricado por Motorola, desde 1979. El 6809 fue un avance mayor sobre sus dos predecesores, el Motorola 6800 y el MOS Technology 6502. Es considerado como el precursor moral de la familia de procesadores Motorola 68000 , aunque el diseño del 68K actualmente se sobrepasa al proyecto 6809.

Descripción

Entre las mejoras más significativas que el 6809 introdujo sobre sus predecesores fue el empleo de dos acumuladores de 8 bits, mejor que uno en el 6502, el cual puede ser combinado en un único registro de 16 bits. También tenía dos registros índice de 16 bits (frente a los 8 bits del 6502) y dos punteros de pila (frente a uno en el 6502), permitiendo modos de direccionamiento bastante avanzados.

La 6809 es compatible a nivel de código fuente con el 6800, aunque el 6800 tenía 78 instrucciones y el 6809 solo 59. Algunas instrucciones fueron reemplazadas por otras más generales que el ensamblador podía traducir, y algunas donde reemplazadas por modos de direccionamiento. El conjunto de instrucciones y complemento de registro fue altamente ortogonal, haciendo la programación en lenguaje ensamblador bastante agradable, y no la pesadilla de la mayoría de otros CPUs de microcomputadoras de la época.

Otra característica fue una de las primeras instrucciones de multiplicación de su tiempo, aritmética de 16 bits y una interrupción rápida especial. Pero el 6809 fue también altamente optimizado, con una velocidad hasta 5 veces superior a las CPUs de la serie 6800. Al igual que el 6800, incluyó la tristemente célebre e indocumentada instrucción de prueba de bus Halt and Catch Fire (HCF) (detener e incendiarse).

La optimización del procesador 6809 significó que, a diferencia de muchos procesadores de aquel entonces, las instrucciones fueron en su mayoría construidas dentro del procesador, en lugar de ser escritas utilizando microcódigo o microprogramación. Esto significó que podía tomar muchos menos ciclos de reloj de CPU para procesar las instrucciones. Como ejemplo, la instrucción "ADDA 63" toma tres ciclos de reloj (dos para recoger la instrucción, y una para que tuviera lugar la operación).

En el Zilog Z80, el cual fue probablemente el principal competidor al 6809, "ADD A,63" toma siete ciclos de reloj. Esto significa que el Z80 necesita una velocidad de reloj de al menos el doble que un 6809 para igualar su rendimiento. En adición, las CPUs de 8 bits de Motorola usaban un ciclo de reloj por acceso a memoria, no el reloj de estado de la mayoría de los otros microcomputadores del esa época. Una simple operación de lectura de memoria en un Z-80, por ejemplo, necesita varios ciclos de reloj frente al único ciclo de reloj del 6800/6809. ¡Distintos relojes!

El Motorola 6809 se produjo en tres versiones, a 1 MHz, 1,5 Mhz y 2 MHz, que se indicaban con una letra entre la pareja de dígitos 68 y 09 (A 1,5; B 2 Mhz). Un primer sufijo indicaba si el generador de reloj era interno o externo (E). Un segundo sufijo indicaba si el rango de funcionamiento era de 0ºC a 70ºC (ninguno) o de -40ºC a 85ºC (C). Y un tercero indicaba si el encapsulado era plástico (P) o cerámico (C también llamado cerdip)

El 6809 tiene un generador de reloj interno (sólo necesita un cristal externo) mientras que el 6809E necesita además un generador de reloj externo. Debido a ello, los pines 39 (TSC / XTAL), 38 (LIC / EXTAL), 36 (AVMA / !MRDY) y 33 (BUSY / !DMA/!BREQ) son diferentes en los 6809E / 6809.

Encapsulado Frecuencia Temperatura 6809 6809E
Plástico 1,0 MHz 0ºC a 70ºC MC6809P MC6809EP
-40ºC a 85ºC MC6809CP MC6809ECP
1,5 MHz 0ºC a 70ºC MC68A09P MC68A09EP
-40ºC a 85ºC MC68A09CP MC68A09ECP
2,0 MHz 0ºC a 70ºC MC68B09P MC68B09EP
-40ºC a 85ºC MC68B09CP MC68B09ECP
Cerámica 1,0 MHz 0ºC a 70ºC MC6809S MC6809ES
-40ºC a 85ºC MC6809CS MC6809ECS
1,5 MHz 0ºC a 70ºC MC68A09S MC68A09ES
-40ºC a 85ºC MC68A09CS MC68A09ECS
2,0 MHz 0ºC a 70ºC MC68B09S MC68B09ES
-40ºC a 85ºC MC68B09CS MC68B09ECS

Historia

La compañía de desarrollo de Software Microware desarrolló el sistema operativo OS-9 original (no confundir con MacOS 9) en el 6809, portándolo posteriormente a la serie de microprocesadores 68000.

El Hitachi 6309 fue una versión mejorada del 6809 con más registros extra e instrucciones adicionales, incluyendo movimiento de bloques, instrucciones de multiplicación adicionales, y división implementada por hardware.

Desafortunadamente ni Motorola ni Hitachi producen más procesadores 6809 o sus derivados, a pesar de que se debe decir que ha sido la más poderosa CPU de 8 bits de propósito general jamás diseñado. Tuvo muchas características innovadoras, varias de las cuales fueron copiadas y luego usadas en otras partes.

El 6809 fue usado como segunda CPU en el Commodore SuperPET y en los Acorn System 2, Acorn System 3, Acorn System 4 y Acorn System 5. Como CPU principal en los :


Registros

El 6809 tenía dos acumuladores de 8 bits, A y B, que podían combinarse para formar un acumulador de 16 bits, D. Tenía dos registros índice de 16 bits, X e Y, dos registros punteros de stack de 16 bits U y S, un contador de programa de 16 bits PC, un registro de 8 bits para acceder directo a una página y un registro de 8 bits que contenía diversos flags.

Acumuladores
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       A       |       B       | D
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Registros índice
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               X               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Y               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Stacks
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               U               | User Stack Pointer
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               S               | Hardware Stack Pointer
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Program Counter
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               PC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Direct Page     Flags
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       DP      |E F H I N Z V C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 | | | | | | | +- Carry
                 | | | | | | +--- Overflow
                 | | | | | +----- Zero
                 | | | | +------- Negative
                 | | | +--------- !IRQ Mask
                 | | +----------- Half Carry
                 | +------------- !FIRQ
                 +--------------- Entire Flag

Pinout

Pinout del 6809. Las líneas del bus de direcciones se ven en color rojo, las del bus de datos en azul y las del bus de control en verde. El bus de energía, formado por los pines 1 y 7 (Vss y Vcc) se ve en negro.

           +---\/---+
    Vss   1|        |40 !HALT <--
--> !NMI  2|        |39 ETAL  <--
--> !IRQ  3|        |38 EXTAL <--
--> !FIRQ 4|        |37 !RES  <--
<-- BS    5|        |36 MRDY  <--
<-- BA    6|        |35 Q     <--
    Vcc   7|        |34 E     <--
<-- A0    8|        |33 !DMA  <--
<-- A1    9|Motorola|32 R/!W  -->
<-- A2   10|  6809  |31 D7    <->
<-- A3   11|        |30 D6    <->
<-- A4   12|        |29 D5    <->
<-- A5   13|        |28 D4    <->
<-- A6   14|        |27 D3    <->
<-- A7   15|        |26 D2    <->
<-- A8   16|        |25 D1    <->
<-- A9   17|        |24 D0    <->
<-- A10  18|        |23 A15   -->
<-- A11  19|        |22 A14   -->
<-- A12  20|        |21 A13   -->
           +--------+

Enlaces externos


Microprocesadores de Motorola

6800 | 6809 | 68000 | 68008 | 68010 | 68012 | 68020 | 68030 | 68040 | 68060 | 88000 | Motorola Dragonball | Coldfire | PowerPC | PowerPC G3 | PowerPC G4


Atribución

Este artículo proviene originalmente de Wikipedia y por ello no sigue la licencia general del site, sino la

GNU head GFDL: Se autoriza la copia, la distribución y la modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación del Software Libre (Free Software Fundation); sin secciones invariables (Unvariant Sections), textos de portada (Front-Cover Texts), ni textos de contraportada (Back-Cover Texts).

Se incluye una copia en inglés de esta licencia en el artículo "GNU Free Documentation License".


Este artículo (o una versión anterior de él) contiene material de FOLDOC, utilizado con su permiso.