80286

Intel 80286 (таксама сустракаюцца пазнакі i80286, i286) — 16-бітны x86-сумяшчальны мікрапрацэсар другога пакалення кампаніі Intel, прэзентаваны 1 лютага 1982 года. Уяўляе сабой удасканалены варыянт працэсара Intel 8086 і мае ў 3—6 разоў большую прадукцыйнасць. Працэсар ужываўся пераважна ў IBM PC-сумяшчальных персанальных камп’ютарах.

 Апісанне 
Працэсары Intel 80286 распрацоўваліся паралельна з працэсарамі Intel 80186/80188, аднак у ім адсутнічалі некаторыя модулі, якія меліся ў працэсары Intel 80186. Працэсар Intel 80286, выпускаўся ў такім жа корпусе як і Intel 80186 — LCC, а таксама ў карпусах тыпу PGA з 68 вывадамі. У новым працэсары была павялічана колькасць рэгістраў, даданы новыя інструкцыі, даданы новы рэжым працы працэсара — абаронены рэжым. Працэсар меў 6 байтавую чаргу (як і Intel 8086). Шыны адрасу і даных больш не мультыплексуюцца (то бок, адрасы і даныя перадаюцца праз розныя вывады). Шына адрасу павялічана да 24 біт, такім чынам аб’ём АЗП можа складаць да 16 Мбайт. Для больш хуткага выканання аперацый над лікамі з плаваючай коскай патрэбны матэматычны супрацэсар Intel 80287.

 Рэгістры 
Да 14 рэгістраў працэсара Intel 8086 былі даданы 11 новых рэгістраў, патрэбных для рэалізацыі абароненага рэжыма і іншых функцый: рэгістр слова стану машыны, 16 біт (MSW); рэгістр задачы, 16 біт (TR); рэгістры дэксрыптарнай табліцы, адзін 64-бітный і два 40-бітных (GDTR, IDTR, LDTR) і 6 рэгістраў пашырэння сегментных рэгістраў, 48 біт.

 Інструкцыі 
Працэсар мае той жа набор інструкцый, што і працэсар Intel 80186, да якога дадалі 16 новых каманд (LGDT, LIDT, LLDT, LMSW, LTR, SGDT, SIDT, SLDT, SMSW, STR, ARPL, CLTS, LAR, LSL, VERR, VERW) патрэбных для работы са сродкамі кіравання памяццю. Каманда PUSH цяпер магла захоўваць у стэку канстанты. Інструкцыі ў Intel 80286 выконваюцца ў сярэднім за 4,5 такты.

 Арганізацыя памяці 
Шына адрасу разраднасцю 24 біты дазваляе адрасаваць 16 Мбайт фізічнай памяці, але ў рэальным рэжыме даступны толькі 1 Мбайт (640 КБайт звычайнай памяці і 384 КБайт пашыранай), які пачынаецца з малодшых адрасоў. Для праграміста памяць як і ў 8086 арганізуецца ў выглядзе сегментаў, але кіраванне сегментацыяй мае істотныя адрозненні для рэальнага і абароненага рэжымаў.

У рэальным рэжыме адрасацыі памяці дэкларуецца поўная сумяшчальнасць з працэсарам 8086, які сваёй 16-бітнай адраснай шынай ахоплівае прастору фізічнай памяці ў 1 Мбайт. На самой справе, на радасць распрацоўшчыкам праграмнага забеспячэння PC, 80286 мае памылку, якую ўзаконілі" і ў наступных пакаленнях працэсараў. Пры вылічэнні фізічнага адраса магчыма ўзнікненне перапаўнення, якое з 20-бітнай шынай адраса наўпрост ігнаруецца. Калі Seg=FFFFh і EA=FFFFh, фізічны адрас, вылічары формулай РА=16 х Seg + EA=10FFEF, працэсарам 8086 трактуецца як 0FFEF — адрас, які належыць першаму мегабайту. Аднак на выхадзе А20 працэсара 80286 у гэтым выпадку ўсталёўваецца адзінка, што адпавядае адрасу ячэйкі з другога мегабайта фізічнай памяці. Для забеспячэння поўнай праграмнай сумяшчальнасці з 8086 у схему PC быў уведзены спецыяльны вентыль Gate A20, які прымусова абнуляе біт А20 сістэмнай шыны адрасу. Не ацаніўшы патэнцыйнай выгоды ад гэтай памылкі, кіраванне вентылем узаконілі праз праграмна-кіраваны біт кантролера клавіятуры 8042. калі аператыўная памяць патаннела, а «апетыт» праграмнага забеспячэння вырас, у гэту невялікую вобласць (64К-16 байт) сталі змяшчаць некаторыя рэзідэнтныя праграмы ці нават часткі аперацыйнай сістэмы, а для паскарэння кіравання вентылем з’явіліся больш хуткія спосабы (Gate A20 Fast Control).

У адрозненні ад 8086 працэсар 80286 мае сродкі кантролю за пераходам праз мяжу сегмента, якія працуюць і ў рэальным рэжыме. Пры спробе адрасацыі да слова, якое мае зрушанне FFFFh (яго старэйшы байт выходзіць за мяжу сегмента), ці выкананні інструкцыі, у якой усе байты не змяшчаюцца ў дадзеным сегменце, працэсар спрацоўвае перапыненне — выключэнне тыпу 13 (0Dh) — Segment Overran Exception. Пры пробе выканання інструкцыі ESCAPE з аперандам памяці, які не змяшчаецца ў сегменце, спрацоўвае выключэнне тыпу 9 — Processor Extension Segment Overrrun Interrupt.

У абароненым рэжыме працуюць усе рэжымы адрасацыі, дапушчальныя для 8086 і рэальнага рэжыма 80286. Адрозненні датычацца вызначэння сегментаў:

сегментныя рэгістры CS, DS, SS і ES захоўваюць не самі базавыя адрасы сегментаў, а селектары, якімі з табліцы, што знаходзіцца ў АЗП, вымаюцца дэскрыптары сегментаў

дэскрыптар апісвае базавы адрас, памер сегмента (1 — 64 Кбайт) і яго атрыбуты;

Базавы адрас сегмента мае разраднасць 24 біты, што і забяспечвае адрасацыю 16 Мбайт фізічнай памяці.

 Рэжымы працы працэсара Intel 80286 
У працэсары Intel 80286 было рэалізавана два рэжымы працы — абаронены рэжым і рэальны рэжым. У рэальным рэжыме працы працэсар быў цалкам сумяшчальны з працэсарамі x86, якія выпускаліся раней, гэта значыць працэсар мог выконваць праграмы, прызначаныя для Intel 8086/8088/8018x без паўторнага асэмблявання ці з перасэмбляваннем з мінімальнымі мадыфікацыямі. У фарміраванні адрасу ўдзельнічалі толькі 20 ліній шыны адрасу, таму максімальны аб’ём адрасаванай памяці ў гэтым рэжыме застаўся ранейшым — 1 Мбайт. У абароненым рэжыме працэсар мог адрасаваць да 1 Гбайт віртуальнай памяці (пры гэтым аб’ём рэальнай памяці складаў не больш за 16 Мбайт), за кошт змянення механізма адрасацыі памяці. Пераключэнне з рэальнага рэжыма ў абаронены адбываецца праграмна і адносна проста, аднак для адваротнага пераходу патрэбны апаратны скід працэсара, які ў IBM PC-сумяшчальных машынах ажыццяўляўся звычайна з дапамогай кантролера клавіятуры. Для адсочвання бягучага рэжыма працы працэсара выкарыстоўваецца рэгістр слова стану машыны (MSW). Праграмы рэальнага рэжыма без мадыфікацый у абароненым рэжыме выконвацца не могуць, таксама як і праграмы BIOS машыны.
Сутнассць абароненага рэжыма палягае ў наступным. Праграміст і распрацаваныя ім праграмы выкарыстоўваюць лагічную адрасную прастору (віртуальная адрасная прастора), памер якой можа складаць 1024 Мбайт (для Intel 80286). Лагічны адрас пераўтвараецца ў фізічны адрас аўтаматычна праз схемы кіравання памяццю (MMU). Дзякуючы абароненаму рэжыму ў памяці можна захоўваць толькі тую частку праграмы, якая патрэбна ў гэты момант, а астатняя частка можа захоўвацца ў вонкавай памяці (напрыклад, на цвёрдым дыску). У выпадку звяртання да той часткі праграмы, якой няма ў памяці ў дадзены момант, аперацыйная сістэма можа прыпыніць праграму, загрузіць патрэбную секцыю кода з вонкавай памяці і ўзнавіць выкананне праграмы. Такім чынам становяцца дапушчальнымі праграмы, памер якіх больш аб’ёма наяўнай памяці. Іншымі словамі, карыстальніку падаецца, што ён працуе з памяццю большнага памера, чым на самой справе. Аднак рэалізацыя сістэмы віртуальнай памяці была яшчэ далёкай ад дасканаласці. Для ўжывання абароненага рэжыма патрэбна шматзадачная аперацыйная сістэма, напрыклад UNIX, IBM OS/2 альбо Microsoft Windows 2.0.

Фізічны адрас фармуецца наступным чынам. У сегментных рэгістрах захоўваецца селектар, які змяшчае індэкс дэскрыптара ў табліцы дэскрыптараў (13 біт), 1 біт, што вызначае да якой табліцы дэскрыптараў будзе адбывацца зварот (да лакальнай альбо да глабальнай) і 2 біты запатрабаванага ўзроўню прывілеяй. Далей адбываецца зварот да адпаведнай табліцы дэскрыптараў і адпаведнага дэскрыптара, які змяшчае пачатковы 24-бітны адрас сегмента, памер сегмента і правы доступу. Пасля чаго вылічаецца патрэбны фізічны адрас шляхам складання адраса сегмента са зрушаннем, якое захоўваецца ў 16-разрадным указальным рэгістры.

Аднак абаронены рэжым у працэсары Intel 80286 мае і некаторыя недахопы, такія як, несумяшчальнасць з праграмамі, напісанымі для рэальнага рэжыма MS-DOS, для перахода з абароненага рэжыма ў рэальны рэжым патрабуецца апаратны скід працэсара.

 Кольцы абароны 
Для абароны ад выканання прывілеяваных каманд, якія могуць кардынальна змяніць стан усёй сістэмы, для абароны доступу да даных і для абароны сегментаў коду ў працэсары Intel 80286 была ўведзена абарона паводле прывілеяў. Было акрэслена 4 ўзроўні прывілеяў, так званыя кольцы (Ring) абароны — ад самага прывілеяванага 0 ўзроўню (Ring 0), прызначанага для ядра сістэмы, да найменей прывілеяванага 3 ўзрозня (Ring 3), прызначанага для карпыстальніцкіх праграм.

 Падтрымка аперацыйнымі сістэмамі 
Нягледзячы на анонс у 1982 годзе, абаронены рэжым 80286 у персанальных камп’ютарах працяглы час выкарыстоўваўся абмежавана. Галоўнай прычынай гэтага стала несумяшчальнасць з абароненым рэжымам праграм, напісаных для працэсара 8086. Адна з праблем была звязаны з тым, што ўжываная 8086 сегментная адрасацыя памяці дазваляла сфарміраваць адзін і той жа адрас мноствам камбінацый «сегмент+зрушанне», і фарміраваннем такой камбінацыі займалісь праграмы, а не аперацыйная сістэма. Напрыклад, калі праграме для 8086 патрабаваўся блок памяці, яна павінна была ўзяць сегмент і зрушанне першага свабоднага байта памяці, падзяліць зрушанне на 16 і дадаць яго да значэння сегмента, фармуючы такім чынам новы, не ўжываны сегмент. Аднак у 80286 значэнне сегмента выкарыстоўваецца як індэкс у табліцы дэскрыптараў. Калі сегмент выбраны адвольна, адпаведнага дэскрыптара ў табліцы можа не апынуцца, альбо дэскрыптар будзе мець непрыдатныя параметры. Мадыфікаваць табліцу дэскрыптараў з-за існавання абароны можа толькі аперацыйная сістэма.

Другой праблемай з’явілася адасобленасць сегментаў коду і даных. У абароненым рэжыме праграма не можа мадыфікаваць сегменты коду ці выконваць код, змешчаны ў сегмент даных, хоць у праграмах для 8086 такія тэхнікі выкарыстоўваліся.

Яшчэ адной праблемай апынулася ігнараванне распрацоўшчыкамі BIOS IBM PC рэкамендацый Intel і ўжыванне рэзерваваных нумароў перапыненняў. Напрыклад арыфметычны супрацэсар 80287 пры ўзнікненні памылкі генеруе перапыненне 1016. Аднак у IBM PC перапыненне 1016 выкарыстоўваецца для кіравання дысплеем.

Усе гэтыя праблемы патрабавалі значнай мадыфікацыі існых праграм. Распрацоўшчыкі аперацыйных сістэм былі пастаўлены перад выбарам — ствараць адносна простую сістэму, якая працуе толькі ў абароненым рэжыме, але несумяшчальную з большасцю напісанных раней праграм, альбо ствараць сістэму, якая мае кампанены для працы і ў рэальным і ў абароненых рэжымах і пераключаецца паміж імі па меры патрэбы (што магчыма толькі праз скід працэсара і значна памяншае прадукцыйнасць), забяспечваючы такім чынам сумяшчальнасць з напісанымі раней праграмамі.

У студзені 1985 кампанія Digital Research анансавала Concurrent DOS 286 — аперацыйную сістэму, створаную сумесна з Intel. Прадукт павінен быў выкарыстоўваць толькі абаронены рэжым 80286, забяспечваючы карыстальнікам усе перавагі гэтага рэжыма забеспячэння шматкарыстальніцкага, шматзадачнага выконвання праграм з адначасовай падтрымцы эмуляцыі 8086. Заяўленыя магчымасці былі працаздолныя на ўжываным на пачатку распрацоўкі прататыпе працэсара стэпінгу B-1, але ў маі Digital Research выявіў праблемы з эмуляцыяй на серыйным працэсары степінгу C-1, якія не дазвалялі Concurrent DOS 286 запускаць праграмы для 8086 у абароненым рэжыме. Выпуск Concurrent DOS 286 был затрыманы, а Intel пачала распрацоўку новай версіі чыпа. У жніўні пасля інтэнсіўнага тэставання ўзораў 80286 стэпінгу E-1, Digital Research пацвердзіла, што Intel выпраціла ўсе дакументаваныя памылкі, але заявіла, што застаюцца недакументаваныя праблемы з прадукцыйнасцю на перадрэлізнай версіі Concurrent DOS 286. Intel заявіла, што абраны Digital Research падыход да эмуляцыі праграм для 8086 у абароненым рэжыме адрозніваецца ад пачатковых спецыфікацый. Тем не менш Intel унесла незначныя змены ў мікракод працэсараў стэпінгу E-2, якія дазволілі Digital Research выконваць эмуляцыю значна хутчэй. Кампанія IBM у 1986 годзе выбрала Concurrent DOS 286 (перайменаваўшы яе ў IBM 4680 OS) аперацыйнай сістэмай для камп’ютара IBM 4680, ужыванага ў сістэме разробнага гандлю ў якасці POS-тэрміналу. Тыя ж абмежаванні закранулі версію 1.0 FlexOS 286, аперацыйнай сістэмы спадчынніцы Concurrent DOS 286, распрацаванай Digital Research у 1986 і прэзентаванай у студзені 1987. (Гэтая сістэма пазней была ўжыта IBM як аснова IBM 4690 OS).

З-за пазначаных праблем Біл Гейтс ахрысціў 80286 «чыпам з мёртвым мозгам», бо было відавочна, што новая аперацыйная сістэма Microsoft Windows не зможа выконваць некалькі праграм MS-DOS адначасова на 80286. Магчыма, гэта стала прычынай расколу паміж Microsoft і IBM, бо IBM настойвала, каб OS/2, першапачаткова — сумесная распрацоўка IBM і Microsoft, падтрымлівала абаронены рэжым 80286.

Падтрымка абароненага рэжыма таксама была рэалізавана ў аперацыйных сістэмах Coherent, Xenix, NetWare 286, iRMX, OS/2, Windows 3.0.

 Камп’ютары на базе працэсара Intel 80286 
У 1984 годзе кампанія IBM прэзентавала свой ПК, аснаваны на працэсары Intel 80286 з частатой 6 МГц — IBM PC AT, які прыцягнуў вялікую ўвагу да архітэктуры x86 увогуле і да ПК IBM PC у прыватнасці. У 1987 годзе IBM выпускае новыя мадэлі ПК — IBM PS/2-50 і IBM PS/2-60. На момант выпуску ПК IBM PS/2, IBM ужо не была манапалістам рынку персанальных камп’ютараў, шматлікія фірмы выпускалі аналагічныя мадэлі, якія часцяком мелі ніжэйшыя кошты.

 Канкурэнтныя рашэнні 

Так як Intel прадавала ліцэнзіі на выраб мікрапрацэсараў 80286, шматлікія фірмы выпускалі фактычна клоны гэтага мікрапрацэсара — AMD, Siemens AG і HARRIS.
З дапамогай адваротнай распрацоўкі былі створаны клоны 80286:
 U80601 — у ГДР
 КФ1847ВМ286 (пазней ЭКФ1847ВМ2) — у СССР (вопытныя ўзоры выпускаліся заводам імя Дзержынскага (распрацоўшчык НТЦ «Белмикросистемы») НВА «Інтэграл»)
Таксама выпускаліся і працэсары, распрацаваныя незалежна ад Intel, такія выпускалі Zilog, Motorola і іншыя.

 Тэхнічныя характарыстыкі 
 Дата анонсу: 1 лютага 1982 года
 Тактавая частата (МГц): залежыць ад маркіроўкі: 80286-6 — 6 МГц, 80286-8 — 8 МГц, 80286-10 — 10 МГц, 80286-12 — 12,5 МГц
 Разраднасць рэгістраў: 16 біт
 Разраднасць шыны даных: 16 біт
 Разраднасць шыны адраса: 24 біт
 Аб’ём адрасаванай памяці: 16 Мбайт
 Аб’ём віртуальнай памяці: 1 Гбайт
 Колькасць транзістраў: 134 000
 Тэхпрацэс (нм): 1500 (1,5 мкм)
 Плошча крышталя: 49 мм²
 Напружанне сілкавання: +5 В
 Раздым: 68-pin
 Корпус: 68-кантактны керамічны LCC (R80286), пластыкавы LCC (N80286), керамічны PGA (CG80286 альбо A80286)

 Спасылкі 
 Інструкцыя эксплуатацыі 80286  
 Апісанне і фатаграфіі працэсараў сямейства Intel 80286 
 Кароткае апісанне мікрапрацэсара Intel 80286 з фатаграфіямі  
 Дакументацыя на працэсар  на сайце bitsavers.org 

Катэгорыя:X86
1982