1 процессор intel 8086 разрядность шины адреса 16

Процессор Intel 8086

Регистры

Всего в процессоре i8086 было 14 16-разрядных регистров: 4 регистра общего назначения (AX, BX, CX, DX), 2 индексных регистра (SI, DI), 2 указательных (BP, SP), 4 сегментных регистра (CS, SS, DS, ES), программный счётчик или указатель команды (IP) и регистр флагов (FLAGS, включает в себя 9 флагов). При этом регистры данных (AX, BX, CX, DX) допускали адресацию не только целых регистров, но и их младшей половины (регистры AL, BL, CL, DL) и старшей половины (регистры AH, BH, CH, DH), что позволяло использовать не только новое 16-разрядное ПО, но сохраняло совместимость и со старыми программами (правда, их необходимо было, по крайней мере, перекомпилировать). (с) http://ru.wikipedia.org/wiki/Intel_8086

Адресация памяти


1-й вариант. Для того чтобы адресовать больший, чем i8080, объём памяти, потребовалось изменить способ адресации памяти. Ведь если использовать старые методы, когда адрес к ячейке памяти содержался в указательных регистрах, то пришлось бы увеличивать размер этих самых регистров, чтобы иметь возможность обращаться к большему объёму памяти. Поэтому для адресации 1 Мбайт памяти применили следующую схему. На шину адреса подавался физический адрес размером 20 бит, который формировался путём сложения содержимого одного из сегментных регистров (16 бит), умноженного на 16, с содержимым указательного регистра: таким образом, адресация ячейки памяти производилась по номеру сегмента и эффективному адресу ячейки в сегменте (называемому также смещением). Если результат сложения оказывался больше, чем 220 -1, то 21-й бит отбрасывался; такая процедура называется «заворачиванием» адреса (англ. address wraparound). Этот метод впоследствии (после появления защищённого режима) назвали реальным режимом адресации процессора, такой режим позволяет адресовать до 1 Мбайт памяти.

2-й вариант. Для того чтобы адресовать 1 мегабайт памяти (20 бит адреса) с использованием 16-битных регистров используется сегментирование. Старшие 4 бит адреса выводятся на отдельные контакты корпуса, а младшие 16 выводятся на совмещённую шину адреса-данных. Но граница сегмента не жёсткая, а плавающая. Для того чтобы адресовать нужный сегмент используются 16-битные регистры сегмента, значение которых сдвигается на 4 бита вверх и складывается с указательным 16-битным регистром. Полученное значение — 20 битный адрес памяти или устройства выводится на контакты. Если результат сложения оказывался больше чем 1 мегабайт, выводятся только младшие 20 бит адреса, 21-бит отбрасывается.
Схема, показывающая работу реального режима адресации процессора Intel 8086 и выше

Таким образом, память разделяется на сегменты, размером 64 Кбайт каждый и начинающиеся с адреса, кратного 16 (граница параграфа); память в 1 Мбайт разделялась, таким образом, на 16 сегментов. Эти 16 сегментов называют страницами памяти. В компьютере, подобном IBM PC, последние 6 страниц (A, B, C, D, E, F) памяти (т. н. верхняя память — англ. upper memory) использовались для видеопамяти и BIOS-а, это ограничивало память, доступную пользователю, объёмом в 640 Кбайт (т. н. обычная память — англ. conventional memory; страницы 0~9).

На то время такой режим адресации обеспечивал множество преимуществ: ёмкость памяти могла составлять до 1 Мбайт, хотя команды оперировали 16-битными адресами; упрощалось использование отдельных областей памяти для программы, её данных и стека; упрощалась разработка устройств, совместимых друг с другом. (с) http://ru.wikipedia.org/wiki/Intel_8086

Информационные революции в истории

В истории развития цивилизации произошло несколько информационных революций — преобразований социальных общественных отношений вследствие изменений в области обработки, сохранения и передачи информации.

Первая революция связана с изобретением письменности, что привело к гигантскому качественному и количественному скачку цивилизации. Появилась возможность передачи знаний от поколений к поколениям.

Вторая (середина XVI в.) революция вызвана изобретением книгопечатания, которое радикально изменило индустриальное общество, культуру, организацию деятельности.

Третья (конец XIX в.) революция с открытиями в области электричества, благодаря чему появились телеграф, телефон, радио, устройства, которые позволяют оперативно передавать и накапливать информацию в любом объеме.

Четвертая (с семидесятых годов XX в.) революция связана с изобретением микропроцессорной технологии и появлением персонального компьютера. На микропроцессорах и интегральных схемах создаются компьютеры, компьютерные сети, системы передачи данных (информационные коммуникации).

Этот период характеризуют три фундаментальные инновации:

  • переход от механических и электрических средств преобразования информации к электронным;
  • миниатюризация всех узлов, устройств, приборов, машин;
  • создание программно-управляемых устройств и процессов.

Intel 8086/8088 и архитектура x86

Процессор Intel 8086

Разработка 8086 была поручена инженеру Стивену Морсу, который скомпилировал основные спецификации процессора и его архитектуры к середине лета 1976 года. Еще два года понадобилось Intel для его создания. И вот 8 июня 1978 года кристалл 8086 был официально анонсирован.

Стивен Морс (справа) — отец «восемьдесят шестого»

Intel 8086 был примерно в 10 раз быстрее, чем модель с индексом 8080. Процессор стал первой реализацией системы команд x86 и одноименной архитектуры, которая впоследствии стала своего рода стандартом и используется в кристаллах AMD и Intel по сей день.

Процессор Intel 8088

Разработка компьютера 5150 имела огромное значение для компании IBM. Во второй половине 1970-х годов рынок персональных десктопов активно развивался, а IBM уделяла этому сегменту недостаточно внимания. Само собой, в компании осознавали всю его перспективность, в связи с чем и было принято решение о разработке собственной модели ЭВМ.

IBM 5150 — первая модель линейки IBM PC — увидела свет в 1981 году. Топовая версия компьютера оценивалась в 3005 долларов США. Она комплектовалась процессором Intel 8088 с частотой 4,77 МГц, а объем оперативной памяти составлял 64 Кбайт. В качестве устройства для хранения данных в IBM 5150 использовались 5,25-дюймовые дискеты. А несколько позже в продаже появились модели компьютера, которые позволяли использовать аудиокассеты как хранилище данных. Установить жесткий диск в систему было невозможно, однако спустя некоторое время IBM выпустила винчестер, который подключался к 5150 в качестве модуля расширения. Компьютер обладал несколькими портами расширения, через которые, кроме винчестера, подключались видеоадаптеры, карты с портами ввода-вывода и другие устройства.

Младшая версия десктопа стоила почти в два раза меньше — 1565 долларов США. В «урезанной» модели использовался тот же Intel 8088, но объем оперативной памяти составлял всего 16 Кбайт. Во-вторых, в отличие от старшей версии, младшая не комплектовалась CGA-монитором и флоппи-дисководом. В качестве дисплея предлагалось использовать телевизор, а хранить данные можно было на кассетном накопителе. Также, в отличие от топовой версии IBM 5150, младшая модель не работала с операционной системой PC-DOS 1.0 (впоследствии ставшей MS-DOS).

На заре времён, когда калькулятор был размером с чемодан, а персональный компьютер и того больше пришел он, спаситель, изменивший мир персональных компьютеров и о нём сегодняшний наш сказ.

Intel 8086 — первый 16-ти битный микропроцессор, разрабатывавшийся с весны 1976 года и выпущенный двумя годами позже 8 июня. Он открыл нам великий и ужасный одновременно мир x86 архитектуры комманд.

Мобильные процессоры

В последние годы спрос на ноутбуки с процессорами ARM растет: если в 2020 году они занимали лишь 2,2 % рынка, то в конце 2022 года этот показатель составил уже 14,9 %. Главная разница между процессорами ARM и Х86 заключается в меньшем энергопотреблении, поэтому ноутбуки на его основе могут работать значительно дольше от одного заряда аккумуляторов; второе преимущество — они существенно меньше греются во время работы. Это дает возможность не беспокоиться за перегрев ноутбука. В Windows 10 поддержка ARM-решений была реализована на базовом уровне, в более новой Windows 11 ситуация значительно улучшилась.

Микрокомпьютеры на основе i8086

1-й вариант. В персональных компьютерах процессор i8086 практически не использовался из-за дороговизны специализированных микросхем, которые были необходимы для работы процессора. Это поняли и в Intel, в 1979 году она выпускает процессор i8088, у которого шина данных была 8-битной.

2-й вариант. Из-за нехватки (ещё не были разработаны) вспомогательных 16-битных микросхем , и возможности использования большого парка 8-битных, а также для удешевления и уменьшения размеров плат, было решено выпустить 8-битный вариант процессора (i8088). В 70-е годы микросхемы динамической оперативной памяти имели 1-битную организацию и для 8 битной системы требовалось 8, а для 16-битной — 16 микросхем памяти. Поэтому выпуск 8 разрядной версии удешевлял производство и уменьшал размер печатной платы компьютера.

Но всё же в некоторых микрокомпьютерах применялся и i8086, одним из таких является Mycron 2000 — первый коммерческий микрокомпьютер на базе i8086. Машина для обработки текстов IBM Displaywriter, Compaq DeskPro и Wang Professional Computer также использовали i8086.

История

Предшественники

В 1972 году Intel выпустила 8008, первый 8-битный микропроцессор. Он использовал набор инструкций, разработанный корпорацией Datapoint для программируемых компьютерных терминалов, пригодный и для универсальных процессоров. Этот процессор требовал нескольких дополнительных микросхем для использования в полноценном компьютере, отчасти потому, что использовал маленький 18-пиновый корпус от микросхем DRAM, производимых Интел, и соответственно не мог иметь отдельную шину адресов.

Двумя годами позже, в 1974, был запущен 8080, в новом, 40-пиновом DIP-корпусе, первоначально разработанном для микросхем калькуляторов. Он имел отдельную шину адресов и расширенный набор инструкций, кодово- (не бинарно-) совместимый с 8008, дополненный для удобства программирования несколькими 16-битными инструкциями. Процессор i8080 часто называют первым по-настоящему удобным и полезным микропроцессором. В 1977 году он был заменён на i8085, с одним питающим напряжением (+5В) вместо трёх различных на предшественнике и несколькими другими усовершенствованиями. Наиболее известными соперниками были 8-битные Motorola 6800 (1974), Microchip PIC16X (1975) (здесь наверное имеется ввиду процессор CP1600 фирмы General Instrument, который является предком микроконтроллеров Microchip http://en.wikipedia.org/wiki/PIC_microcontroller#History), MOS Technology 6502 (1975), Zilog Z80 (1976), и Motorola 6809 (1978).

Разработка

Проект 8086 был начат в мае 1976 года, и первоначально задумывался как временная замена для амбициозного и задерживающегося проекта iAPX 432 (также известного как 8800). Это была попытка, с одной стороны, противостоять менее запаздывавшим 16-ти и 32-битными процессорам других производителей (таких как Motorola, Zilog и National Semiconductor), а с другой — борьбы с угрозой от Zilog Z80 (разработанного командой под руководством ушедшего из Интел Фредерико Фаджин), который стал очень успешным. Первая версия архитектуры 8086 (система команд, прерывания, работа с памятью и вводом/выводом) была разработана с середины мая до середины августа Стивеном Морзе. Потом команда разработчиков была увеличена до четырёх человек, которые представили два основных проектных документа — 8086 Architectural Specifications и 8086 Device Specifications. При разработке не использовалось специализированных CAD-программ, а диаграммы были исполнены из текстовых символов. Использовались уже опробованные элементы микроархитектуры и физической реализации, в основном от i8085.

ModR/M and SIB bytes

The ModR/M and SIB bytes are used to encode up to two operands of an instruction, each of which is a direct register or effective memory address.

ModR/M

The ModR/M byte encodes a register or an opcode extension, and a register or a memory address. It has the following fields:

  7                           0
+---+---+---+---+---+---+---+---+
|  mod  |    reg    |     rm    |
+---+---+---+---+---+---+---+---+
Field Length Description
MODRM.mod 2 bits In general, when this field is b11, then register-direct addressing mode is used; otherwise register-indirect addressing mode is used.
MODRM.reg 3 bits This field can have one of two values:
  • A 3-bit opcode extension, which is used by some instructions but has no further meaning other than distinguishing the instruction from other instructions.
  • A 3-bit register reference, which can be used as the source or the destination of an instruction (depending on the instruction). The referenced register depends on the of the instruction and the instruction itself. See for the values to use for each of the registers. The REX.R, VEX.~R or XOP.~R field can extend this field with 1 most-significant bit to 4 bits total.
MODRM.rm 3 bits Specifies a direct or indirect register operand, optionally with a displacement. The REX.B, VEX.~B or XOP.~B field can extend this field with 1 most-significant bit to 4 bits total.

16-bit addressing

These are the meanings of the Mod (vertically) and REX/VEX/XOP.B and R/M bits (horizontally) for . B.R/M and Mod are in binary. The SIB-byte is not used in 16-bit addressing. In Long processing mode there is no way to specify 16-bit addresses.

16-bit B.R/M
Mod x.000AX, R8W x.001CX, R9W x.010DX, R10W x.011BX, R11W x.100SP, R12W x.101BP, R13W x.110SI, R14W x.111DI, R15W
00
01
10
11 r/m

32/64-bit addressing

These are the meanings of the Mod (vertically) and REX/VEX/XOP.B and R/M bits (horizontally) for . B.R/M and Mod are in binary.

32/64-bit B.R/M
Mod 0.000AX 0.001CX 0.010DX 0.011BX 0.100SP 0.101BP 0.110SI 0.111DI 1.000R8 1.001R9 1.010R10 1.011R11 1.100R12 1.101R13 1.110R14 1.111R15
00 [r/m] [] [r/m] [] [r/m]
01 [r/m + disp8] [r/m + disp8] [r/m + disp8]
10 [r/m + disp32] [r/m + disp32] [r/m + disp32]
11 r/m

2: In long mode, to encode disp32 as in protected/compatibility mode, use the SIB byte.

RIP/EIP-relative addressing

Addressing in x86-64 can be relative to the current instruction pointer value. This is indicated with the RIP (64-bit) and EIP (32-bit) instruction pointer registers, which are not otherwise exposed to the program and may not exist physically. RIP-relative addressing allows object files to be location independent.

SIB

The SIB byte has the following fields:

  7                           0
+---+---+---+---+---+---+---+---+
| scale |   index   |    base   |
+---+---+---+---+---+---+---+---+
Field Length Description
SIB.scale 2 bits This field indicates the scaling factor of SIB.index, where s (as used in the tables) equals 2SIB.scale.
SIB.scale factor s
b00 1
b01 2
b10 4
b11 8
SIB.index 3 bits The index register to use. See for the values to use for each of the registers. The REX.X, VEX.~X or XOP.~X field can extend this field with 1 most-significant bit to 4 bits total.
SIB.base 3 bits The base register to use. See for the values to use for each of the registers. The REX.B, VEX.~B or XOP.~B field can extend this field with 1 most-significant bit to 4 bits total.

32/64-bit addressing

The meaning of the SIB byte while using 32 or 64-bit addressing is as follows. The ModR/M byte’s Mod field and the SIB byte’s index field are used vertically, the SIB byte’s base field and REX/VEX/XOP.B bit horizontally. The s is the . B.Base, X.Index and Mod are in binary.

B.Base
Mod X.Index 0.000AX 0.001CX 0.010DX 0.011BX 0.100SP 0.101BP 0.110SI 0.111DI 1.000R8 1.001R9 1.010R10 1.011R11 1.100R12 1.101R13 1.110R14 1.111R15
00 0.000 AX
0.001 CX
0.010 DX
0.011 BX
0.100 SP
0.101 BP
0.110 SI
0.111 DI
1.000 R8
1.001 R9
1.010 R10
1.011 R11
1.100 R12
1.101 R13
1.110 R14
1.111 R15
B.Base
Mod X.Index 0.000AX 0.001CX 0.010DX 0.011BX 0.100SP 0.101BP 0.110SI 0.111DI 1.000R8 1.001R9 1.010R10 1.011R11 1.100R12 1.101R13 1.110R14 1.111R15
01 0.000 AX
0.001 CX
0.010 DX
0.011 BX
0.100 SP
0.101 BP
0.110 SI
0.111 DI
1.000 R8
1.001 R9
1.010 R10
1.011 R11
1.100 R12
1.101 R13
1.110 R14
1.111 R15
B.Base
Mod X.Index 0.000AX 0.001CX 0.010DX 0.011BX 0.100SP 0.101BP 0.110SI 0.111DI 1.000R8 1.001R9 1.010R10 1.011R11 1.100R12 1.101R13 1.110R14 1.111R15
10 0.000 AX
0.001 CX
0.010 DX
0.011 BX
0.100 SP
0.101 BP
0.110 SI
0.111 DI
1.000 R8
1.001 R9
1.010 R10
1.011 R11
1.100 R12
1.101 R13
1.110 R14
1.111 R15

1: No base register is encoded.2: No index register is encoded.

История развития процессоров Intel

Первым процессором компании Intel был 4004. Позже данный разработчик представил пользователям модель 8008. Она отличалась от предыдущей модели тем, что частота работы данного процессора составляла от 600 до 800 килогерц. В нем было более трех тысяч транзисторов. Его активно использовали на всевозможных вычислительных машинах.

В то же самое время в мире стали появляться первые персональные компьютерные устройства и компания Intel приняла решение осуществлять производство процессоров, подходящих для них. Спустя короткий срок времени  компания разработала процессор 8080, который в десятки раз был более производительным, чем его предшественник.

Стоимость данной модели процессора была очень высокой по тем меркам. Однако производители полагали, что стоимость является совершенно оправданной для процессора, который обладает высоким уровнем производительности и способен отлично вписаться в любое компьютерное устройство. Он пользовался огромным спросом. Именно благодаря этому доходы компании только росли.

Спустя несколько лет на свет появился компьютер Altair – 8800. Его производителем стала компания MITS. Данная модель персонального компьютерного устройства осуществляла свою деятельность на процессоре от компании Intel модели 8800. Именно благодаря нему многочисленные компании стали осуществлять производство собственных микропроцессоров.

5.8. 80286, 80386, 80486…Что дальше?

В 1993 году должен появиться новый процессор —
i80586. Предполагается, что он по своей
производительности сможет составить реальную
конкуренцию RISC-процессорам, используемым в
рабочих станциях типа SUN. Фирма Intel пока хранит в
секрете подробности архитектуры нового
процессора, поэтому мы можем только догадываться
о его возможностях.

Учитывая преёмственность во всех процессорах,
разрабатываемых фирмой Intel начиная с модели i8080,
можно предполагать, что этот суперсовременный
скоростной процессор будет способен выполнять
программы, разработанные когда-то для процессора
i8086, причём с необычайно высокой скоростью!

8086 Microprocessor Memory Model

This topic discusses the basic memory model of x86 processor architecture. The 8086 processor has a 16-bit data bus and 20-bit address bus.  After that, Intel introduced 80186, 80286, 801386 and many other versions. The 8086 processor architecture consists of a 1MB byte addressable segmented memory model.

Program Memory Segments

The segmentation allows processors to address four segments of 64KB. One memory address holds 1 byte of data. Two bytes need two memory addresses for storage and so on. It has a little-endian architecture i.e. the least significant bit is stored at the lowest address and most significant bit at the higher address.

The memory is divided into segments.  Code, data and stack have independent segments. All these segments operate independently of each other. Every program has a logical address consisting of two parts i.e., a segment selector which identifies segments and an offset for identifying a byte in that segment.

Segmented memory model allows easy implementation of object-oriented programs. Two processes can easily share data through segments. Let’s suppose you want to store  in a variable num. It would be represented in memory as:

35 24 5C A1

Related Articles:

  • Difference Between Microprocessor and Microcontroller
  • Difference between FPGA and microprocessor
  • 8051 Microcontroller Introduction
  • Introduction to microcontrollers – Getting started tutorial
  • PIC18F46K22 Microcontroller

Сегментация памяти

Сегментация памяти — это особенность . С 16-битным адресным регистром можно адресовать максимум 64 КиБ памяти. Чтобы по-прежнему иметь возможность адресовать больший объем памяти, Intel предоставила процессору 20 адресных строк для 2 20 адресов (макс. 1 МиБ основной памяти ). Для хранения адреса используются два регистра: регистр сегмента и регистр смещения. Процессор автоматически вычисляет адрес области физической памяти, беря адрес сегмента × 16 и добавляя адрес смещения. В результате получается 65 536 адресных областей (сегментов), смещенных на 16 байтов, каждая размером 64 КБайт. Таким образом, чип может адресовать 1 МиБ, и в каждом сегменте можно использовать 16-битные адреса. Поскольку существует только 20 адресных строк, самые низкие 64 КиБ (-16 байтов) снова появляются «зеркально» в верхнем конце адресного пространства (поскольку при вычислении адреса происходит переполнение ).

Например, если регистр сегмента содержит шестнадцатеричный адрес 1234, а регистр смещения содержит шестнадцатеричный адрес 5678 , который обычно записывается как 1234: 5678 , то адрес 1234 шестнадцатеричный × 10 шестнадцатеричный + 5678 шестнадцатеричный = 12340 шестнадцатеричный + 5678 шестнадцатеричный = 179B8 шестнадцатеричный доступ.

Преимуществом сегментации памяти является, помимо прочего, более легкая переносимость программ, которые работают только с 16-битными адресами и более высокая плотность кода , недостатком является трудоемкое программирование и ограничение одним мебибайтом; другие 16-разрядные архитектуры обычно допускают адресное пространство размером не менее 16 МБ. Однако в конце 1970-х годов 1 МБ для микрокомпьютера был намного больше, чем требовалось или фактически было встроено в память, в том числе из-за высоких цен на оперативную память ( например, IBM PC изначально имел максимум 64 КБайт памяти). памяти, в зависимости от варианта, у домашних компьютеров от этого же времени обычно значительно меньше).

Описание [ ]

Всего в процессоре Intel 8086 было 14 16-разрядных Шины

Размер Работа с памятью

Сегментная адресация памяти использует тот факт, что обращения к памяти со стороны процессора легко можно разделить на обращения к коду программы, обрабатываемым данным и языков высокого уровня для платформы x86 позволяют указывать модель памяти в соответствии с требуемыми объёмами кода и данных.

Схема, показывающая работу реального режима адресации процессора Intel 8086 и выше

Возможное переполнение при вычислении физического адреса в процессоре 8086 игнорируется. Например, инструкция безусловного перехода по адресу 001016 при значении сегмента кода FFFF16 выполнит переход по физическому адресу 0. Этого не происходит в старших моделях процессоров x86, например 80286, имевшем 24 адресных линии, поэтому в компьютерах IBM PC/AT для обеспечения совместимости был введен специальный вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса.

Поскольку в старших моделях процессоров x86 были введены новые способы расширения адресного пространства, способ, используемый процессором 8086, был назван « Система команд

Процессоры 8086 и 8088 могут работать в двух режимах: максимальном и минимальном Микросхемы поддержки

  • Intel 8251 — универсальный синхронно/асинхронный последовательный приёмопередатчик
  • Микрокомпьютеры на основе Intel 8086

Тем не менее, дальнейшее развитие 16-разрядных систем со временем привело к выпуску большого ассортимента 16-разрядных микросхем поддержки от различных производителей по доступным ценам. Это позволило разрабатывать дешёвые и разнообразные микрокомпьютеры на процессорах Intel 8086. Однако, к 1982 году в ассортименте Intel появились более современные и производительные процессоры с 16-разрядными шинами данных, Intel 80186 и Intel 80286, и производительные компьютеры стали строиться преимущественно на процессоре Intel 80286 и, реже, на основе Intel 80186 . Но всё же в основе некоторых микрокомпьютеров использовался Intel 8086, одним из таких является Технические характеристики

Как рождались легенды

Понравилась статья? Поделиться с друзьями:
Автоэксперт
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: