8 votos

¿Por qué los datapath de los microcontroladores tienen siempre una anchura de 2 potencias?

Las rutas de datos de los microcontroladores son siempre de una potencia de 2 de ancho: 4 bits, 8, 16, 32 bits, etc. Incluso los PIC que utilizan instrucciones de 12 bits de ancho son controladores de 8 bits. ¿Por qué? ¿Hay alguna ventaja en el diseño? ¿Qué tiene de malo un databus de 12 bits, o un Controlador de 7 bits ?

editar
Lo de los 7 bits no tiene mucho sentido, pero es lo que me hizo pensar en la pregunta. Las respuestas se refieren a la tradición de los 8 bits. Pero 16 bits no son 8 bits, y 24 bits pueden manejar datos de 8 bits tan bien como 16 bits, ¿no? ¿Por qué se saltaron los 24 bits para pasar a los 32 bits?

28voto

Ivo Looser Puntos 311

Es más fácil porque permite especificar un número de bits en un número de bits. Esto puede parecer un truco de salón, pero los conjuntos de instrucciones lo hacen todo el tiempo. Piensa, por ejemplo, en una instrucción de "desplazamiento a la izquierda":

SHL R1,4

Si tienes un número de bits que es potencia de dos, puedes codificar el operando en un número fijo de bits sin ningún desperdicio.

12voto

jns Puntos 449

La tradición tiene un fuerte tirón. Pero también la interoperabilidad. Casi todos los formatos de archivo y protocolos de comunicación funcionan con bytes. ¿Cómo se gestionan en un microcontrolador de 7 bits?

El PIC se sale con la suya al tener el espacio de instrucciones totalmente separado y programado de antemano desde el exterior. La reducción del conjunto de instrucciones en bits tiene cierto valor, ya que es lo único que puedes controlar tú mismo como diseñador de microprocesadores.

Si desea una arquitectura extrema, podría codificar el conjunto de instrucciones con Huffman, lo que le daría longitud variable mordacidad.

7voto

aryeh Puntos 1594

4 bits sensible mínimo:
Numéricos (0-9 necesidades de datos de 4 bits
0-9 = 10 palabras.
Más próximo palabra binaria de tamaño = 4 bits = 16 palabras posibles.
Así datos BCD (decimal codificado en binario) = 4 bits

8 bits lógica del siguiente salto
0-9, a-z, A-Z = 10+26+26 = 62 palabras.
Podría manejar con 7 bits = 128 palabras.
8 es tan fácil como 7 y permite 2 x 4 bits para los datos numéricos pueden ser empaquetados de 2 por 8 bits byte.

Luego de 12 bits (no 16) ?:
Lógico siguiente en tamaño = 12 bits y la temprana y muy exitosa PDP-8 de 12 bits. 12 bits que se utiliza para los datos y el programa de permitir que 2^12 = 4096 direcciones de ubicaciones. Como Bill Gates, posiblemente, puede tener que una vez dijo "4K de memoria deben ser suficientes para cualquiera".

El siguiente PDP-11 de familia de 16 bits.

La duplicación de compatibilidad.
Si desea interactuar con los sistemas de alta y baja los niveles y si quieres tener más capaz de los dispositivos de la misma familia, y luego ser capaz de manejar 2 palabras de los más pequeños dentro del sistema más amplio de la palabra tiene mucho sentido.


PERO

Las excepciones que confirman la regla:

"Siempre" es una palabra fuerte :-)
1-bits, 12 bits, de 18 bits, de 36 bits ejemplos a continuación.
18 y 36 bits máquinas nunca fueron de los microcontroladores.
1 & 12 bits eran.


Un bit del sistema se mencionan a continuación es realmente un "bits aleatorios como se puede ver el ajuste del sistema". El bit de palabra de datos es esencialmente un go/no-go bandera producido por el cálculo y se utiliza para habilitar o deshabilitar el programa de la actividad. El contador de programa es un contador que avances a través de la memoria de forma cíclica con el código de activar o desactivar según sea necesario. Muy muy muy desagradable por cierto. Por el momento llegó en el mercado de los 8 bits de los procesadores de la jornada fueron bastante madura, y el 1-bit procesador nunca tuvo mucho sentido. No sé cuánto de usar que nunca.


1-poco !!!:

Motorola MC14500B Obtuve una mención honorífica por Jack Gansell para la mejor descripción de este dispositivo :-)

Hoja de datos - haga clic en la página para descargar en PDF.

enter image description here


12-bits:

Harris HM-6100 aka Intersil IM6100 - 12 bits de minicomputadoras wannabee](http://www.classiccmp.org/dunfield/other/i6100cfs.pdf)

Basado en el gran éxito de la DEC PDP-8 de 12 bits de minicomputadoras.

Descripción

  • La memoria de programa y memoria de datos ocupan el mismo espacio de memoria. El tamaño total de la memoria direccionable es de 4 K palabras. El tamaño de palabra es de 12 bits. El 6100 no tiene memoria de pila.

    Programa el tamaño de la memoria es de 4 K palabras. Todas las instrucciones condicionales permiten que el procesador de saltar a la siguiente instrucción sólo. Para ir condicionalmente a la dirección en la memoria cuando se cumplan ciertas condiciones el código se debe ejecutar "saltar si la condición no se cumple" la instrucción y a directa o indirecta de la instrucción de salto incondicional después de saltar a la instrucción. Incondicional de instrucciones que se pueden utilizar para saltar directamente dentro de la página actual (127 palabras), o saltar indirectamente dentro de todo el espacio de memoria (4 K palabras). El 6100 soporta llamadas de subrutina, pero, debido a la falta de memoria de pila, la dirección de retorno de subrutinas es almacenado en la memoria. No hay ningún "retorno de subrutina" instrucción de la subrutina debe utilizar indirectos salto para volver a la llamada.

    Datos tamaño de la memoria es de 4 K palabras. Puede acceder a los datos directamente dentro de la página cero (0000h 007Fh) o dentro de la corriente de 127 página de word. Puede acceder a los datos indirectamente en cualquier lugar en 4 K palabras de memoria.

Wikipedia - Intersil 6100

El PDP-8 & Intersil 6100 tenía 16 muy rico instrucciones. NO hay que reste de la instrucción.
La instrucción ADD es nombrado TADD para recordarle que es 2-complemento añadir así que no necesitamos nada ... restar la instrucción.


18 bits, de 36 bits otras - el PDP de la familia:

Wikipedia Programado Procesador De Datos

PDP1 - 18 bits

PDP2 - de 24 bits murió aborning

PDP3, PDP6 - 36 bits


PDP-12 Manual del Usuario (versión preliminar - Wow.
A pesar de la numeración de este es pre pre PDP16 - un PDP-8 con esteroides, con e/S analógicas de la capacidad y laboratorio de ingeniería de la máquina. Yo podría haber tenido uno gratis si hubiera querido, pero no habría cabido en cualquier lugar sensible o insensible.
Primer juego de ordenador que he jugado fue en uno de estos.
El Espacio De La Guerra.
La máquina fue en dos pequeñas habitaciones de tamaño de los gabinetes.
Se había abierto una puerta y entrar para hacer las cosas a su funcionamiento interno.

5voto

RelaXNow Puntos 1164

Porque la mayor parte del mundo ha convergido en almacenar, comunicar y manejar datos informáticos en trozos de 8 bits. No es una norma oficial, pero sí una norma ad hoc muy sólida.

En el pasado ha habido máquinas que manejaban múltiplos distintos de 8 bits en sus rutas de datos. Algunos ejemplos son las series CDC Cyber 6000 y 7000 y el PDP-8. Las máquinas CDC usaban bytes de 6 bits, y el PDP-8 tenía una palabra de 12 bits de ancho sin ninguna forma especial de tratar con cantidades de sólo 8 bits. Sin duda, también había otras máquinas en esta categoría. La razón por la que no se oye hablar mucho de ellas hoy en día es porque la gente ha decidido que quiere máquinas que puedan manejar bien sus bytes de 8 bits, y eso es lo que hacen los fabricantes. ¿Cómo de bien crees que se vendería un microcontrolador de 7 bits? Cualquiera que lo fabricara sería ridiculizado y encontraría pocos clientes. Sería una propuesta comercial estúpida.

Si nos fijamos en los estándares de Internet, encontraremos pruebas adicionales de que los "bytes" no son de 8 bits. Utilizan deliberadamente el término "octeto" porque en aquella época no había acuerdo universal en que un byte fuera siempre de 8 bits. Hoy en día, el significado de byte ha convergido para significar 8 bits binarios y si se intentara utilizar de otra forma, se reirían de ti.

2voto

Federico Builes Puntos 1940

La razón de esta elección de diseño común es un poco de eficiencia mezclada con mucha compatibilidad con versiones anteriores.

Si mi ruta de datos tiene 7 bits de ancho, necesito 3 bits para representar cualquier línea de esa ruta. Si voy a desperdiciar tres bits, será mejor que los utilice al máximo, tanto por eficiencia como para eliminar una ruta muerta que podría provocar un fallo.

Los tipos de datos más comunes se basan en un nibble de 4 bits, y la mayoría en un byte de 8 bits. Al elegir utilizar una base alternativa, es posible que tengas que recurrir a código impar e ineficiente para tratar con tipos de datos comunes. Por ejemplo, mi ordenador de 7 bits necesitaría 5 espacios de memoria para tratar cualquiera de los números de 32 bits, incluyendo los de coma flotante, que son muy comunes en la industria actual.

Si mi máquina no dependiera de datos externos, probablemente podría salirme con la mía, pero los controladores de motor, los codificadores, los sensores de temperatura y la mayoría de los dispositivos y sensores de interfaz del mundo real admiten estas unidades estándar.

No es que sea imposible conectar un ordenador de 7 bits a un puerto USB, pero vas a tener que hacer un montón de pruebas adicionales y ejecutar muchas más instrucciones procesando todas esas transacciones de 5 unidades para tipos de datos de 32 bits de lo que harías si añadieras un bit más a tu ruta de datos y estuvieras en línea con el resto de la industria.

Sin embargo, la eficiencia del direccionamiento de bits fue la causa principal de su aparición y desarrollo. Si, por ejemplo, se creara un ordenador trinario (3 estados en lugar de 2 estados por bit), los tamaños de bits más eficientes serían 3, 9, 27, 81, etc. También veríamos intentos menos eficientes en 18, 24, 33 y 66, en un esfuerzo por ofrecer una mayor compatibilidad con los sistemas binarios.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X