El Motorola 68000 es una base del microprocesador del CISC 16/32-bit diseñada y puesta por el semiconductor (antes sector de Freescale de los productos de semiconductor de Motorola ). Introducido en 1979 como el primer miembro de la familia de 32 bits M68k acertado de microprocesadores, es generalmente el adelante compatible del software con el resto de la línea a pesar de pertenecer a la generación de 16 bits de la tecnología de hardware . Después de veintisiete años en la producción, la arquitectura de 68000 es todavía funcionando.
Los 68000 crecieron fuera del proyecto del MACSS (sistema informático avanzado de Motorola en el silicio), comenzado en el 1976 para desarrollar enteramente una nueva arquitectura sin la compatibilidad hacia atrás . Sería un hermano de la alto-energía que complementa la línea de 8 bits existente 6800 algo que un sucesor compatible. En el extremo, los 68000 conservaron un modo de compatibilidad del protocolo del autobús para existir 6800 dispositivos periféricos, y una versión con un ómnibus de datos de 8 bits fue producida. Sin embargo, los diseñadores se centraron principalmente en el futuro, o la compatibilidad delantera, que dio a plataforma de M68K una ventaja contra arquitecturas de sistema de instrucción de 32 bits posteriores por ejemplo, los registros de la CPU es 32 pedacitos de par en par, aunque pocas estructuras autónomas en el procesador sí mismo funciona encendido 32 pedacitos a la vez. Los 68000 se pueden considerar un microprocesador de 16 bits que sea microcodificado para acelerar tareas de 32 bits. El equipo de MACSS dibujó pesadamente en la influencia del diseño del procesador del miniordenador, tal como el PDP-11 y sistemas del VAX, que fueron microcodificados semejantemente.
En los mediados de años 70, los fabricantes de 8 bits del procesador compitieron con para introducir la generación de 16 bits. El semiconductor nacional había sido primer con su IMP-16 y los procesadores del PASO en 1973-1975, pero éstos tenían ediciones con velocidad. El Intel 8086 en 1977 renombres rápidamente ganados. La decisión a la pídola la competición e introduce un diseño del híbrido 16/32-bit era necesaria, y Motorola le dio vuelta en una misión coherente. La llegada tarde a la arena de 16 bits produjo el nuevo procesador más integración (áspero 70000 transistores contra los 29000 en los 8086), un funcionamiento más alto por el reloj, y aclamó facilidad de empleo general.
El MC68000 original era fabricado usar un proceso HMOS con 3.5 - tamaño de característica del micrón . Las muestras iniciales de la ingeniería fueron lanzadas en el último 1979 . Las virutas de la producción estaban disponibles en el an o 80, con los grados iniciales de la velocidad 4, 6, y 8 megaciclo . Las virutas de 10 megaciclos estaban disponibles durante el 1981, y las virutas de 12.5 megaciclos durante el 1982 .67 megaciclos; 12F" la versión del MC68000, la versión más rápida de la viruta original de HMOS, no fue producida hasta el final de los '80.
Los 68000 tenían muchos triunfos de gama alta del diseño a principios de. Se convirtió en la CPU dominante para los sitios de trabajo en lenguaje Unix, encontró su manera en las computadoras anunciadas tales como el ST de Amiga, de Atari, Apple Lisa y Macintosh, y fue utilizado en la primera generación de las impresoras laser de escritorio en 1982, los 68000 recibieron una actualización a su AIA permitiendo que apoye la memoria virtual cerca conforme a los requisitos Popek y de la virtualización de Goldberg. La viruta actualizada fue llamada el 68010 . Otra versión extendida que expuso 31 pedacitos del autobús de dirección también fue producida, en pequeñas cantidades, como el 68012 .
Para apoyar sistemas más baratos y controlar usos con tamaños de la memoria más pequeños, Motorola introdujo el compatible de 8 bits MC68008, también en 1982. Éste era 68000 con un ómnibus de datos de 8 bits y (un autobús de dirección más pequeño del pedacito 20). Después de 1982, Motorola dedicó más atención al 68020 y los proyectos 88000 .
Varias otras compañías eran fabricantes second-source del HMOS 68000. Éstos incluyeron Hitachi (HD68000), el Mostek (MK68000), el Rockwell (R68000), el Signetics (SCN68000), el Thomson /SGS-Thomson (original EF68000 y TS68000 posterior), y Toshiba (TMP68000). Toshiba era también un fabricante second-source del Cmos 68HC000 (TMP68HC000).
Motorola cesó la producción del HMOS MC68000 y MC68008 en el 1996, pero su compañía spin-off, semiconductor de Freescale, todavía está produciendo el MC68HC000, MC68HC001, MC68EC000, y MC68SEC000, así como los microcontroladores MC68302 y MC68306 y versiones posteriores de la familia de DragonBall. 68000's los descendientes arquitectónicos, el 680x0, CPU32, y familias de Coldfire, todavía están también en la producción.
Durante los a mediados de los años ochenta, los 68000 primero fueron utilizados en el los ordenadores personales personales de y que comenzaban con el Lisa de Apple y el Macintosh, y seguidos por el Amiga del comodoro, ST de Atari, y el agudo X68000 . Los 68008, por una parte, fueron utilizados solamente en un sistema del ordenador personal, el Sinclair QL (aunque el QL era una máquina de la hermana al ICL uno por el escritorio, que también utilizó 68008).
Los 68000 vieron eventual su éxito más grande como regulador. Desde 1981, las impresoras laser tal como el Imagen Imprint-10 fueron conducidas por los reguladores externos que usaban los 68000 como la CPU. El primer LaserJet del HP, introducida en 1984, utilizó los 8 megaciclos 68000 en su regulador incorporado. 68000 similares basaron reguladores integrados fueron utilizados posteriormente en muchas otras impresoras laser, incluyendo el LaserWriter de Apple, la primera impresora laser de la posdata, presentada en 1985. Los 68000 continuaron siendo ampliamente utilizados en las impresoras laser a través del resto de los años 80, persistiendo bien en los años 90 en impresoras bajas.
Fuera de usos computacionales comerciales o domésticos tradicionales, los 68000 también vieron éxito en el campo de los sistemas de control industriales. Entre los sistemas que se beneficiaron de tener 68000 o un derivado pues su microprocesador era familias de los reguladores programables (PLCs) de la lógica manufacturadas por el Allen-Bradley, Texas Instruments y posteriormente, siguiendo la adquisición de esa división de TI, por el Siemens . Los usuarios de tales sistemas no aceptan obsolescencia de producto a la misma tarifa que los usuarios domésticos y es enteramente probables que a pesar de la instalación durante hace 20 años, muchos 68000 reguladores basados continúen en servicio confiable bien en el siglo XXI.
Pues los avances tecnológicos obsoleted los 68000 de uso en el mercado computacional independiente, su uso creció en consumidor y encajó usos. Los fabricantes del juego video utilizaron los 68000 como la espina dorsal de muchos juegos de arcada y de las consolas caseras del juego. La lucha del alimento de Atari, a partir de 1983, era uno de los primeros 68000 juegos de arcada basados. Los 68000 eran la CPU principal de muchos sistemas de la arcada durante el final de los '80 y principio de los 90, tal como sistema 16 de s de Sega el ', Geo neo de s de Capcom ' CPS-1 de s y CPS-2, y SNK '. Un número de sistemas de la arcada utilizaron dos 68000s; algunos incluso tres usados. Durante los años 90, como sistemas de la arcada cambió a procesadores más de gran alcance para la CPU principal, ellos continuó a menudo utilizando los 68000 como regulador sano.
Los 68000 eran también la unidad central de proceso en varias consolas del partido en casa de los el final de los '80/principio de los 90, incluyendo la impulsión mega (génesis de Sega de Sega), el Sega Mega-CD (CD de Sega), y la versión de la consola Geo neo . Algunas consolas posteriores del juego todavía incluyeron los 68000: el Sega Saturno lo utilizó como regulador sano dedicado, y en el jaguar de Atari coordinó las actividades de los otros gráficos y virutas especializados del sonido.
Los 68000 microcontroladores basados 683XX se han utilizado en una gran variedad de usos, incluyendo el equipo del establecimiento de una red y de teléfono, cajas de la fijar-tapa de la televisión, e instrumentos del laboratorio y médicos, entre otros. Los MC68302 y sus derivados se han utilizado en muchos productos de Cisco, 3com de la comunicación, ascienden, Marconi y otros. Utilizaron a la familia de DragonBall en la palma que computaba palma popular PDAs de s de la 'y en la serie del visera de la voltereta sobre las manos, hasta que la palma eliminara gradualmente la arquitectura a favor de procesadores del BRAZO . El AlphaSmart utiliza a familia de DragonBall en versiones posteriores de sus procesadores de textos portables.
El Texas Instruments utiliza los 68000 en sus calculadoras de representación gráfico gráficamente de gama alta, la serie y el viaje 200 TI-89 y TI-92 . Las versiones tempranas de éstos utilizaron un microcontrolador especializado con una base estática 68EC000; versiones posteriores utilizan un procesador estándar MC68SEC000.
Los 68000 instrumentos 24 autobuses de dirección de pedacito, permitiendo que trate MB hasta 16 de la memoria física. Tratar el almacenaje y el cómputo utilizó 32 pedacitos, sin embargo, con el no hecha caso octeto de categoría alta debido a la carencia física de pernos. Esto permitió que funcionara con el software escrito para un espacio de dirección de 32 bits plano . Por la definición moderna esto significó que los 68000 eran un microprocesador de 32 bits. El intento de Motorola con el espacio de dirección de 32 bits interno era remite la compatibilidad, haciéndolo factible escribir a 68000 el software que aprovecharía completo de puestas en práctica de 32 bits posteriores del sistema de instrucción 68000. Poner en contraste esto con los problemas presentó por arquitecturas divididas en segmentos tales como los 80286 que tuvieron que ser emulados eventual enteramente en software. Se ve como un acto de la gran previsión para que las 68000 series sean de 32 bits del principio.
Sin embargo, esto no previno programadores de software incompatible de la escritura adelante. " 24-bit" el software que desechó el octeto superior de la dirección, o lo utilizó para los propósitos con excepción de la dirección, podría fallar en las puestas en práctica de 32 bits 68K.
La CPU tenía ocho registros de fines generales de 32 bits (D0-D7) de los datos, y ocho registros de dirección (A0-A7). El registro de dirección pasado era también el puntero de pila estándar, y se podía llamar A7 o SP. Éste era un buen número de registros en gran medida. Era bastante pequeño permitir que los 68000 respondan rápidamente a las interrupciones (porque solamente 15 o 16 tuvieron que ser ahorrados), pero bastante grande hacer la mayoría de los cálculos rápidos.
Tener dos tipos de registros era suavemente molesto ocasionalmente, pero utilizar no difícilmente en la práctica. Según se informa, permitió que los diseñadores de la CPU alcanzaran un grado más alto de paralelismo, usando una unidad de ejecución auxiliar para los registros de dirección.
La representación del número entero en la familia 68000 es el grande-endian.
Banderas del pedacito del sistema de operaciones de la comparación las 68000, de la aritmética y de lógica en un estado se colocan para registrar sus resultados para uso de saltos condicionales posteriores. Las banderas del pedacito eran " zero" (z), " carry" (c), " overflow" (v), " extend" (x), y " negative" (n). El " extend" (x) la bandera merece la mención especial, porque fue separada de la bandera de llevar. Esto permitió el pedacito adicional de la aritmética, de la lógica, y de operaciones del cambio que se separarán del llevar para el fluir-de-control y el acoplamiento.
Los diseñadores intentaron hacer el de lenguaje de ensamblaje ortogonal. Es decir, las instrucciones fueron divididas en operaciones y los modos de dirección, y casi todos los modos de dirección estaban disponibles para casi todas las instrucciones. Muchos programadores tuvieron aversión el " near" ortogonalidad, mientras que otros eran agradecidos para la tentativa.
En el nivel del pedacito, la persona que escribe el ensamblador vería claramente que este " instructions" podían convertirse cualesquiera de varios diversos de Op. Era absolutamente un buen compromiso porque casi dio la misma conveniencia que una máquina verdadero ortogonal, pero también dio a diseñadores de la CPU la libertad para completar la tabla del de Op.
Con solamente 56 instrucciones el tamaño mínimo de la instrucción era enorme para su día en 16 pedacitos. Además, muchas instrucciones y modos de dirección agregaron palabras adicionales en la parte posterior para las direcciones, más pedacitos del tratar-modo, el etc.
Muchos diseñadores creyeron que la arquitectura MC68000 tenía código compacto para su coste, especialmente cuando es producido por los recopiladores. Esta creencia en un código más compacto llevó a muchos de sus triunfos del diseño, y a mucho de su longevidad como arquitectura.
Esta creencia (o la característica, dependiendo del diseñador) continuó haciendo los triunfos del diseño para el sistema de instrucción (con las CPU actualizadas) para arriba hasta que la arquitectura del BRAZO introdujera el sistema de instrucción del pulgar que era semejantemente compacto.
La CPU, y más adelante la familia entera, ejecutada exactamente dos niveles de privilegio. El modo del usuario dio el acceso todo excepto el control llano de interrupción. El privilegio del supervisor dio el acceso todo. Una interrupción llegó a ser siempre supervisora. El pedacito del supervisor fue almacenado en el registro del estado, y visible a los programas del usuario.
Una ventaja verdadera de este sistema era que el nivel del supervisor tenía un puntero de pila separado. Esto permitió que un sistema polivalente utilizara los apilados muy pequeños para las tareas, porque los diseñadores no tuvieron que asignar la memoria requerida para llevar a cabo los marcos de apilado de una pila máxima de interrupciones.
La CPU reconoció 7 niveles de la interrupción . Los niveles 1 a 7 fueron dados prioridad terminantemente. Es decir, una interrupción alto-numerada podía interrumpir siempre una interrupción bajo-numerada. En el registro del estado, una instrucción privilegiada permitió que una fijara el nivel de interrupción mínimo actual, bloqueando interrupciones de una prioridad más baja. El nivel 7 no era maskable - es decir un NMI . El nivel 1 se podía interrumpir por de alto nivel. El nivel 0 no significa ninguna interrupción. El nivel fue almacenado en el registro del estado, y era visible a los programas user-level.
Las interrupciones de hardware se señalan a la CPU usar tres entradas que codifiquen la prioridad de interrupción pendiente más alta. Un regulador de interrupción separado se requiere generalmente codificar las interrupciones, aunque para los sistemas que no requieren más de tres interrupciones de hardware que es posible conectar las señales de la interrupción directo con las entradas codificadas en el coste de complejidad adicional del software. El regulador de interrupción puede ser tan simple como un codificador de la prioridad 74LS148, o puede ser parte de una viruta periférica del VLSI tal como el periférico de múltiples funciones MC68901, que también proporcionó un UART, el contador de tiempo, y la entrada-salida paralela.
El " table" de la excepción; (direcciones de vector de interrupción) era fijo en las direcciones 0 a 1023, permitiendo 256 vectores de 32 bits. El primer vector era la dirección del apilado que comenzaba, y el segundo era el código de dirección que comenzaba. Los vectores 3 a 15 fueron utilizados para divulgar varios errores: el error en el bus, el error de dirección, la instrucción ilegal, la división cero, el vector CHK y CHK2, la violación del privilegio, y algunos vectores reservados que se convirtieron en línea emulador 1010, alinean el emulador 1111, y el punto de desempate del hardware. El vector 24 comenzó las interrupciones verdaderas del : interrupción falsa (ninguÌn reconocimiento del hardware), y autovectors del nivel 1 a del nivel 7, entonces los 15 vectores de TRAMPA, entonces más vectores reservados, entonces los vectores definidos por el usario.
Puesto que en un mínimo el vector del código de dirección que comienza debe siempre ser válido en reajuste, los sistemas incluyeron comúnmente una cierta memoria permanente (e. ROM ) que comenzaba en la dirección cero a contener los vectores y el código del elástico de bota . Sin embargo, porque un sistema de fines generales es deseable que el sistema operativo pueda cambiar los vectores en el tiempo de pasada. Esto fue lograda a menudo señalando los vectores en la ROM a una tabla de salto en el RAM, o con el uso de la banco-conmutación de permitir que la ROM sea substituida por RAM en el tiempo de pasada.
Los 68000 no cumplieron los requisitos Popek y de la virtualización de Goldberg para la virtualización completa del procesador porque tenía un solo " no privilegiado de la instrucción; MOVERSE desde SR", que no prohibió a software del usuario-modo el acceso inalterable a una pequeña cantidad de estado privilegiado.
Los 68000 no podían también apoyar fácilmente la memoria virtual, que requiere la capacidad de atrapar y de recuperarse de un acceso de memoria fall. Los 68000 proporciona una excepción del error en el bus que se pueda utilizar para atrapar, pero no ahorra bastante estado de procesador para reasumir la instrucción criticada una vez que el sistema operativo ha manejado la excepción. Varias compañías tuvieron éxito en la fabricación de 68000 sitios de trabajo basados de Unix con la memoria virtual que trabajó, usando dos 68000 virutas que funcionaban paralelamente en diversos relojes puestos en fase. Cuando el " leading" 68000 encontraron un maÌn acceso de memoria, hardware adicional interrumpirían el " main" 68000 para evitar que también encuentre el maÌn acceso de memoria. Esta rutina de la interrupción manejaría las funciones de la memoria virtual y recomenzaría el " leading" 68000 en el estado correcto a continuar correctamente sincronizaron la operación cuando el " main" 68000 volvieron de la interrupción.
Estos problemas fueron fijados en la revisión principal siguiente de la arquitectura 68K, con el lanzamiento del MC68010. Las excepciones del error en el bus y del error de dirección empujaron una gran cantidad de estado interno sobre el apilado del supervisor para facilitar la recuperación, y el MOVIMIENTO de la instrucción del SENIOR fue hecho privilegiado. Un nuevo " no privilegiado; MOVERSE desde CCR" la instrucción fue proporcionada para el uso en su lugar por el software del modo del usuario; un sistema operativo podía atrapar y emular a MOVIMIENTO del usuario-modo de instrucciones del SENIOR si estuvo deseado.
Los modos de dirección estándar son:
Registro del
directo registro de los datos, e. " D0"
registro de dirección, e. " A6"
Registro del
indirecto Dirección simple, e. (A0)
Dirección con poste-incremento, e. (A0) +
Dirección con pre-decremento, e. - (A0)
Dirección con una compensación firmada de 16 bits, e. 16 (A0)
Observar que el tamaño real del incremento o del decremento era dependiente en la petición del operando: un octeto leyó la instrucción incrementó el registro de dirección por 1, una palabra leídos por 2, y un largo leídos por 4.
Registro del
indirecto con un índice compensación firmada de 8 bits, e. 8 (A0, }) o 8 (A0, A1)
Pariente de la PC del
(contador de programa) con la dislocación compensación firmada de 16 bits, e. Este modo era muy útil.
compensación firmada de 8 bits con el índice, e. 8 (PC, D2)
Posición de memoria absoluta del
Cualquier un número, e. " $4000", o un nombre simbólico traducido por el ensamblador
La mayoría 68000 ensambladores utilizaron el " $" símbolo para el hexadecimal, en vez del " 0x".
Modo inmediato del
Almacenado en la instrucción, e.
Más: acceso al registro del estado, y, en modelos posteriores, otros registros especiales.
La mayoría de las instrucciones tenían sufijos de la punto-letra, permitiendo que las operaciones ocurran en los bytes de 8 bits (" .b"), palabras de 16 bits (" .w"), y de 32 bits desea (" .
La mayoría de las instrucciones son el de dos días, es decir, la operación tiene una fuente, y una destinación, y se cambia la destinación. Las instrucciones notables eran:
Aritmética del
: AGREGAR, SUB, MULU (sin firmar multiplicarse), MULS (firmado multiplicarse), DIVU, DIVS, NEG (negación aditiva), y CMP (una clase de resta que fija los pedacitos de estado, pero no almacenó el resultado)
aritmética del decimal codificado en binario : ABCD, y SBCD
Lógica del
: EOR (exclusiva o), Y, NO (lógico no)
Desplazamiento del
: (lógico, es decir los cambios correctos ponen ponen a cero adentro el pedacito más significativo) LSL, LSR, (los cambios aritméticos es decir muestra-extienden el pedacito más significativo) el radar de vigilancia aérea, ASL, (gira se extienden a través y no:) ROXL, ROXR, ROL, ROR
manipulación de pedacito en memoria: BSET (a 1), a BCLR (a 0), y a BTST (fijar el pedacito cero)
control del multiprocesamiento : El TAS, Prueba-y-fijó, realizado una operación indivisible del autobús, permitiendo que los semáforos sean utilizados para sincronizar varios procesadores que compartían una sola memoria
Flujo del
control: JMP (salto), JSR (salto a la subrutina), BSR (salto a la subrutina), RTS (vuelta de la subrutina ), RTE (vuelta de la excepción, es decir una interrupción), TRAMPA (accionar una excepción del software similar a la interrupción de software), CHK (una excepción condicional de la dirección relativa del software)
Rama del
: Bcc (una rama donde el " cc" especificado de 16 pruebas de los códigos de condición en el registro del estado: el igual, mayor que, menos-que, lleva, y la mayoría de las combinaciones y de las inversiones lógicas, disponibles del registro del estado).
Decremento-y-rama del
: DBcc (donde " cc" era en cuanto a las instrucciones de rama) cuál decremented D-se coloca y ramificó a una destinación proporcionó la condición era todavía verdadero y el registro no decremented a -1. Este uso de -1 en vez de 0 como el valor terminal permitió la codificación fácil de los lazos que no tuvieron que hacer nada si la cuenta era 0 a comenzar con, sin la necesidad de un cheque adicional antes de incorporar el lazo.
| Random links: | Reactor de la cama de guijarro | Henry Stanley | Evasión fiscal y evasión fiscal | Prueba de la admisión de universidad de la farmacia | Dyeus |