stringtranslate.com

Charla: Intel 8086

Fuentes

El artículo parece carecer de fuentes. Una referencia al documento Intel 8086 original sería genial, ¿tal vez alguien tenga un enlace? antón


Información incorrecta

Corregí el año de introducción '1989' a 1978. Parece que alguien escribió información incorrecta.


¡HAY MUCHA MÁS INFORMACIÓN INCORRECTA AQUÍ!

La CPU 8086 NUNCA se usó en IBM XT. https://en.wikipedia.org/wiki/Talk:Intel_8086/Intel_8088 las máquinas CP/M usaban la CPU 8086. De hecho, el IBM XT siempre tuvo la CPU 8088, la CPU 8086 es MUCHO más rápida, pero IBM ganó frente a CP/M, debido a que tenía ranuras de expansión estándar (BUS), todas las máquinas CP/M tenían su propio formato de disco único, tenías Los programas de conversión, pero el software que funcionaba con una marca, a menudo no eran compatibles con otras marcas. El IBM y todos los clones tenían DISCOS compatibles y tarjetas de expansión COMPATIBLES. Si bien no había una compatibilidad perfecta en los primeros días de IBM/CLONE, esto pronto cambió y todo el hardware y el software se volvieron completamente intercambiables.

La CPU 8086 nunca puede funcionar en una máquina IBM XT ya que tenía un BUS de 8 bits y el 8086 tiene una interfaz de BUS de 16 bits. Esos PRIMEROS clones de IBM que tenían problemas de compatibilidad con IBM, a veces usaban la CPU 8086, lo que a menudo los hacía superar a IBM XT siendo 2 veces más rápido.

Pero 2 veces un poco...+ problemas de compatibilidad..... la compatibilidad entre el hardware y el software era más beneficiosa para los usuarios, por lo que la CPU 8088 ganó el mercado durante años hasta que las primeras 286 CPU que tenían compatibilidad total con la CPU 8088 llegaron al mercado. ¡mercado!

IBM debería haber adoptado la CPU 8086, obteniendo el doble de rendimiento y haciéndola compatible con los clones del 8086, pero a IBM no le importaba la velocidad. Tenían la marca y el software, aún así, si lo hubieran hecho... el 8086 es casi tan rápido como el 286. Y lo habríamos tenido 4 años antes, pero IBM NUNCA se molestó con el 8086. — Anterior comentario sin firmar agregado por 217.103.36.185 (discusión) 11:11, 25 de agosto de 2019 (UTC) [ respuesta ]


enviando las señales de control apropiadas, abriendo la dirección adecuada de los buffers de datos y enviando la dirección de la memoria o dispositivo de E/S donde residen los datos deseados.

También por AMD

AMD también creó este tipo de procesador. Tiene el número P8086-1, tiene un logotipo de AMD y también (C) Intel 1978. Puedo hacer una foto del chip y agregarla al artículo.

AMD no creó este procesador, pero lo adquirió como segunda fuente, es decir, lo fabricó bajo licencia de Intel porque Intel no podía fabricar lo suficiente por sí mismo. Intel son los únicos diseñadores del procesador 8086 original. --ToaneeM ( discusión ) 09:15, 15 de noviembre de 2016 (UTC) [ respuesta ]

por favor aclarar

El 8086 es un chip microprocesador de 16 bits diseñado por Intel en 1978, que dio lugar a la arquitectura x86. Poco después, se presentó el Intel 8088 con un bus externo de 8 bits, lo que permitía el uso de conjuntos de chips económicos. Se basó en el diseño del 8080 y 8085 (era compatible con el código fuente en lenguaje ensamblador con el 8080) con un conjunto de registros similar.

¿La frase final se refiere al 8088 o al 8086? A primera vista, continúa con la información sobre el 8088, pero al considerarlo, parece más probable que se refiera al 8086. ¿Es correcto? No está demasiado claro.

Fourohfour 15:15, 9 de octubre de 2005 (UTC) [ respuesta ]

Se refiere a que ambos, 8086 y 8088 son casi el mismo procesador, excepto que el 8086 tiene un bus de datos externo de 16 bits y el 8088 tiene un bus de datos externo de 8 bits y algunas diferencias muy, muy pequeñas. ambos se basaron en el diseño de 8080. --200.11.242.33 17:20, 18 de octubre de 2005 (UTC) [ respuesta ]

En "Buses y operación", dice "Puede acceder a 2 20 ubicaciones de memoria, es decir, 1 MiB de memoria". - Si bien los hechos son correctos, el "es decir" sugiere que están directamente relacionados. El bus de datos de 16 bits implicaría una memoria direccionable de 2MiB (16 x 2 20 ), pero la arquitectura se diseñó alrededor de una memoria de 8 bits y, por lo tanto, trata el bus de 16 bits como dos buses separados durante las transferencias de memoria. 89.85.83.107 11:08, 20 de marzo de 2007 (UTC) [ respuesta ]

El 8086 no fue "diseñado alrededor de una memoria de 8 bits" (sin embargo, sí lo fue el 8088), pero cada byte tiene su propia dirección (como en los procesadores de 8 bits). Por lo tanto, ambos chips pueden direccionar directamente 2 palabras de 20 bytes y/o 16 bits ; Sin embargo, estos últimos se superponen parcialmente, ya que pueden estar "desalineados", es decir, almacenados en cualquier dirección de byte. / HenkeB 20:11, 21 de mayo de 2007 (UTC) [ respuesta ]

Aún más confuso, el artículo 8088 dice casi exactamente lo mismo: 'La PC IBM original se basó en el 8088' Padre de familia ( discusión ) 01:09, 30 de mayo de 2017 (UTC) [ respuesta ]

¿Pero cuál es la parte confusa de esto? Andy Dingley ( charla ) 01:26, 30 de mayo de 2017 (UTC) [ respuesta ]
El 8086 fue diseñado para memoria de 16 bits direccionable por bytes. Es decir, con la capacidad de habilitar la escritura por separado en bytes superiores e inferiores de 1 palabra de 6 bits. Gah4 ( charla ) 23:15, 25 de marzo de 2020 (UTC) [ respuesta ]

primera computadora?

¿Es éste el primer microprocesador para "PC"? Creo que sí, en cuyo caso cabe señalar, aunque esperaba encontrar una mención al primero, ya sea este o un segundo. - El comentario anterior sin firmar fue agregado por 81.182.77.84 (discusión •  contribuciones ).

La primera PC IBM usó un Intel 8088 , que es (hasta donde yo sé) efectivamente un 8086 ligeramente reducido con un bus de datos externo de 8 bits (aunque internamente todavía de 16 bits). Así que ese hecho probablemente debería mencionarse en el artículo. Fourohfour 18:27, 10 de marzo de 2006 (UTC) [ respuesta ]

Además, a modo de comparación, estoy interesado en el tamaño y las velocidades de los discos duros de las PC en ese momento, es decir, cuándo los habría utilizado un usuario. Había pensado en alrededor de 10 MB, pero de hecho, si solo puede abordar 1 MB (texto del artículo) esto parece poco probable. ¿Tenía siquiera un disco duro? un disquete? ¿cualquier cosa? - El comentario anterior sin firmar fue agregado por 81.182.77.84 (discusión •  contribuciones ).

Estás confundiendo las cosas aquí. Cuando se habla de "memoria" se refiere a RAM. Los discos duros son diferentes, son dispositivos de E/S y el procesador se comunica con ellos mediante entrada/salida programada (PIO) o DMA. La limitación de 20 bits/1 Mbyte es sólo para la RAM. Mystic Pixel 07:36, 8 de junio de 2006 (UTC) [ respuesta ]

Discrepar

No creo que los dos artículos deban fusionarse. Después de todo, uno habla del 8086 en sí mientras que el otro habla de la arquitectura general my_generación 20:06 UTC, 30 de septiembre de 2006

Creo que fusionar los artículos es una buena idea. El Intel 8086 estableció el estándar para la arquitectura de microprocesadores. Mire el manual del usuario de Intel 8086 (si puede encontrarlo en eBay o Amazon) y verá la información que se incluye en ambos artículos. Sería más fácil tener toda esa información en uno solo. En respuesta al desacuerdo anterior, no se puede describir el 8086 sin describir su arquitectura.

No hay nada de malo en duplicar información que ya está en el manual, pero Microprocesador 8086 está mal escrito y tiene un nombre incorrecto. Un artículo de enciclopedia no va a explicar cómo programar un µP y los detalles teóricos están fuera de lugar aquí. ¿Hay algo en particular que crea que debería trasladarse a Intel 8086 ? ¿O quizás eliminar la información duplicada y darle al Microprocesador 8086 un nombre que sea más claro (o al menos gramatical )? Me gustaría eliminar esa página y simplemente redirigirla. Potatoswatter 06:46, 21 de noviembre de 2006 (UTC) [ respuesta ]
Apoyo lo que dijo Potatoswatter. (Pensé que el manual del 8086 estaba disponible, pero no parece estarlo. Eso es realmente extraño, el manual del 80186 está por todos lados. Hmm.) Mystic Pixel 05:10, 22 de noviembre de 2006 (UTC) [ respuesta ]

¿No es un error?

Este comentario estaba en la sección "errores": Los procesadores que conservan las marcas originales de 1979 son bastante raros; algunas personas los consideran objetos de colección.

Esto no parecía estar relacionado con un error, así que lo moví aquí. - furrykef ( Háblame ) 06:38, 25 de noviembre de 2006 (UTC) [ respuesta ]

Se refería a la afirmación anterior de que dichos procesadores se vendieron con un error. Lo estoy devolviendo. Potatoswatter 15:04, 25 de noviembre de 2006 (UTC) [ respuesta ]
¿Cuál fue exactamente el error que había en el procesador? Se podría proporcionar más información que solo un " error de interrupción grave ". -- SteelersFan UK06 03:10, 8 de febrero de 2007 (UTC) [ respuesta ]
SteelersFan UK06 : Creo que hay/hubo tres (?) errores relacionados con las interrupciones: (1) la actualización de `ss:sp` debe escribirse en dos ciclos consecutivos [con las interrupciones desactivadas]; de lo contrario, una interrupción podría usar la pila de forma impredecible. ubicación; por lo tanto, escribir en `ss` debería deshabilitar las interrupciones para la siguiente instrucción, excepto que no fue así. (2) la interrupción con una instrucción de cadena reiniciable causaría que se olvide un segundo prefijo: por ejemplo. `ES REP STOSB`, continuaría como `REP STOSB` o `REP ES STOSB` continuaría como `ES STOSB`. (3) la tormenta de interrupción con `REP` + instrucción de cadena se reiniciaría continuamente desde la primera microoperación y, por lo tanto, nunca progresaría (= bloqueo aparente). - Sladen ( discusión ) 06:14, 28 de marzo de 2021 (UTC) [ respuesta ]

Precios del procesador

¿Alguien sabe cuánto era el precio de un procesador 8086 cuando se lanzó por unidad o por mil unidades? Creo que falta información importante.--201.58.146.145 22:21, 13 de agosto de 2007 (UTC) [ respuesta ]

Encontré los precios en el número especial de vista previa de Intel: Soluciones de 16 bits, revista de mayo/junio de 1980. Ahora está publicado en Lista de Intel 8086 . Rjluna2 ( discusión ) 01:29, 10 de octubre de 2015 (UTC) [ respuesta ]

No recuerdo un precio elevado solo para la CPU. Recuerdo que vendimos una caja que tenía la CPU, algunos chips de soporte y algo de documentación por 360 dólares. Esa fue una referencia intencional al 8080, cuyo precio era el original. Creo que el precio del 8080, a su vez, era una oscura referencia a la famosa línea de ordenadores IBM, pero puede que se trate de un recuerdo espurio. De hecho, no estoy completamente seguro del precio de $360 por el kit en caja, ni recuerdo el nombre con el que lo llamábamos en ese momento. Tengo uno por aquí, ya que un alma amable y anónima dejó uno en mi silla justo antes de dejar Intel por segunda vez. —Comentario anterior sin firmar agregado por 68.35.64.49 (discusión) 20:48, 26 de febrero de 2008 (UTC) [ respuesta ]

Según recuerdo, el Altair 8800 se anunció a $399, mencionando los $360 solo por el procesador. Gah4 ( charla ) 03:14, 24 de noviembre de 2021 (UTC) [ respuesta ]

iAPX 86/88

Los manuales de Intel (publicados en 1986/87) que tengo usan el nombre iAPX 86 para el 8086, iAPX 186 para el 80186, etc. ¿Por qué fue esto? Amazon enumera un ejemplo aquí http://www.amazon.com/iAPX-186-188-users-manual/dp/083593036X John como ( charla ) 23:04, 6 de febrero de 2008 (UTC) [ respuesta ]


Cuando el producto conocido internamente como 8800 se presentó como iAPX432 (un completo desastre, por cierto), el marketing de Intel tuvo la brillante idea de cambiar el nombre de los productos de la familia 8086.

Un sistema 8086 simple iba a ser un iAPX86-10. Un sistema que incluía el chip de punto flotante 8087 iba a ser un iAPX86-20.

Yo (uno de los cuatro ingenieros de diseño originales del 8086) despreciaba estos nombres y nunca tuvieron mucha aceptación. Ya casi no los veo. Pero, dado que Marketing, por supuesto, controlaba los materiales publicados, toda una generación de manuales de usuario y otros materiales publicados utilizaron estos nombres. Evítelos si está buscando material publicado recientemente. Si busca precisión, evite el primer manual del 8086, ya que la segunda versión tuvo una buena cantidad de correcciones, pero casi todas aparecieron mucho antes del nombre iAPX.

Peter A. Stoll : comentario anterior sin firmar agregado por 68.35.64.49 (discusión) 20:43, 26 de febrero de 2008 (UTC) [ respuesta ]

Procesadores integrados con párrafos de 256 bytes.

El artículo dice:

Según Morse et al., los diseñadores del 8086 consideraron utilizar un desplazamiento de ocho bits en lugar de cuatro, lo que le habría dado al procesador un espacio de direcciones de 16 megabytes.

Parece que algunos fabricantes de procesadores tipo 80186 para sistemas integrados han hecho exactamente esto más tarde. Quizás esto podría mencionarse en la sección "Expansión posterior" si se pueden encontrar fuentes secundarias confiables. Hasta ahora sólo he encontrado material controlado por el fabricante o poco fiable. Paradigm Systems vende un compilador de C++ para "espacio de direcciones en modo extendido de 24 bits (16 MB)"[1] y enumera los procesadores compatibles de varios fabricantes:

85.23.32.64 ( charla ) 23:52, 11 de julio de 2009 (UTC) [ respuesta ]

Interesante, siéntase libre de agregar algo de esto al artículo (al menos por mi parte, he escrito entre el 60 y el 70 por ciento, tal como está). /HenkeB : comentario anterior sin firmar agregado por 83.255.36.148 (discusión) 19:40, 3 de noviembre de 2009 (UTC)[ responder ]
El RDC R2010 es RISC, no compatible con x86 Лъчезар 共产主义万岁 17:51, 14 de agosto de 2011 (UTC) [ respuesta ]

Tiempo de instrucción

¿Alguien puede proporcionar una referencia a una fuente oficial de donde se toman estos tiempos? Las hojas de datos proporcionadas al final del artículo presentan solo tiempos de bus externo (la lectura/escritura de la memoria es de 5 relojes) pero no incluyen ninguna otra información sobre la lógica interna y las ALU. Gracias. bungalo ( charla ) 10:26, 26 de abril de 2010 (UTC) [ respuesta ]

Uno de estos 5 ciclos en los diagramas de tiempo es un estado de espera completamente opcional , por lo que el ciclo básico de acceso a la memoria es de 4 ciclos de reloj en el 8086. 83.255.38.70 (discusión) 09:42, 27 de abril de 2010 (UTC) [ respuesta ]

Cómo se ve una cita válida

Movido de la página de discusión del usuario... las discusiones de artículos pertenecen a las páginas de discusión de artículos. ¿Puedo preguntarle de nuevo qué hay de malo en una hoja de datos o un manual de masa como referencia? ¿Puedes conseguir una mejor fuente? ¡No lo entiendo! ¿Qué estás tratando de decir? ¿"Sólo existe la web" o algo así? 83.255.38.96 (discusión) 06:08, 3 de noviembre de 2010 (UTC) [ respuesta ]

El problema es que "Podrías buscarlo en alguna parte" no es un estilo de referencia válido y no le dice nada al lector sobre dónde encontrar una descripción relevante específica de los ciclos de tiempo de instrucción. Busque un libro con una editorial y un ISBN, y un número de página para obtener una tabla de tiempos de ciclo de instrucción. Citaría mi libro de datos de Intel si pudiera, pero ahora mismo está guardado y no lo descomprimiré durante semanas. Decirle al lector que "búsquelo en algún manual del que nunca ha oído hablar" es vago y casi insultante para el lector, quien probablemente esté familiarizado con la idea de encontrar literatura relevante de todos modos y no necesita un Wikieditor condescendiente para decírselo. Él lo sangraba de manera obvia. Este NO es un hecho difícil de citar, debe haber al menos 3 libros impresos en la historia del mundo que realmente enumeren el tiempo del ciclo de instrucción para el 8086 y todo lo que necesitamos es UNA cita de ISBN/autor/editor/fecha/número de página. para validar esta tabla. - Wtshymanski ( discusión ) 13:07, 3 de noviembre de 2010 (UTC) [ respuesta ]
Tomado del manual de referencia MASM 5.0; Los números también se incluyeron en las primeras hojas de datos de 8086 y 8088. Esa es una cita bastante pobre. ¿Este manual dorado tiene un editor, una fecha, ya sabes, cosas así? ¿Quizás incluso un ISBN? ¿Alguna hoja de datos específica en mente? Editorial, fecha, etc. - Wtshymanski ( discusión ) 16:10, 20 de diciembre de 2010 (UTC) [ respuesta ]
Todavía no es una cita. Vaya a la página principal de cualquier manual que esté viendo y copie aquí el nombre del editor o autor, el nombre completo del manual, su número de edición, si corresponde, la fecha de copyright, el editor, el ISBN , si corresponde. tiene uno, y las páginas en las que supuestamente aparecen estos números. ¿Puedes hacer eso por nosotros? ¿Mmm? - Wtshymanski ( discusión ) 13:01, 21 de diciembre de 2010 (UTC) [ respuesta ]
Allá. ¿Fue tan difícil? Ahora, cuando aparece un vándalo y aleatoriza todos esos números de tiempo de ciclo (si eso no ha sucedido ya), alguien puede comparar con *su* copia del Manual MASM de Microsoft, quinta edición, y hacer que los números sean consistentes con la referencia nuevamente. Aún se necesitan los números de página. También es importante decir *de qué* hojas de datos del fabricante estás hablando. ¿Una pieza AMD o Hitachi tiene el mismo número de ciclos que una pieza Intel? Mientras digamos *de qué* fabricante estamos hablando, estamos bien. - Wtshymanski ( discusión ) 15:29, 21 de diciembre de 2010 (UTC) [ respuesta ]

Por supuesto, se trata de la pieza original de Intel si no se dice nada más (ver el título del artículo). Di una referencia perfectamente buena en abril de este año, aunque escribí esos números hace muchos años. Nunca he afirmado que sea una cita ; las citas son para declaraciones controvertidas, no para datos numéricos simples de una hoja de datos. El manual de referencia de MASM 5.0 ciertamente era identificable de manera única tal como estaba, y realmente me sorprendería si más de unas pocas promillas de todo el material sobre WP tuvieran referencias igualmente buenas (es decir, serias y confiables). En consecuencia, con su lógica, ¿¡será mejor que ponga una etiqueta en casi todas las declaraciones en WP...!? 83.255.43.80 ( charla ) 13:05, 22 de diciembre de 2010 (UTC) [ respuesta ]

Si era lo suficientemente importante como para agregarlo al artículo, era lo suficientemente importante como para tener una cita adecuada. Nunca digas "por supuesto" en una enciclopedia. ¿Cómo sabemos que el manual MASM habla de la misma pieza, nivel de paso, etc.? Llame a su biblioteca pública local y pídales "el manual de referencia MASM, ya sabe, ¿5.0?" y vea hasta dónde llega con solo eso. Las enciclopedias reales no necesitan tantas referencias porque tienen un consejo editorial y verificadores de datos pagados. Wikipedia se basa en citas porque no confiamos en que nuestros editores hagan nada bien y, por lo tanto, dependemos de varias personas para revisar cualquier contribución. Lamentablemente, Wikipedia carece de citas. Cualquier dato numérico debe tener una cita para que se pueda detectar y revertir el vandalismo; Es posible que haya notado una o dos veces que una IP anónima cambia un solo dígito en un valor y se escabulle debajo de una roca, dejando un error permanente en la enciclopedia porque nadie puede encontrar la referencia original de donde provienen los datos. Es una lástima que haya tenido la molestia de respaldar una declaración de hecho... eliminemos todas las referencias de Wikipedia y confiemos en nuestros editores anónimos para mantener las tablas correctas. - Wtshymanski ( discusión ) 14:38, 22 de diciembre de 2010 (UTC) [ respuesta ]
¿Alguna distancia o perspectiva? Se supone que Wikipedia no es una especie de documento legal, es una enciclopedia libre. Además, me parece peculiar lo extremadamente preocupado que pareces estar con los "vándalos" cuando fuiste tú mismo quien realmente arruinó la tabla, poniendo los tiempos JMP y Jcc en las columnas NA. Lo corregí (20 de diciembre de 11.01) y volví a poner esa (maldita) referencia. Sin embargo, seguiste borrando esa información, una y otra vez. Ese estilo me enferma y me cansa sólo de pensar en seguir contribuyendo a Wikipedia (y no me llamen "cualquier holgazán"). 83.255.43.80 ( charla ) 20:59, 22 de diciembre de 2010 (UTC) [ respuesta ]
No lo entiendes, ¿verdad? Nunca confundiría esta impresionante muestra de erudición con la de un holgazán. - Wtshymanski ( discusión ) 22:49, 22 de diciembre de 2010 (UTC) [ respuesta ]
Si observa el Catálogo de datos de componentes Intel , edición de 1980, que lleva el número de publicación Intel AFN-01300A-1, que incluye la hoja de datos del microprocesador HMOS de 16 bits 8086/8086-2/8086-4 , no hay una lista de los tiempos de ciclo de instrucción para cada código de operación. . Hasta que se pueda encontrar una hoja de datos que enumere los tiempos de los ciclos de instrucción, eliminaré la descripción vaga ya que Intel no parece haber publicado ciclos de instrucción en su propia hoja de datos. - Wtshymanski ( discusión ) 06:07, 2 de enero de 2011 (UTC) [ respuesta ]
El documento que realmente queremos citar es el manual del usuario de la familia Intel 8086 , de octubre de 1979, número de publicación 9800722-03. La copia pirata en la Web proporciona ciclos de tiempo de instrucciones en la Tabla 2-21, páginas 2-51 a 2-68 (comenzando en el .pdf que no es OCR en la página 66). El resumen de este artículo omite muchos detalles. - Wtshymanski ( discusión ) 06:39, 2 de enero de 2011 (UTC) [ respuesta ]

Aleatorio vs ad hoc

La jerga de la industria (como la referencia citada, la primera en los resultados de Google Books) parece preferir la "lógica aleatoria" como descripción de los circuitos de control internos de un microprocesador, en contraste con el "microcódigo". "Ad-hoc" tiene la desventaja de ser latino y probablemente sea tan peyorativo como "aleatorio" si eres sensible a esas cosas. - Wtshymanski ( discusión ) 14:51, 29 de junio de 2011 (UTC) [ respuesta ]

Estoy seguro de que dentro de la industria se describe como "lógica aleatoria". también se describe como "plomería", "gastos generales inútiles" y probablemente "esa cosa ondulada". El problema es que "aleatorio" tiene un significado en el diccionario, y es inútil fuera de este contexto limitado. Para el lector no experto, esto resulta confuso y, por tanto, inútil.
No estoy defendiendo ad hoc . Es una descripción totalmente apropiada y bastante buena de la situación real. También es un término latino bastante común y bien comprendido (según los estándares de las frases de préstamos en latín). Sin embargo, está en latín y hay un argumento justo de que deberíamos evitar un principio general de accesibilidad.
Sin embargo, lo aleatorio es simplemente malo, porque es engañoso: usted mismo se sintió obligado a agregar un resumen de edición con una disculpa por usarlo. Llámalo como quieras, pero no lo llames aleatorio. Andy Dingley ( discusión ) 00:14, 30 de junio de 2011 (UTC) [ respuesta ]
No importa cómo lo llame, Andy. Eso es lo bueno de Wikipedia. ¿Cómo lo llama la literatura? - Wtshymanski ( discusión ) 02:18, 30 de junio de 2011 (UTC) [ respuesta ]
El registro de un caso de su uso no constituye una obligación de utilizar ese uso inútil para empeorar el artículo. Hay varias formas de expresar esto: si no te gusta ad hoc , piérdelo. Sin embargo, agregar "aleatorio" da un mensaje bastante equivocado. Andy Dingley ( charla ) 08:18, 30 de junio de 2011 (UTC) [ respuesta ]
Google Books ofrece 4130 resultados para 'lógica aleatoria de microprocesador' y 7 resultados para 'lógica ad-hoc de microprocesador'. Es lo que la gente que escribe sobre microprocesadores llama lógica no microprogramada. Cualquiera que estudie microprocesadores se encontrará con la temida frase "lógica aleatoria" muy rápidamente, ¿por qué no usarla en contexto aquí? - Wtshymanski ( discusión ) 13:57, 30 de junio de 2011 (UTC) [ respuesta ]
WP:V todavía no es WP:COMPULSION. La mayoría de los lectores aquí (y en cualquier lugar de WP) son muy ingenuos y nuevos en el tema, no aquellos que lo estudian seriamente. No hay expectativas de que "se encuentren con la temida frase". Andy Dingley ( charla ) 14:11, 30 de junio de 2011 (UTC) [ respuesta ]
FWIW, estoy totalmente de acuerdo en que debería ser "lógica aleatoria"; ese es un término estándar. No es comparable a descripciones como "plomería", "gastos generales inútiles" y "esa cosa ondulada", que *no* son términos técnicos estándar. No es más peyorativo que la palabra "aleatorio" en "memoria de acceso aleatorio"; ¿Alguien quiere cambiar la RAM a AHAM? "Aleatorio" aquí significa "capaz de realizar cualquier función arbitraria", no "seleccionado a partir de una distribución de probabilidad"; ningún diseñador se opone a usarlo en los casos en que sea apropiado, y ningún diseñador ve nada peyorativo en describir la lógica aleatoria usando el término "lógica aleatoria". En todo caso, "ad-hoc" es peyorativo porque sugiere que el diseño se realizó de manera no sistemática. Dudo en mencionar esto, pero otro término estándar podría ser "lógica combinacional". Eso no sería tan bueno ("lógica aleatoria" es más específica porque excluye cosas como los PLA que podrían incluirse en la "lógica combinacional") pero al menos dejaría claro que no es una lógica secuencial como el microcódigo, evitando al mismo tiempo la lógica sucia. Palabra R. Desearía poder cambiar "una mezcla" por "una mezcla", pero la página parece estar protegida. 184.94.124.236 (discusión) 14:39, 9 de julio de 2011 (UTC) [ respuesta ]

Pequeño detalle

en la sección Microcomputadoras que utilizan la sección 8086, la velocidad de reloj de Compaq Deskpro que figura en la lista no coincide con la que figura en la página wiki de este producto, además, tampoco aparece en la página "Crystal_oscillator_frequencies", no tengo idea de dónde viene esto, así que Agregué un (?).... - Comentario anterior sin firmar agregado por 85.169.40.106 (discusión) 08:06, 1 de marzo de 2012 (UTC) [ respuesta ]

No sé si ayuda, pero un 808x impulsado por el generador de reloj 8284 funciona a 1/3 de la frecuencia del cristal, para generar un reloj con un ciclo de trabajo del 33%. Gah4 ( charla ) 23:05, 7 de diciembre de 2020 (UTC) [ respuesta ]

Predecesor/sucesor absurdo en el cuadro de información errónea

No es como reyes, papas o presidentes... Intel todavía vendía lotes de 8080 después de que salió el 8086, y el 8086 y el 8088 eran prácticamente de la misma época: el 80286 salió antes que el 80186, de hecho. - Wtshymanski ( discusión ) 14:20, 21 de agosto de 2012 (UTC) [ respuesta ]

Esto no implica que uno haya reemplazado completamente al otro y que sólo uno pueda estar a la venta a la vez.
El punto es que el 8086 se basó en el trabajo con el 8080, y su conjunto de instrucciones y lenguaje ensamblador eran muy similares (en comparación al menos con el 6800/68000 o la serie TI 99xx radicalmente diferente). El 8088 fue su sucesor como un ejemplo de "diseño de valor" con un bus externo delgado (un hilo de simplificación de hardware). Los 80186, 80286, incluso los 80386, 486 y otros podrían considerarse sucesores (un hilo de gestión de memoria cada vez más sofisticada). Como tenemos que elegir un ejemplo de cada hilo, para que no resulte demasiado confuso, los 8088 y 80186 parecen razonables. Sin embargo, el 8088 y el 80286 podrían ser mejores. Andy Dingley ( charla ) 14:31, 21 de agosto de 2012 (UTC) [ respuesta ]
Bueno, si crees que esta vaga noción (para mí) de predecesor y sucesor es útil en el recuadro, está bien, aunque creo que le da al lector una idea equivocada. Con suerte, cualquiera que esté seriamente interesado en el desarrollo de procesadores Intel leerá más que el cuadro de información, y a cualquiera que esté satisfecho sólo con el cuadro de "información" probablemente no le importará de todos modos. - Wtshymanski ( discusión ) 15:19, 21 de agosto de 2012 (UTC) [ respuesta ]
Podrían haber algunos argumentos razonables para dar el 8080/8085 como predecesor (pensado como un sucesor espiritual más poderoso , ISA similares, los mismos chips de soporte, NEC V20 podría ejecutar ambos ISA), pero el 8088 se parecía más al Celeron de su tiempo. no es un sucesor, sino una versión más lenta y económica que funciona con chips de soporte más baratos. - Ruud 20:47, 22 de agosto de 2012 (UTC) [ respuesta ]
No soy lo suficientemente espiritual para entender esto. Hay sucesores o predecesores acordados bastante bien definidos de Millard Filmore , Pius X o King Moshoeshoe , pero muchos de estos chips tienen árboles genealógicos mucho más enredados, superponiéndose parcial o totalmente en su breve tiempo bajo el sol. No creo que las nociones de sucesor/predecesor estén estrictamente definidas cuando se trata de chips Intel. - Wtshymanski ( discusión ) 21:43, 22 de agosto de 2012 (UTC) [ respuesta ]
Estoy de acuerdo con la última frase. El 8086 no es compatible binariamente con el 8080, por lo que no es un sucesor claro (no se necesitan notas a pie de página). Algunos otros aspectos, incluido el hecho de que era compatible con el origen, constituyen buenos argumentos para llamarlo sucesor. - Ruud 21:53, 22 de agosto de 2012 (UTC) [ respuesta ]
El 8086 es el primer miembro de la familia Intel x86. Se considera un sucesor del 8080 porque el código fuente del 8080 podría reconstruirse para el 8086. El 8085 definitivamente NO es una variante del 8086, es una variante del 8080 y es totalmente compatible binariamente con él. El 8088 no es un sucesor del 8086, es un 8086 con un bus de datos de 8 bits, al igual que el 80386 SX es un 80386 DX con un bus de datos de 16 bits. En lo que respecta a la compatibilidad binaria, el Zilog Z-80 es un verdadero sucesor del 8080. El 80186 es el sucesor del 8086 y ciertamente fue anterior al 80286 (de ahí la numeración). El 80186 es donde se originaron instrucciones como PUSHA y POPA. El 80186 (o el bus de datos de 8 bits 80188) no se utilizaba en los PC debido a que el hardware integrado (p. ej., controlador de interrupciones, controlador DMA, temporizador) era incompatible con la arquitectura del PC. El 80286 admite todos los códigos de operación del 80186 y, por supuesto, agrega soporte para modo protegido. Asmpgmr ( charla ) 19:53, 24 de agosto de 2012 (UTC) [ respuesta ]
Bueno, el conjunto de instrucciones del 8080 era un subconjunto del 8085; SID y SOD no funcionan en un 8080. Mi CP/M-fu desapareció hace mucho tiempo, pero ¿no había algún truco con el registro de banderas que pudieras hacer para determinar si el programa se estaba ejecutando en un 8085 o un 8080? ? - Wtshymanski ( discusión ) 20:00, 24 de agosto de 2012 (UTC) [ respuesta ]
Los pines no tienen nada que ver con el conjunto de instrucciones. 8085 es 100% compatible binariamente con 8080, aunque esto se sale del tema. Eliminé 8085 como variante del 8086 en el cuadro de información ya que estaba completamente incorrecto. El cuadro de información tal como está ahora es correcto. Asmpgmr ( charla ) 20:22, 24 de agosto de 2012 (UTC) [ respuesta ]
Incorrecto. El conjunto de instrucciones 8085 era un superconjunto del conjunto de instrucciones 8080. Dado que el 8080 llegó primero, no podría haber sido un subconjunto del entonces inexistente 8085. 86.156.154.237 ( charla ) 17:37, 25 de agosto de 2012 (UTC) [ respuesta ]
El 8086 era compatible con el código del 8080 a nivel de código fuente . Esto significa que, aunque una ROM 8080 no funcionaría con el 8086, cada instrucción del 8080 tenía una instrucción equivalente (o combinación de instrucciones) en el 8086. 86.156.154.237 ( charla ) 17:37, 25 de agosto de 2012 (UTC) [ responder ]

Está bastante claro que el 8085 fue el procesador que precedió inmediatamente al 8086. Dado que el 8080 y el 8085 eran tan similares arquitectónicamente, parecería razonable mostrar el predecesor como el 8080/8085. 86.156.154.237 ( charla ) 17:41, 25 de agosto de 2012 (UTC) [ respuesta ]

Velocidad de reloj más lenta

La velocidad de reloj nominal más baja fue de 5 MHz tanto para el 8086 como para el 8088 (que es lo que usaban la mayoría de las PC, exclusivamente las IBM). Sí, la PC IBM original funcionaba a 4,77 MHz, pero fue una elección de diseño: desde la memoria se correspondía bastante bien con las señales de sincronización del vídeo, aunque admito que olvido los detalles. El chip en sí era un chip de 5 MHz con velocidad más lenta. Las hojas de datos para los dos chips están disponibles: 8086 y 8088: no se describen chips más lentos que 5 MHz. Crispmuncher ( discusión ) 04:05, 29 de agosto de 2012 (UTC). [ responder ]

La PC IBM y muchas compatibles utilizaron una fuente de reloj de 14,31818 MHz dividida por 3, que es 4,77272 MHz. Incluso si 5 MHz fuera la velocidad más lenta calificada por Intel, muchas de las primeras PC definitivamente funcionaban a 4,77 MHz, por lo que la lista es correcta. Asmpgmr ( discusión ) 04:37, 29 de agosto de 2012 (UTC) [ respuesta ]
Las primeras PC usaban 8088, no 8086, por lo que eso no es relevante aquí en ningún caso. Sin embargo, la documentación de la plantilla en Plantilla:Infobox CPU señala que el parámetro "más lento" se refiere al reloj máximo más bajo , no aborda el underclocking. Probablemente haya una velocidad de reloj mínima: recuerdo que Intel hizo un comentario explícito sobre un diseño completamente estático para 80186 integrados, pero solo mucho más tarde, pero probablemente sea del orden de 1 MHz o menos. Crispmuncher ( discusión ) 04:55, 29 de agosto de 2012 (UTC). [ responder ]
Las PC de IBM usaban el 8088. Muchas otras empresas usaban el 8086 y algunas ejecutaban sus sistemas a 4,77 MHz tal como lo hacían las empresas con sistemas basados ​​en 8088, aunque muchas no lo hacían (los sistemas 8086 de 8 MHz eran comunes como el AT&T 6300/ Olivetti M24 ). De todos modos, no veo ninguna razón para no incluir 4,77 MHz como velocidad de reloj mínima tanto para el 8086 como para el 8088, ya que este uso era común debido a las PC. Asmpgmr ( charla ) 15:48, 29 de agosto de 2012 (UTC) [ respuesta ]
La frecuencia de reloj mínima para el HMOS 8086 no es tan baja como 1 MHz. Según la hoja de datos de Intel 8086/8086-2/8086-1, el tiempo de ciclo de reloj máximo para los tres grados de velocidad (5 a 10 MHz máx.) es 500 ns, lo que equivale a una frecuencia de reloj mínima de 2 MHz. El hecho de que esto sea constante para todos los grados de velocidad implica que resulta de un tiempo de caída de la carga almacenada que es independiente de los factores que limitan el tiempo de propagación de la señal lógica y, por lo tanto, la frecuencia máxima. Como una CPU a menudo puede ser overclockeada a una cantidad significativa por encima de su frecuencia máxima nominal antes de que comience a funcionar mal, probablemente también sea posible "underclockear" una CPU por debajo de la frecuencia mínima especificada por el fabricante antes de que realmente ocurran fallas, tal vez por mucho tiempo. porcentaje mayor del que se puede overclockear. Hasta donde yo sé, pocas personas han probado esto (fuera de los laboratorios de ingeniería y diseño de CPU, donde estoy seguro de que se ha probado ampliamente). 108.16.203.38 (discusión) 11:06, 9 de octubre de 2013 (UTC) [ respuesta ]
El objetivo de esto no es enumerar la velocidad mínima a la que el chip seguiría funcionando (algunas placas de desarrollo funcionaban incluso más lento, para hacer uso de una memoria más barata), sino citar la velocidad de diseño de la primera generación del procesador: 5 MHz. Este no es el artículo de PC, es el artículo 8086. Andy Dingley ( charla ) 15:59, 29 de agosto de 2012 (UTC) [ respuesta ]
Sí, buen punto, y el 8086 se usó en muchas cosas además de PC y computadoras de escritorio compatibles, incluidas máquinas de juegos arcade, sondas espaciales y equipos de apoyo terrestre STS (transbordador espacial) de la NASA. 108.16.203.38 (discusión) 11:06, 9 de octubre de 2013 (UTC) [ respuesta ]

Algo que deberías saber o insertar en el artículo sobre segmentación de memoria

Cómo convertir hexodecimal a decimal.
Segmentación de la memoria Intel 8086, página 8.
Hoja de datos de Intel 8086.
Manual de usuario Intel 8086/8088.
1) 64 KB de 2 ^ 20 = 1048576 dirección RAM se utilizan para ES (segmento de datos adicionales), desde la dirección 70000 (h) hasta la dirección 7FFFF (h) (en hexodecimal). Esto es de 7 * 16^4 + 0 * 16^3 + 0 * 16^2 + 0 * 16^1 + 0 * 16^0 = 458752 a 7 * 16^4 + 15 * 16^3 + 15 * 16 ^2 + 15 * 16^1 + 15 * 16^0 = 458752+61440+3840+240+15=524287.
2) Se utilizan 64 KB de dirección RAM de 1 MB para DS (segmento de datos), desde la dirección 20000 (h) hasta la dirección 2FFFF (h). Esto es de 2*16^4=131072 a 2*16^4+15*16^3+15*16^2+15*16^1+15*16^0=131072+61440+3840+240+15 =196607.

- Comentario anterior sin firmar agregado por Paraboloid01 ( discusióncontribuciones ) 13:10, 1 de noviembre de 2012 (UTC) [ respuesta ]

Derivados y clones

Clones mejorados

¿Alguien puede proporcionar información o referencia para respaldar esta afirmación? Las versiones compatibles (y, en muchos casos, mejoradas ) fueron fabricadas por Fujitsu, Harris/Intersil, OKI, Siemens AG, Texas Instruments, NEC, Mitsubishi y AMD.

¿Qué es una versión mejorada? Para mí es una versión que tiene algunas características de software adicionales. Hasta donde yo sé, NEC fue la única empresa que produjo una versión 8086 mejorada: su procesador V30. Harris y OKI (y más tarde Intel) crearon una versión CMOS: 80C86, que no tiene ninguna mejora de software. Parece ser una simple conversión de tecnología lógica NMOS a CMOS.

Además, no creo que Texas Instruments haya hecho nunca un clon del 8086 (aunque estaban fabricando el 8080).

No creo que "mejorado" signifique que sólo se deben mejorar las características del software. Eso es pensar como un programador, y muchas personas que trabajan con CPU no son programadores, o no son principalmente programadores, ¡incluida la mayoría de los ingenieros de Intel que diseñan las CPU! Las mejoras de hardware podrían incluir una menor disipación de energía, más flexibilidad de interfaz de hardware (por ejemplo, lógica de controlador de bus 8288 incorporada), buses demultiplexados, mayor capacidad de unidad de salida y, como en las versiones CMOS, una frecuencia de reloj más flexible (hasta CC para CMOS). Si estas no son mejoras, ¿qué son? No son modificaciones, porque no alteran la capacidad básica, sólo la amplían.
Otra mejora de hardware sería la adición de periféricos internos como un controlador de interrupciones o un controlador DMA. El controlador de interrupciones podría ser simplemente una lógica simple que conecta algunos pines de interrupción separados, cada uno a niveles de interrupción específicos, omitiendo el ciclo INTA, o haciendo uno ficticio, o haciendo uno real que usa una tabla de vectores de interrupción diferente a la del estándar Intel. utilizado por el pin de interrupción INTR principal. Algunos periféricos agregados, como un controlador DMA o un controlador de interrupción programable, serían visibles para el software, mientras que el controlador de interrupción simple no programable descrito anteriormente no lo sería.
Además, podría haber mejoras de hardware en la CPU base que podrían ser visibles para los programadores. La ejecución de instrucciones más rápida sería aquella que sería visible para el software, si tuviera en cuenta el tiempo. (Si programa en un lenguaje de alto nivel, entonces no, no puede ver esto, pero sí puede hacerlo si programa en lenguaje ensamblador). Los cachés y buffers, por ejemplo para datos e instrucciones de la memoria, también podrían tener una función de software. efecto visible en el tiempo.

108.16.203.38 (discusión) 10:22, 9 de octubre de 2013 (UTC) [ respuesta ]

clones soviéticos

No estoy de acuerdo con la siguiente afirmación: el chip resultante, K1810BM86, era binario y compatible con pines con el 8086, pero no era compatible mecánicamente porque usaba medidas métricas . De hecho, la diferencia en el paso de los conductores es mínima: sólo 0,04 mm entre dos pines adyacentes, lo que da como resultado una diferencia máxima de 0,4 mm para un encapsulado DIP de 40 pines. De modo que los circuitos integrados soviéticos se pueden instalar en enchufes con paso de 0,1" y viceversa. No era inusual ver chips occidentales instalados en computadoras soviéticas posteriores usando enchufes métricos. Y, curiosamente, también he visto tarjetas de red taiwanesas usando algún circuito integrado de lógica soviética.

Esta imagen muestra la placa ES1845 con el controlador IC DMA NEC D8237AC-5 instalado en un zócalo métrico (esquina superior izquierda). - Comentario anterior sin firmar agregado por Skiselev ( discusióncontribuciones ) 21:52, 5 de junio de 2013 (UTC) [ respuesta ]

0,4 mm, en relación con un paso de 2,5 mm, es aproximadamente el 16%. Si uno encaja o no, depende de qué tan bit estén los orificios del zócalo (o de la placa de PC si no está enchufado). Sospecho que cuando se tomó la decisión se pensó que era pequeña, pero al final muchos no encajarán. Quizás los rusos hicieron algunos enchufes con agujeros grandes para acompañarlos. Gah4 ( charla ) 23:12, 7 de diciembre de 2020 (UTC) [ respuesta ]

Variable MN/MX

No hay ninguna razón por la que un diseñador de computadoras no pueda equipar una computadora basada en 8086/8088 con un puerto de registro que cambiaría el pin MN/MX y entraría en vigor en el siguiente reinicio. (Cambiar el nivel del pin mientras la CPU está funcionando puede tener resultados impredecibles e indocumentados). Sin embargo, dado que es necesario coordinar otro hardware con el nivel del pin MN/MX, esto requeriría que otro hardware cambie al mismo tiempo. Normalmente, esto no sería práctico y probablemente el único uso razonable sería la emulación de hardware de dos o más modelos de computadora diferentes basados ​​en la misma CPU (como la IBM PCjr, que usa el 8088 en modo mínimo, y la IBM PC XT, que lo utiliza en modo máximo). Incluso es posible que el 8086/8088 no responda a un cambio en el nivel de MN/MX después de un reinicio del hardware, sino sólo al encenderlo. Incluso entonces, es ciertamente posible diseñar hardware que apague la CPU, cambie MN/MX, espere una cantidad de tiempo adecuada y la vuelva a encender. 108.16.203.38 (discusión) 10:01, 9 de octubre de 2013 (UTC) [ respuesta ]

Hay una muy buena razón por la que no se puede hacer, al menos no fácilmente. Ocho de los pines del procesador tienen diferentes funciones entre el modo MAX y MIN. Dado que estos están relacionados con las señales de control del bus, sería necesario proporcionar una lógica tal que el controlador de bus 8288 estuviera en circuito para el modo MAX y fuera del circuito para el modo MIN. Dado que el propósito del modo MIN es ahorrar en ese chip controlador 8288, no se ganaría nada con tener un sistema de modo conmutable ya que el 8288 tendría que estar presente para el modo de operación MAX. IB Wright ( discusión ) 16:36, 7 de marzo de 2014 (UTC) [ respuesta ]
Es cierto que un sistema podría cambiar el pin MN/MX pero requeriría muchos circuitos y esfuerzo. No es que frecuenta las oficinas de diseño del mundo, pero nunca he oído hablar de un sistema que quisiera hacer esto. ¿Estabas pensando en incluir una observación sobre el cambio dinámico de MN/MX? Si es así, no lo haría. También podría construir un sistema que cambiara el riel de suministro Vcc de 5 V a 5,5 V bajo control de software o cambiara el reloj de 4 MHz a 5 MHz, pero no es una aplicación típica ni educativa/esclarecedora, por lo que no es para la página Wiki 8086. --ToaneeM ( discusión ) 09:39, 15 de noviembre de 2016 (UTC) [ respuesta ]

Organización de la memoria

Tal vez me lo perdí en el artículo, pero parece que no hay nada sobre cómo se organiza la memoria y cómo se interconecta con el 8086. A diferencia de la mayoría de los procesadores de 16 bits, donde la memoria tiene 16 bits de ancho y se accede a ella 16 bits a la vez, la memoria para el 8086 está organizado como dos fragmentos de memoria de 8 bits de ancho con un fragmento conectado a D0-D7 (byte bajo) y el otro a D8-D15 (byte alto). Esta disposición se debe a que el 8086 admite códigos de operación de 8 y 16 bits. Los códigos de operación de 8 bits pueden ocupar tanto el byte bajo como el byte alto de la memoria. Por lo tanto, el primer opsodo (8 bits) estará presente en el byte bajo del bus de datos, pero el siguiente estará presente en el byte alto. Además, si un único código de operación de 8 bits está en el byte bajo, entonces cualquier código de operación de 16 bits inmediatamente posterior se almacenará con su byte más bajo en el byte alto correspondiente de la memoria y el byte más alto en el siguiente byte bajo direccionado. En ambos casos existe una pena de tiempo de ejecución. En el primer escenario, el procesador tiene que cambiar el segundo código de operación nuevamente a su posición de byte bajo (la penalización de tiempo es mínima en este caso). En el segundo escenario, el procesador tiene que realizar 2 accesos a la memoria ya que el código de operación de 16 bits ocupa 2 direcciones; además, el procesador tiene que intercambiar los bytes bajo y alto una vez leídos (el intercambio es una penalización de tiempo mínima, pero los dos accesos a la memoria son una penalización importante ya que se requieren dos ciclos). Luego, el procesador tiene que leer nuevamente la ubicación de la segunda memoria para recuperar el byte bajo del siguiente código de operación de 16 bits o el código de operación de 8 bits, según sea necesario. Esto significa que una serie de códigos de operación de 16 bits alineados en el límite impar obliga al procesador a utilizar dos ciclos de acceso a la memoria para cada código de operación.

El código se puede ensamblar de dos maneras. El código se puede ensamblar de manera que los códigos de operación ocupen cualquier posición de memoria que esté disponible a continuación. Esto proporciona un código más compacto pero con una penalización de ejecución. Alternativamente, el código se puede ensamblar de manera que un único código de operación de 8 bits siempre ocupe el byte bajo de la memoria (un código NOP se coloca en el byte alto), y un código de operación de 16 bits siempre se coloca en una sola dirección en el byte bajo/correcto. orden de bytes alto (nuevamente, los códigos NOP se utilizan según sea necesario). Esto proporciona una velocidad de ejecución más rápida ya que se evitan las penalizaciones de tiempo anteriores, pero el precio es un código mayor ya que los códigos de programa válidos se rellenan con códigos de operación NOP para garantizar que todos los códigos de operación comiencen en un límite de bytes pares. Los ensambladores normalmente permitirán una combinación de modos. Los compiladores generalmente no ofrecen dicho control e invariablemente compilarán el código para un tiempo de ejecución mínimo.

En algún lugar tengo un libro que detalla todo esto, pero me sorprendería poder encontrarlo ahora. IB Wright ( discusión ) 17:10, 7 de marzo de 2014 (UTC) [ respuesta ]

No, ver más abajo. Gah4 ( charla ) 23:22, 25 de marzo de 2020 (UTC) [ respuesta ]
El 8086 tiene un buffer de instrucciones de tres palabras. En él sólo se leen palabras completas (alineadas). En el caso de instrucciones no alineadas, no lee por separado el último byte de una y el primer byte de la siguiente, sino que los extrae del búfer en el orden apropiado. Tenga en cuenta también que en el caso del código que se modifica automáticamente, no recupera los bytes modificados. Esto se utiliza para probar 8088 frente a 8086, ya que el 8088 tiene un búfer de instrucciones de cuatro bytes. Creo que el búfer se vacía en una instrucción de bifurcación. Gah4 ( charla ) 17:35, 25 de agosto de 2020 (UTC) [ respuesta ]

Código de muestra

El código de muestra es muy descuidado. Guarda/configura/restaura el registro ES aunque el código nunca hace referencia a él. La discusión dice que esto es necesario pero está mal ("mov [di],al" usa el segmento DS: predeterminado tal como lo hace "mov al,[si]"). Sería necesario para las instrucciones de cadena, como REP MOVSB, pero la discusión propone reemplazar el bucle con REP MOVSW (una instrucción de palabra), que en realidad copiaría el doble de bytes de los pasados ​​en el registro de conteo. REP MOVSB ​​funcionaría y obviaría la necesidad de realizar la verificación JCXZ (REP MOVSB ​​no funciona cuando CX = 0). - Comentario anterior sin firmar agregado por 24.34.177.232 ( charla ) 20:14, 19 de diciembre de 2015 (UTC) [ respuesta ]

Echa otro vistazo. Empuja DS a la pila y luego lo coloca en ES. 81.157.153.155 ( charla ) 14:21, 25 de agosto de 2020 (UTC) [ respuesta ]
Sí, empuja/explota, pero ¿con qué propósito? ¡ES nunca se usa!
REP MOVSB ​​funcionaría, sí, pero REP MOVS está microcodificado. Para muchos movimientos pequeños típicos (menos de ~200 bytes), REP MOVS es más lento que la copia del tamaño de una palabra utilizando GRP. (Intel dice periódicamente "este nuevo procesador ha optimizado REP MOVS cortos", pero todavía tengo que verlo funcionar. Skylake sigue siendo lento).
También:
"Registros de retorno AX = Cero". (1) ¿por qué molestarse? (2) memcpy() en lenguaje C real devuelve la dirección de origen, no 0.
Las etiquetas no tienen dos puntos detrás. En el ensamblador de Intel, tienen que hacerlo.

Me pregunto si el código de muestra debería reemplazarse por completo. Dado que el 8086 tiene CLD, REP MOVSB, ¿por qué cualquier compilador/codificador crearía un procedimiento para mover una cadena en lugar de insertarlo? ¡El en línea tiene solo 3 bytes! ¿Qué tal reemplazar la muestra con otro ejemplo trivial como un cambio de cadena como el del artículo 68000 ? Esto podría escribirse para incluir la configuración del marco de llamada y demostrar el uso de LODSB y STOSB. ¡Esto incluso crearía un propósito para configurar ES! Con mucho gusto escribiré el procedimiento si hay algún consenso. RastaKins ( discusión ) 15:52, 28 de diciembre de 2021 (UTC) [ respuesta ]

Realmente útil

Eliminé "a menudo descrito como 'el primer microprocesador verdaderamente útil'{{citación necesaria|fecha=diciembre de 2014}}". Cada vez que aparece en Google el término de búsqueda "el primer microprocesador verdaderamente útil" es un sitio que utiliza este artículo, o de hecho es este artículo. No pude encontrar ningún resultado independiente que dijera eso. Además, la etiqueta "cita requerida" ya tiene más de tres años y todavía no hay ninguna cita. Finalmente, la frase contiene la palabra comadreja "a menudo", que es un ejemplo canónico. Nick Beeson ( discusión ) 15:04, 22 de marzo de 2018 (UTC) [ respuesta ]

En cuanto a los microprocesadores que podrían sustituir a los miniordenadores reales, es lo correcto. Sin embargo, el 8080 podía hacer gran parte de lo que la gente necesitaba hacer en ese momento. Es decir, aunque el 8080 fue diseñado para uso con microcontroladores, era un ordenador razonable de uso general. Gah4 ( discusión ) 03:28, 11 de julio de 2018 (UTC) [ respuesta ]
"Verdaderamente útil" es un término relativo. Un microcontrolador o microprocesador sólo es verdaderamente útil si hace lo que usted realmente quiere que haga.
Intel produjo varios procesadores antes del 8086 comenzando con el 4004. Incluso el 4004 tenía que ser realmente útil para que Intel pudiera producirlo durante más de diez años. El primer procesador que se utilizó como CPU en lo que de manera realista podría describirse como una computadora (el término microcomputadora vino más tarde) fue el 8080, aunque Intel ni lo concibió ni estuvo interesado en comercializarlo para tal uso, hasta el CP/ El sistema operativo de disco M apareció a partir de Inter-Galactic Digital Research (que rápidamente se convirtió simplemente en Digital Research). 81.157.153.155 ( charla ) 14:17, 25 de agosto de 2020 (UTC) [ respuesta ]

7,16MHz

Hay una edición reciente sobre 7,16 MHz. El 8086 y el 8088 tienen requisitos de reloj asimétricos. A máxima velocidad, el reloj debería tener un ciclo de trabajo del 33%. El 8284 genera esto con un contador dividido por tres. Se podría ejecutar un 8086 de 10MHz a 7,16MHz con un reloj del 50%. Estados de espera apropiados reducirían el ciclo del autobús, si fuera necesario. Gah4 ( discusión ) 03:26, 11 de julio de 2018 (UTC) [ respuesta ]

BX como registro índice

Que yo sepa, aunque no se puede hacer referencia directa a las ubicaciones de memoria en AX, CX o DX, BX también se utiliza como registro de índice. ¿Deberíamos tener cuatro ceros delante en la pequeña guía de registro? Jethro 82 ( discusión ) 00:35, 15 de marzo de 2019 (UTC) [ respuesta ]

@Jethro 82: Hoy estuve mirando BX e implementé los cuatro ceros iniciales. ENTONCES vi tu sabio comentario. Obviamente estoy de acuerdo. AX, CX y DX no se pueden utilizar como índice, pero BX se puede utilizar como SI y DI. RastaKins ( charla ) 18:11, 25 de diciembre de 2021 (UTC) [ respuesta ]

Si el 8086 debe conservar códigos objeto de 8 bits y, por lo tanto, el uso eficiente de la memoria del 8080, entonces no puede garantizar que los códigos de operación y los datos (de 16 bits) se encuentren en una dirección de byte par-impar.

El artículo dice: Si el 8086 debe conservar códigos de objeto de 8 bits y, por lo tanto, el uso eficiente de la memoria del 8080, entonces no puede garantizar que los códigos de operación y los datos (de 16 bits) se encuentren en una dirección de byte par-impar , lo cual creer está mal. El 8086 tiene un búfer de instrucciones (caché) que se carga 16 bits a la vez. La búsqueda de instrucciones siempre se realiza para la palabra completa, incluso cuando se necesita el byte impar. El acceso a los datos, por otro lado, se puede realizar en ciclos de 8 o 16 bits. En general, esto solo es importante para la escritura en memoria, donde la habilitación de escritura es solo para el byte que se está escribiendo. Es el direccionamiento eficiente de datos lo que requiere ciclos de 8 bits, no instrucciones. Gah4 ( charla ) 23:28, 25 de marzo de 2020 (UTC) [ respuesta ]

@ Gah4 : Estoy de acuerdo contigo, el artículo es incorrecto. El 8086 siempre recupera el flujo de instrucciones en 16 bits. Tiene un búfer de captación previa para que esto sea práctico. "La arquitectura 8086 tiene una canalización de instrucciones de captación previa de seis bytes, mientras que el 8088 tiene una captación previa de cuatro bytes. Mientras la unidad de ejecución ejecuta la instrucción actual, la unidad de interfaz de bus lee hasta seis (o cuatro) bytes de códigos de operación por adelantado de la memoria. Las longitudes de las colas se eligieron basándose en estudios de simulación". [1] La sugerencia a continuación de que insertar NOP entre cada instrucción de longitud impar mejoraría la eficiencia es pura fantasía. La instrucción NOP es XCHG AX,AX. Se necesitan tres relojes. INCLUSO aumentar el flujo de instrucciones solo ayuda cuando la dirección es el destino de un JMP o CALL. Reemplacé la información incorrecta de Osborne y la sustituí por una fuente primaria. RastaKins ( charla ) 21:20, 23 de noviembre de 2021 (UTC) [ respuesta ]
@ Gah4 : El artículo es correcto. Los códigos de operación de 16 bits no tienen por qué ocupar una única dirección de 16 bits. La presencia de códigos de operación de 8 bits perturbará este flujo natural. Un solo código de operación de 8 bits hará que el byte normalmente bajo del siguiente código de operación de 16 bits ocupe el byte alto de la dirección que contiene el código de operación de 8 bits. El byte alto ocupará entonces el byte bajo de la ubicación inmediatamente siguiente. Si esto fuera seguido por otro código de operación de 8 bits, ocuparía el byte superior izquierdo. El 8086 está ideal para este método de almacenar código precisamente porque la memoria no está organizada como lo estaría una memoria normal de 16 bits, sino como dos bancos de memoria de 8 bits que ocupan el mismo espacio de direcciones. De manera similar, el 8086 no tiene un búfer de instrucciones de 16 bits que recibe el contenido de la memoria, sino dos búfer de 8 bits. Luego sigue la lógica para colocar el búfer de byte alto en el byte bajo del siguiente búfer de 16 bits (salida) y el byte bajo de la siguiente lectura en el byte alto del búfer de salida, lo que completa la instrucción y el 'correcto'. por ahí'. Esta misma lógica desplazará una instrucción de 8 bits del byte alto al byte bajo del búfer de salida.
Las cosas se vuelven un poco más confusas porque el 8086 presenta aparentemente 19 líneas de dirección (AD0 a AD15 más A16 a A19). AD0 a AD7 son las líneas de dirección y datos (multiplexadas) para el banco de memoria de bytes bajos y están conectadas a las líneas D0 a D7 del banco de memoria. Los AD8 a AD15 están conectados a las líneas D0 a D7 del banco de memoria de bytes superior. AD0 también es la línea de selección de memoria para el banco de bytes inferior, ya que solo se selecciona en direcciones impares. Otra señal BHE es la línea de selección de memoria para el banco de bytes superior. AD1 a AD15 (multiplexadas con líneas de datos) y A16 a A19 (no multiplexadas) son también las líneas de dirección para ambos bancos conectados de A0 a A18 de ambos bancos de memoria. ¿Aún conmigo?
Al leer un código de operación de 8 bits ubicado en el byte inferior de una dirección o al leer un código de operación de 16 bits que ocupa una sola dirección, el 8086 transfiere los 16 bits completos a los dos buffers de memoria y luego al buffer de salida. Sin embargo, si hay un código de operación de 16 bits que abarca dos direcciones, el 8086 tiene que realizar dos lecturas y un intercambio. Sin embargo, no afirma BHE para la segunda lectura y, en consecuencia, no carga el byte alto en su búfer de memoria. Luego, el 8086 lee la siguiente ubicación, pero esta vez no afirma la línea AD0 ya que estamos accediendo solo al banco alto, por lo que no carga el byte bajo en su búfer de memoria y luego lee la siguiente dirección como se indicó anteriormente si está leyendo un archivo de 16 bits. código de operación.
Intel podría haber optado únicamente por códigos de operación de 16 bits, simplificando la lógica de la memoria y guardando una señal de selección de memoria. Sin embargo, Intel optó por el arreglo que hizo para utilizar el espacio de direcciones limitado de manera más eficiente. El precio pagado es la velocidad de ejecución. La velocidad se puede recuperar disponiendo siempre los códigos de operación de 8 bits para que estén solo en el byte inferior y los códigos de operación de 16 bits para ocupar una sola dirección siguiendo un código de operación de 8 bits con una instrucción NOP (dos códigos de operación adyacentes de 8 bits pueden ocupar el byte bajo). y bytes altos de una sola dirección sin penalización ya que eso es lo que hará la instrucción NOP). La penalización es un código objeto más grande.
Los ensambladores x86 ensamblan código eficiente en memoria de forma predeterminada). Para los ensambladores originales 8086 (y los posteriores 80286), la directiva del ensamblador es 'PARA' para forzar que el siguiente código de operación ocupe una sola dirección (o solo el byte inferior si es de 8 bits). Es frustrante que EVEN debe preceder a cada código de operación que debe ocupar una única dirección. Algunos compiladores también ofrecen opciones para forzar que los códigos de operación ocupen una sola dirección, pero es todo o nada.
A menudo no se da cuenta de que los procesadores 80386 y posteriores también tienen el mismo problema, ya que la memoria ahora está organizada como un único bloque de 32 bits (tratado como bloques adyacentes de 16 bits en modos REAL o V86). De forma predeterminada, un ensamblador colocaría cuatro códigos de operación de 8 bits o dos de 16 bits en la misma ubicación de 32 bits, lo que generaría un código objeto compacto, pero aún se producen penalizaciones de tiempo porque el procesador tiene que mezclar los códigos, aunque la lógica es mucho más compleja. eficiente. Para ensambladores que admiten 80386 y posteriores, la directiva es 'ALIGN 4'. En estos ensambladores más nuevos, 'ALIGN 2' es una directiva válida para los modos REAL y V86 y tiene la misma función que 'EVEN'. 81.157.153.155 ( charla ) 13:40, 25 de agosto de 2020 (UTC) [ respuesta ]
En realidad, no he pensado mucho en esto durante unos 30 años, y aunque solo escribí lo anterior hace unos meses... creo que el 8086 siempre lee instrucciones en ciclos de palabras. Creo que eso es lo que intentaba decir, aunque leyéndolo ahora, no es tan obvio. Las instrucciones se leen en el búfer de instrucciones de tres palabras y luego se extraen de allí para ejecutarlas. Al leer operandos de datos no alineados, puede leerse como bytes o palabras completas. El tiempo que realmente tiene para hacerlo bien es en escrituras, donde se necesitan BHE y A0 para escrituras de un solo byte (o palabra no alineada). Para lecturas, siempre puede leer la palabra completa. Gah4 ( charla ) 17:24, 25 de agosto de 2020 (UTC) [ respuesta ]
Sólo puedo referirte a la obra de referencia que utilizo para tales ocasiones. Manual del microprocesador Osborne de 16 bits de Adam Osborne y Gerry Kane: páginas 5-24 a 5-26 (ISBN 0-931988-43-8). Mi recuerdo también se vuelve un poco confuso después de todo este tiempo. Lo importante a tener en cuenta es que, aunque la memoria está organizada como dos bloques de 512 kBytes, una única dirección de memoria sólo accede a un byte de datos de 8 bits de ancho, a diferencia de lo que cabría esperar. Las direcciones pares están en el bloque de 'byte bajo' (las direcciones comienzan desde 0x00000) y las direcciones impares están en el bloque de 'byte alto'. Hay otros procesadores de 16 bits que hacen exactamente lo mismo, el Z8000 es un ejemplo aunque sólo cuatro de sus instrucciones son códigos de operación de 8 bits (técnicamente tres ya que DI y EI tienen el mismo código de operación [7C], siendo la diferencia determinada por un bit en el operando), por lo que hay poco margen para la eficiencia de la memoria. Esta disposición hizo que la realización del 8088 fuera relativamente simple, ya que este procesador simplemente tiene un único bloque de memoria de 1024 kBytes de 8 bits de ancho.
Me las arreglé para hacer las cosas un poco mal arriba (es así de confuso) y me faltaba una línea de datos para el bloque de memoria alta. Por eso: me disculpo. Lo he corregido, lo cual creo que puedo hacer ya que no respondiste directamente a los detalles. 81.157.153.155 ( charla ) 13:49, 26 de agosto de 2020 (UTC) [ respuesta ]
Tengo ese libro, probablemente más fácil de encontrar que el libro de Intel, que también tengo. Ahora olvido si puedes forzar al 8086 a realizar solo ciclos de 8 bits. Creo que puedes hacerlo con los procesadores 680x0. Bueno, solía saber algunas cosas sobre VME, que está convenientemente cerca en algunos aspectos del 680x0 en espacios y modos de direccionamiento. Entre otros, VME tiene espacios de direcciones separados para diferentes anchos de direcciones y datos, aunque los dispositivos en el bus pueden responder a todos ellos. Hay, al menos, anchos de dirección de 24 y 32 bits, y anchos de datos de 8, 16 y 32 bits, para seis espacios de direcciones diferentes y posiblemente separados. Me recuerda a una característica 8086 (y 8088) que casi olvido. El sistema de memoria puede determinar cuáles son accesos de pila y cuáles no, y así proporcionarles un espacio de direcciones separado. (No conozco ninguno que lo haga). El caché de instrucciones era una característica nueva en el 8086, no mucho antes de los sistemas de caché externos más generales. (Y es curioso que no detecte modificaciones de instrucciones). A modo de comparación, el IBM 360/91 tiene captación previa de instrucciones (bastante nueva en ese momento), pero detecta escrituras en direcciones ya recuperadas y las recupera. La arquitectura S/360 permite la modificación automática del código, y no era tan inusual en ese momento. Gah4 ( charla ) 18:58, 26 de agosto de 2020 (UTC) [ respuesta ]
De lo contrario, lo importante es que la memoria escriba. No hay nada de malo en leer una palabra completa (un poco complicado para E/S), pero no puedes escribir la palabra completa cuando solo cambia un byte. No mucho después, está el caché, donde la palabra completa entra en el caché, se cambian los bytes y se escribe la palabra completa. Para DEC Alpha, solo hay instrucciones de acceso a memoria de 32 y 64 bits. Para cambiar un byte, busca la palabra completa (se ignoran los bits bajos), cambia el byte (se ignoran los bits altos) y lo vuelve a escribir. Existen secuencias de instrucciones eficientes para hacer eso. Gah4 ( charla ) 19:02, 26 de agosto de 2020 (UTC) [ respuesta ]

Referencias

  1. ^ McKevitt, James; Bayliss, John (marzo de 1979). "Nuevas opciones de grandes chips". Espectro IEEE : 28–34.

codificación compacta inspirada en procesadores de 8 bits

El artículo dice codificación compacta inspirada en procesadores de 8 bits con respecto a operaciones de una dirección y dos direcciones, supongo que es una referencia a microprocesadores de 8 bits anteriores. Los procesadores de una dirección (acumulador) y de dos direcciones (generalmente basados ​​en registros) se remontan a mucho tiempo atrás, muchos años antes que los microprocesadores anteriores, casi hasta el comienzo de la computación electrónica. El byte de 8 bits se atribuye comúnmente a IBM S/360, una línea de máquinas (arquitectura) de 32 bits con memoria direccionable por bytes. En cualquier caso, la codificación óptima de instrucciones tiene una larga historia que no comenzó con los microprocesadores de 8 bits. Gah4 ( charla ) 23:22, 7 de diciembre de 2020 (UTC) [ respuesta ]

Quizás no sea una "codificación compacta" sino una "codificación de bytes" inspirada en los procesadores de 8 bits. La mayoría de los procesadores de 16 bits utilizan flujos de instrucciones de 16 bits. No puedo pensar en otro procesador de 16 bits que utilice un flujo de instrucciones de bytes como el 8086. RastaKins ( charla ) 15:46, 10 de junio de 2024 (UTC) [ respuesta ]

Instrucciones para funciones anidadas

Se agregaron instrucciones para ayudar en la compilación del código fuente de funciones anidadas en la familia de lenguajes ALGOL , incluidos Pascal y PL/M . -- (en Intel_8086#The_first_x86_design )

Esta oración no dice de qué instrucciones se trata. Según tengo entendido, esto podría tratarse de las instrucciones entery leave(específicamente el segundo argumento enteres una forma directa de hacer referencia al nivel de anidamiento léxico de la función llamada y ayuda a escapar de las variables), pero estas instrucciones no estaban en el primer conjunto de instrucciones 8086. , se introdujeron más tarde según X86_instruction_listings#Added_with_80186/80188 . ¿Es esto un error? En mi opinión, es una información muy interesante, pero ¿debería trasladarse a otra sección y reformularse como " Los procesadores x86 posteriores agregarían las instrucciones enter/ leavepara ayudar en la compilación del código fuente de […] "? - Dettorer (discusión) 08:04, 15 de mayo de 2023 (UTC) [ respuesta ]

CVV

El CVV de mi tarjeta de débito es 086. ¡Me encanta! Me recuerda a 8086 y mi juventud. Bretleduc ( charla ) 17:04, 24 de noviembre de 2023 (UTC) [ respuesta ]

Remejorar

Los párrafos primero, tercero, quinto, séptimo y octavo de la sección de historia, las tres primeras y la última sección L2 de la sección de detalles están totalmente desprovistos de referencias. Las otras partes son igualmente escasas con múltiples párrafos sin fuente. No elimine la plantilla de mejora hasta que se hayan solucionado los problemas de referencia. Cambial - foliar❧ 08:15, 4 de junio de 2024 (UTC) [ respuesta ]

Gracias por indicar lo que hay que hacer. Generalmente vemos mejoras en artículos que tienen escasas referencias. Este artículo tiene 28 referencias y 37 enlaces a esas referencias. Superficialmente, eso parece adecuado. Con su publicación anterior, ahora sabemos exactamente dónde mejorar el artículo. En el futuro, cuando realice una mejora en un artículo con muchas referencias, agregue un comentario que describa lo que falta en el artículo para que los editores sepan qué se necesita y los criterios para eliminar la etiqueta. RastaKins ( discusión ) 14:03, 4 de junio de 2024 (UTC) [ respuesta ]
Estoy de acuerdo en que normalmente vemos mejoras en artículos que tienen escasas referencias, como este. En el futuro, no elimine las categorías de mantenimiento hasta que se resuelva el problema, gracias. Cambial - foliar❧ 14:09, 4 de junio de 2024 (UTC) [ respuesta ]