El 8086 es 16 - viruta del microprocesador del pedacito diseñada por el Intel e introducida en el mercado en el 1978, que dio lugar a la arquitectura X86 . El Intel 8088, lanzados en el 1979, era esencialmente la misma viruta, pero con un ómnibus de datos de 8 bits externo (permitiendo el uso virutas de lógica más baratas y de pocas favorables), y es notable como el procesador usado en la PC original de IBM.
Mientras que está sabida menos que la viruta 8088, la herencia de los 8086 está aguantando; las referencias a ella se pueden todavía encontrar en la mayoría de las computadoras modernas bajo la forma de entrada del vendedor para todos los IDs del dispositivo de Intel que es " 8086".
El ómnibus de datos era multiplexado con el autobús de dirección, éste disminuía solamente levemente funcionamiento sin embargo, como otros factores, más importantes para esta viruta particular, sombrea esta opción del diseño; transferencias de 16 (o 8) de cantidades del pedacito se hacen en un ciclo del acceso de memoria del cuatro-reloj. 8086 instrucciones variaron a partir 1 a 6 octetos. Por lo tanto, el alcance y la ejecución eran el concurrente (como sigue habiendo en los diseños de hoy x86): La unidad de interfaz de autobús del alimenta la corriente de la instrucción a la unidad de ejecución del a través de una coleta del prefetch de 6 octetos (una forma de la can¢ería débilmente acoplada ), acelerando operaciones en el registro y los immediates mientras que las operaciones de memoria desafortunadamente llegaron a ser más lentas (4 años más tarde, este problema de funcionamiento fue fijado con el 80186 y el 80286 ). El aumento del funcionamiento sobre los 8080 y los 8085 resultando de la arquitectura de 16 bits (en vez de parcial) completo, del operando contra las ortogonalizaciones de la operación y de otros realces, seguía siendo bastante significativo, a pesar de los casos donde las virutas más viejas pueden ser más rápidas (véase abajo).
El espacio de dirección linear del máximo se limita a 64 KB, simplemente porque los registros internos son solamente 16 pedacitos de par en par. La programación sobre límites de 64 KB implica el ajustar de los registros del segmento (véase abajo) y es por lo tanto bastante torpe (y restos tan hasta el 80386 ). Algunos pernos del control tienen más de una función dependiendo de si el dispositivo está funcionado en el " min" o " max" modo. El anterior se piensa para los pequeños solos sistemas de procesador mientras que este 3ultimo está para los sistemas medios o grandes usar más de un procesador. El procesador tenía algunas nuevas instrucciones (no presente en los 8085) de mejorar lenguajes el de programación de alto nivel basados apilado de la ayuda tales como Pascal y C; algunos los más útiles eran el empuje immed, mem-de Op. del del empuje, y el enría el tamaño del de (varios otros serían agregados en los 80186, 80286, y 80386 diseños subsecuentes).
Debido a una codificación compacta inspirada por 8085 y otros procesadores de 8 bits, la mayoría de las instrucciones eran operaciones de una dirección o del formato de dos direcciones que significa que el resultado fue almacenado en uno de los operandos. A lo más uno de los operandos podría estar en memoria, pero este operando de la memoria podría también ser la destinación del, mientras que el otro operando, la fuente del, podría ser cualquier registro del o el inmediato. Una sola posición de memoria se podría también utilizar a menudo como la fuente del y destinación del que, entre otros factores, contribuyeron más lejos a una huella ejecutable algo pequeña del código, comparable a la mayoría de las máquinas de ocho bites.
Aunque el grado de la ortogonalidad entre los registros y las operaciones fuera mayor que en 8085, era todavía bajo, y los registros también fueron utilizados a veces implícito por instrucciones. Mientras que perfectamente es sensible para el programador de la asamblea, esta asignación complicada del registro para los recopiladores comparó a un contemporáneo más regular 16 - y los procesadores de 32 bits (tales como VAX o 68000); por una parte, comparado a los procesadores de 8 bits contemporáneos (tales como 8085 o 6502), era perceptiblemente más fácil generar el código para el diseño 8086.
Según lo mencionado sobre 8086 también ofrecidos 64 KB (o alternativo 32 claves o de 16 bits) de espacio de 8 bits de la entrada-salida . Un apilado de 64 KB (un segmento) que crece hacia direcciones más bajas es apoyado por el hardware ; 2 palabras del octeto se empujan al apilado y la tapa del apilado (parte inferior) es precisada por los SS: SP. Hay 256 interrupciones que se pueden invocar por el soporte físico y el software. Las interrupciones pueden conectar en cascada, usar el apilado para almacenar el remite .
l = segment×16 + compensaron
La dirección de memoria física era por lo tanto 20 pedacitos de par en par (mientras que el segmento y la compensación eran 16 pedacitos). Como resultado de este esquema, los segmentos se traslaparon, permitiendo tener hasta 4096 diversos indicadores del el tratar de la misma localización. Mientras que es aceptable, e incluso útil, para el de lenguaje de ensamblaje la programación (donde estaba completo el control de los segmentos) de él causó la confusión y era considerada diseño pobre por la mayoría de la gente, forzando enteramente los nuevos conceptos ( cerca de y del de palabras claves lejos ) en idiomas tales como Pascal y C ; los datos y/o el código se podrían manejar dentro de cerca de segmentos de 16 bits de, o una estructura de datos grande (o mucho y/o procedimientos grandes) se podría alcanzar por los indicadores lejanos del (segment de 32 bits: pares de offset) que alcanzan el espacio de dirección física completo.
Aunque este esquema hiciera ampliando el espacio de dirección más que los octetos 220 más difícil, sin embargo pronto fue ampliado por un nuevo MMU - esquema de dirección controlada en modo protegido de s 80286 el el '. Más adelante, y encima de esto, el 80386 amplió el sistema de registros de fines generales entero (y por lo tanto, las compensaciones) a 32 pedacitos, de tal modo permitiendo un radio de acción de dirección linear del de octetos 232 (con una gama del total del de 236). Sin embargo, esas virutas eran, durante un largo periodo de tiempo, de uso frecuente en el modo verdadero, siguiendo siendo compatible con un OSes más viejo.
De una manera similar, los programas tempranos podrían no hacer caso de los segmentos, y apenas utilizan el llano de 16 bits que trataba, que permitió que a el software de 8 bits de fuera virado hacia el lado de babor fácilmente a los 8086. Los autores del MS-DOS se aprovecharon de esto proporcionando un interfaz de programación de uso muy similar al CP/M . Esto era importante cuando los 8086 eran nuevos, porque permitió que muchos usos existentes CP/M rápidamente fueran hechos disponibles en la nueva plataforma, que facilitó grandemente la transición.
Las sincronizaciones del son el mejor caso, dependiendo de estado del prefetch, de alineación de la instrucción, y de otros factores.
Registro de los MOVIMIENTOS, registro: 2, registro, im: 4, registro, mem: 8+EA, mem, registro: 9+EA, mem, im: ciclos 10+EA Registro de ALU, registro: 3, registro, im: 4, registro, mem: 9+EA, mem, registro: 16+EA, mem, im: ciclos 17+EA
Registro de JMP: 11, etiqueta de JMP: 15, etiqueta de Jcc: 16 (cc = código de condición)
Registro de MUL: 70.118 ciclos Registro de IDIV: 101.165 ciclos
EA: hora de computar el direccionamiento efectivo, extendiéndose a partir del 5 a 12 ciclos.
Como puede ser visto de estas tablas, las operaciones en los registros y los immediates eran rápidas (entre 2 y 4 ciclos), mientras que las instrucciones del memoria-operando y los saltos eran absolutamente lentos; los saltos tomaron más ciclos que en el simple 8080 y el 8085, y los 8088 (utilizado en la PC de IBM) fueron obstaculizados además por su autobús más estrecho. Las razones por las que eran la mayoría de las instrucciones relacionadas memoria así que el lentos eran triples:
Las unidades de la ejecución y del alcance estaban débilmente acopladas; esto es eficiente para el prefetch de la instrucción, pero menos óptimo para los saltos y el acceso de datos al azar.
Los cálculos de la generación de la dirección fueron realizados en gran parte por rutinas del microcódigo.
Los ómnibus de la dirección y de datos eran multiplexados para caber un paquete en línea dual del perno del estándar 40.
Debe ser observado, sin embargo, que el funcionamiento del acceso de memoria fue realzado drástico con las virutas de la generación siguiente de Intel; el 80186 y el 80286 ambos tenían cálculo de dirección en el hardware, ahorrando muchos ciclos; el 80286 también tenía ómnibus (no-multiplexados) separados de la dirección y de datos.
Las versiones compatibles y, en muchos casos, realzadas fueron fabricadas por el Fujitsu, Harris / Intersil, OKI, Siemens AG, Texas Instruments, NEC, y AMD . Por ejemplo, series S del NEC las 'eficientemente de ejecutado 8086 procesadores compatibles (NEC V20, V25, V30, etc) todavía se utilizan en sistemas encajados, al igual que Intel 80186 .
El 8086/8088 se podía conectar con un coprocesador matemático para agregar capacidad de la coma flotante . El Intel 8087 era el coprocesador de matemáticas estándar, funcionando en 80 números de pedacito, pero los fabricantes como el Weitek pronto ofrecieron alternativas de un rendimiento más alto.
Un par interesante de derivados era el NEC V20 y NEC V30. Éstos eran hardware compatible con los 8088 y los 8086, respectivamente, pero incorporaron el sistema de instrucción Intel 80186 . Fueron pensados para proporcionar gota-en capacidades de la mejora para permitir que los fabricantes aumenten sus diseños al nuevo sistema de instrucción y a la instrucción más rápida que procesaban sin tener que modificar sus diseños.
.
| Random links: | Partícula en un anillo | Moret-sur-Loing | Departamento de Kalisz | Juan Houghton (mártir) | Escuela preparatoria de la trinidad |