Узнать раскроет ли процесор вашу видеокарту можно сверившись с таблицей.

Периферийный процессор

Сопроцессор — специализированный процессор, расширяющий возможности центрального процессоракомпьютерной системы, но оформленный как отдельный функциональный модуль. Физически сопроцессорможет быть отдельной микросхемой или может быть встроен в центральный процессор (как это делается вслучае математического сопроцессора в процессорах для ПК начиная с Intel 486DX).

Математический сопроцессор 80x287 в колодкена базовой плате персонального компьютера.

Различают следующие виды сопроцессоров:

  • математические сопроцессоры общего назначения, обычно ускоряющие вычисления с плавающей точкой,
  • сопроцессоры ввода-вывода (например — Intel 8089), разгружающие центральный процессор от контроля заоперациями ввода-вывода или расширяющие стандартное адресное пространство процессора,
  • сопроцессоры для выполнения каких-либо узкоспециализированных вычислений.

Сопроцессоры могут входить в набор логики, разработанный одной конкретной фирмой (например M68k и1067 для Intel 80286).

Сопроцессор в программировании

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

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

Звуковой процессор

Микросхемы звукогенераторов - специализированные микросхемы для генерации звука. Они могутиспользоваться для воспроизведения звуковых эффектов и синтезированной музыки (см. chiptune) вкомпьютерах, игровых системах (консолях, автоматах) и бытовой технике. Англоязычное название длямикросхем этого типа - sound chip, в русской технической терминологии существует сокращение ПГЗ(Программируемый Генератор Звука). Они могут быть полностью цифровыми, полностью аналоговыми, илисмешанного типа. В их состав могут входить генераторы частоты (обычно основанные на делении входнойтактовой частоты с программно изменяемым коэффициентом деления), контроллеры огибающей, схемывоспроизведения сэмплов, фильтры, и усилители сигнала.

Звукогенераторы можно разделить на две основные категории - непосредственно синтезирующие звук, ивоспроизводящие заранее оцифрованные звуки. Первая категория также может быть разделена по принципуработы на простые синтезаторы частот (построенные на делителях частоты с дополнительнымикомпонентами), и синтезаторы, использующие метод частотной модуляции (FM-синтез, основан на взаимноймодуляции нескольких генераторов звука).

В русском языке микросхемы звукогенераторов нередко называют звуковыми (со)процессорами. Однако, этоопределение некорректно - микросхемы звукогенератора не занимаются обработкой звуковых данных(основная функция процессора), они генерируют звук по одному определённому аппаратно алгоритму, согласно указаниям внешнего по отношению к ним процессора системы. Название звуковой процессор можетприменяться к цифровым сигнальным процессорам, используемым для обработки звука (например, созданияэффекта программно управляемого эхо), а также к микросхемам звукогенераторов, содержащих в своёмсоставе микропроцессор.

 

Графический процессор

Графический процессор (англ. graphics processing unit, GPU) — отдельное устройство персональногокомпьютера или игровой приставки, выполняющее графический рендеринг. Современные графическиепроцессоры очень эффективно обрабатывают и отображают компьютерную графику. Благодаряспециализированной конвейерной архитектуре они намного эффективнее в обработке графическойинформации, чем типичный центральный процессор. Графический процессор в современных видеоадаптерахприменяется в качестве ускорителя трёхмерной графики.

Может применятся как в составе дискретной видеокарты, так и в интегрированных решениях (встроенных всеверный мост либо в гибридный процессор).

Описание

Отличительными особенностями по сравнению с ЦП являются:

· архитектура, максимально нацеленная на увеличение скорости расчёта текстур и сложных графическихобъектов;

· ограниченный набор команд.

Высокая вычислительная мощность GPU объясняется особенностями архитектуры.

Если современные CPU содержат несколько ядер (на большинстве современных систем от 2 до 6, посостоянию на 2012 г.), графический процессор изначально создавался как многоядерная структура, в которойколичество ядер может достигать сотен. Разница в архитектуре обусловливает и разницу в принципах работы. Если архитектура CPU предполагает последовательную обработку информации, то GPU историческипредназначался для обработки компьютерной графики, поэтому рассчитан на массивно параллельныевычисления[1].

Каждая из этих двух архитектур имеет свои достоинства. CPU лучше работает с последовательнымизадачами. При большом объеме обрабатываемой информации очевидное преимущество имеет GPU. Условиетолько одно — в задаче должен наблюдаться параллелизм.

GPU уже достигли той точки развития, когда многие приложения реального мира могут слегкостью выполняться на них, причем быстрее, чем на многоядерных системах. Будущиевычислительные архитектуры станут гибридными системами с графическими процессорами, состоящими из параллельных ядер и работающими в связке с многоядерными ЦП [2] Оригинальный текст ( англ .) GPUs have evolved to the point where many real-world applications are easily implemented on them andrun significantly faster than on multi-core systems. Future computing architectures will be hybrid systemswith parallel-core GPUs working in tandem with multi-core CPUs[3]. Профессор Джек Донгарра (Jack Dongarra) Директор Innovative Computing Laboratory Университет штата Теннесси

Некоторые модели графических процессоров (в составе видеоадаптера) также могут применяться, внекоторых случаях, и для общих вычислений (см. GPGPU). Примерами таковых могут служить чипы HD6990(от AMD) или GTX590 (от nVidia).

 

ТАБЛИЦА СООТВЕСТВИЯ ПРОЦЕССОРОВ К ВИДЕОКАРТАМ

03.02.2015 ADMIN 76 120 ПРОСМОТРОВ 1 COMMENT

Узнать раскроет ли процесор вашу видеокарту можно сверившись с таблицей.

Таблица соотвествия видеокарт к процессорам

Наименование процессора Наименование видеокарты
Core i7 4960X, Core i7 4930k, Core i7 4770k, Core i5 4670k, Intel Core i7 3970X, Intel Core i7 3960X, Core i7 3930K, Core i7 3820, Intel Core i7 3770K, Core i5 3570K, Intel Core i7 2600K, Core i5 2500K, Core i7 980 Extreme, Core i7 975 Extreme. FX-9590, FX-9370, FX-8350, FX-8320 GEFORCE GTX TITAN, GEFORCE GTX 780 Ti, GEFORCE GTX 780, GEFORCE GTX 770, GEFORCE GTX 760, GEFORCE GTX 690, GEFORCE GTX 680, GEFORCE GTX 670, GeForce GTX 590 Radeon R9 290X, Radeon R9 290, Radeon R9 280X, Radeon HD 7990, Radeon HD 7970 GE, Radeon HD 7970, Radeon HD 7950, Radeon HD 6990
Core i7 965 Extreme, Core i7 970, Core i7 950, Core i7 940, Core i7 870, Core i7 850, Core i5 760, Core i7 920, Core i5 750, Core i3 4330, Core i3 3220 A10-7850K, FX-6300, FX-4300. FX-8150, FX-8120, Phenom II X6 1100T, Phenom II X4 980 BE, FX-6100, FX-4100, Phenom II X4 1090T, Phenom II X4 1050T, A10-6800K, A10-5800K GEFORCE GTX 660 Ti, GEFORCE GTX 660, GeForce GTX 580, GeForce GTX 570, GeForce GTX 480 GEFORCE GTX 650 Ti, GeForce GTX 560 Ti, GeForce GTX 470 Radeon R9 270X, Radeon R9 270, Radeon R7 260X, Radeon HD 7870, Radeon HD 7850, Radeon HD 6970, Radeon HD 6950, Radeon HD 5970, Radeon HD 5870
Core i5 650, Core i3 560, Core 2 Extreme QX9775, Core 2 Extreme QX9770, Core 2 Extreme QX9650, Core 2 Quad Q9650, Core 2 Quad Q9550, Core 2 Extreme QX6850, Core 2 Extreme, OX6800, Core2 Duo E8600 Phenom II X4 965 BE, Phenom II X4 955 BE, Phenom II X4 945, Phenom II X4 940, Phenom II X4 925, Phenom II X4 920, Phenom II X4 910, Phenom II X4 810 GEFORCE GTX 650, GeForce GTX 465, GeForce GTX 460, GeForce GTX 295, GeForce GTX 285, GeForce GTX 280, GeForce GTX 275, GeForce GTX 260 rev. 2, GeForce GTX 260 Radeon HD 7770, Radeon HD 6870, Radeon HD 6850, Radeon HD 5850, Radeon HD 5830, Radeon HD 5770, Radeon HD 4890, Radeon HD 4870 X2, Radeon HD 4870
Core i3 550, Core i5 530, Core 2 Quad Q9450, Core 2 Quad Q9400, Core 2 Quad Q9300, Core 2 Quad Q8300, Core 2 Quad Q8200, Core 2 Extreme QX6700, Core 2 Quad Q6700, Core 2 Quad Q6600, Core2 Duo E8500, Core 2 Duo E8400, Core 2 Duo E8300, Core 2 Duo E8200, Core 2 Duo E7500, Core 2 Duo E7400, Core 2 Duo E7300, Core 2 Duo E7200, Core 2 Duo E6850,Core 2 Duo E6800, Pentium Dual-Core E6500, Pentium Dual-Core E6300 Phenom II X4 805, Phenom II X3 720, Phenom II X3 710, Phenom II X3 705e, Phenom II X3 700e, Phenom X4 9900, Phenom X4 9750, Phenom X4 9700, Phenom X4 9650, Phenom X4 9600 Black Edition, Phenom X4 9600, Phenom X4 9550, Phenom X4 9500, Phenom X4 9100e, Phenom X3 8850.Phenom X3 8750, Phenom X3 8650, Phenom X3 8600, Phenom X3 8450, Phenom X3 8400, Athlon II X2 250, Athlon II X2 245, Athlon II X2 215, Athlon X4 615, Athlon X4 605, Phenom X2 II 550, Phenom X2 II 545, Athlon X3 420, Athlon X3 410, Athlon X2 240,Athlon X2 235, Athlon X2 7850, Athlon X2 7750, Athlon X2 7550, Athlon X2 7450 GeForce GTX 550 Ti, GeForce GTS 450, GeForce GTS 250, GeForce GT 240, GeForce 9800 GTX+, GeForce 9800 GTX, GeForce 9800 GTS, GeForce 9800 GT, GeForce 9800 GX2, GeForce 9600 GT, GeForce 9600 GSO (G94)GeForce 8800 ULTRA, GeForce 8800 GTX, GeForce 8800 GTS 512, GeForce 8800 GTS, GeForce 8800 GT, GeForce 8800 GS, GeForce 7950 GX2 Radeon HD 7750, Radeon HD 5750, Radeon HD 5670, Radeon HD 5650, Radeon HD 4850. Radeon HD 4850, Radeon HD 4830, Radeon HD 4770, Radeon HD 4750, Radeon HD 4670, Radeon HD 3870, Radeon HD 3850, Radeon HD 2900 XT 1Gb GDDR4, Radeon HD 2900 XT, Radeon HD 2900 PRO, Radeon HD 2900 GT, Radeon X1950 PRO DUAL
Core 2 Duo E6750, Core 2 Duo E6700, Core 2 Duo E6600, Core 2 Duo E6550, Core 2 Duo E6540, Core 2 Duo E6420, Core 2 Duo E6400, Core 2 Duo E6320, Core 2 Duo E6300, Core 2 Duo E4700, Core 2 Duo E4600, Core 2 Duo E4500, Core 2 Duo E4400, Core 2 Duo E4300, Pentium Dual-Core E5400, Pentium Dual-Core E5300, Pentium Dual-Core E5200, Pentium Dual-Core E2220, Pentium Dual-Core E2200, Pentium Dual-Core E2180, Pentium Dual-Core E2160, Pentium Dual-Core E2140 Athlon X2 BE-2400, Athlon X2 BE-2350, Athlon X2 BE-2300, Athlon 64 FX-74, Athlon 64 FX-72, Athlon 64 FX-70, Athlon 64 FX-62, Athlon 64 FX-60, Athlon 64 X2 6400+ Black Edition, Athlon 64 X2 6400+, Athlon 64 X2 6000+ , Athlon 64 X2 5800+ , Athlon 64 X2 5600+ , Athlon 64 X2 5400+ , Athlon 64 X2 5200+ , Athlon 64 X2 5000+, Athlon 64 X2 4850e, Athlon 64 X2 4800+ , Athlon 64 X2 4600+, Athlon 64 X2 4450e, Athlon 64 X2 4400+, Athlon 64 X2 4200+, Athlon 64 X2 4050e, Athlon 64 X2 4000+, Athlon 64 X2 3800+, Athlon 64 X2 3600+ , Athlon 64 X2 4800+, Athlon 64 X2 4600+ , Athlon 64 X2 4400+, Athlon 64 X2 4200+ , Athlon 64 X2 3800+ GeForce GT 220, GeForce 9600 GSO (G94), GeForce 9500 GT , GeForce 8600 GTS, GeForce 8600 GT, GeForce 7950 GT, GeForce 7900 GTX, GeForce 7900 GTO, GeForce 7900 GT, GeForce 7900 GS, GeForce 7800, GeForce 7800 GT, GeForce 7800 GS Radeon HD 5570, Radeon HD 5550, Radeon HD 5450, Radeon HD 4650, Radeon HD 4550, Radeon HD 4470, Radeon HD 4450, Radeon HD 4350, Radeon HD 3690, Radeon HD 3650, Radeon HD 2600 XT GDDR4, Radeon HD 2600 XT, Radeon HD 2600 PRO, Radeon X1950 XTX, Radeon X1950 XT, Radeon X1950 PRO, Radeon X1950 GT, Radeon X1900 XTX, Radeon X1900 XT, Radeon X1900 GT, Radeon X1800 XT PE , Radeon X1800 XT, Radeon X1800 XL, Radeon X1800 GTO
Pentium D 965 XE, Pentium D 960, Pentium D 955 XE, Pentium D 950, Pentium D 945, Pentium D 940, Pentium D 935, Pentium D 930, Pentium D 925, Pentium D 920, Pentium D 915, Pentium D 840 XE, Pentium D 840, Pentium D 830, Pentium D 820, Pentium D 805, Pentium 4 EE 3.73, Pentium 4 EE 3.46,Pentium 4 EE 3.4, Pentium 4 EE 3.2, Celeron E1500, Celeron E1400, Celeron E1200 Athlon 64 4000+, Athlon 64 3800+, Athlon 64 3500+, Athlon 64 3200+, Athlon 64 3000+, Athlon 64 FX-57, Athlon 64 FX-55, Athlon 64 FX-55, Athlon 64 FX-53, Athlon 64 FX-51, Athlon 64 4200+, Athlon 64 4000+ , Athlon 64 3800+ , Athlon 64 3700+, Athlon 64 3500+ GeForce GT 210, GeForce 9400 GT, GeForce 8500 GT, GeForce 8400 GS, GeForce 7600 GT, GeForce 7600 GS, GeForce 6800 Ultra, GeForce 6800 GT , GeForce 6800 GTO, GeForce 6800 , GeForce 6800 LE , GeForce 6800, GeForce 6800 LE , GeForce 6800 GS, GeForce 6800 XT Radeon HD 3470, Radeon HD 3450, Radeon HD 2400 XT, Radeon HD 2400 PRO, Radeon X1650 XT, Radeon X1650 GT, Radeon X1650 XL, Radeon X1650 PRO , Radeon X1650 PRO , Radeon X1650, Radeon X1600 XT, Radeon X1600 PRO, Radeon X850 XT Platinum Edition, Radeon X850 XT , Radeon X850 Pro , Radeon X800 XT Platinum Edition, Radeon X800 XT, Radeon X800 XL, Radeon X800 GTO , Radeon X800 GTO2, Radeon X800, Radeon X800 Pro, Radeon X800 GT , Radeon X800 SE S3 Graphics Chrome 440 GTX, S3 Graphics Chrome 540 GTX
Pentium 4 673, Pentium 4 672, Pentium 4 671, Pentium 4 670, Pentium 4 663, Pentium 4 662, Pentium 4 661, Pentium 4 660, Pentium 4 653, Pentium 4 651, Pentium 4 650, Pentium 4 643, Pentium 4 641, Pentium 4 640, Pentium 4 633, Pentium 4 631, Pentium 4 630, Pentium 4 620, Pentium 4 571, Pentium 4 561, Pentium 4 560, Pentium 4 551, Pentium 4 550, Pentium 4 541, Pentium 4 540, Pentium 4 531, Pentium 4 530, Pentium 4 521, Pentium 4 520, Pentium 4 517, Pentium 4 516, Pentium 4 515, Pentium 4 511, Pentium 4 506, Pentium 4 505, Pentium 4 3.8F, Pentium 4 3.6F, Pentium 4 3.4F, Pentium 4 3.2F, Pentium 4 3.4E, Pentium 4 EE 3.4, Pentium 4 3.4, Pentium 4 3.2E, Pentium 4 EE 3.2, Pentium 4 3.2, Pentium 4 3.06, Pentium 4 3.0E, Pentium 4 3.0, Celeron 560, Celeron 550, Celeron 540, Celeron 530, Celeron 450, Celeron 440, Celeron 430, Celeron 420 Athlon 64 3400+ , Athlon 64 3200+ , Athlon 64 3000+, Athlon 64 3200+, Athlon 64 3200+, Athlon 64 3000+ , Athlon 64 2800+ , Sempron 3600+, Sempron 3500+, Sempron 3400+ GeForce 6600 GT, GeForce 6600, GeForce FX 5950 Ultra, GeForce FX 5900 Ultra, GeForce FX 5900, GeForce FX 5900 ZT, GeForce FX 5900 XT, GeForce FX 5800 Ultra, GeForce FX 5800 Radeon X700 XT, Radeon X700 Pro, Radeon X700, Radeon 9800 XT, Radeon 9800 PRO , Radeon 9800, Radeon 9800 SE, Radeon 9700 PRO, Radeon 9700
Pentium 4 2.8, Pentium 4 2.8, Pentium 4 2.67, Pentium 4 2.66, Pentium 4 2.6C, Pentium 4 2.6, Pentium 4 2.53, Pentium 4 2.5, Pentium 4 2.4E, Pentium 4 2.4A, Pentium 4 2.4C, Pentium 4 2.4B, Pentium 4 2.4, Pentium 4 2.26A, Pentium 4 2.26, Pentium 4 2.2, Pentium 4 2.0A, Pentium 4 2.0, Pentium 4 1.9, Pentium 4 1.8 A, Pentium 4 1.8 , Pentium 4 1.7, Pentium 4 1.6 A, Pentium 4 1.6, Pentium 4 1.5, Pentium 4 1.4, Pentium 4 2.0, Pentium 4 1.9, Pentium 4 1.8, Pentium 4 1.7, Pentium 4 1.6, Pentium 4 1.5, Pentium 4 1.4, Pentium 4 1.3, Celeron 215, Celeron 220, Celeron D 365, Celeron D 360, Celeron D 356, Celeron D 352, Celeron D 355, Celeron D 351, Celeron D 350, Celeron D 346, , Celeron D 345, Celeron D 341, Celeron D 340, Celeron D 336, Celeron D 335, Celeron D 331, Celeron D 330, Celeron D 326, Celeron D 325, Celeron D 320, Celeron D 315, Celeron D 310, Celeron 2.8, Celeron 2.7, Celeron 2.6, Celeron 2.5, Celeron 2.4, Celeron 2.3, Celeron 2.2, Celeron 2.1, Celeron 2.0, Celeron 1.8, Celeron 1.7 Athlon XP 3200+ , Athlon XP 3100+, Athlon XP 3000+ , Athlon XP 2900+, Athlon XP 2800+ , Athlon XP 2700+, Athlon XP 2600+ , Athlon XP 2500+ , Athlon XP 2400+, Athlon XP 2400+, Athlon XP 2200+ , Athlon XP 2100+ , Athlon XP 2000+ , Athlon XP 2000+, Athlon XP 1900+, Athlon XP 1800+ , Athlon XP 1700+ , Athlon XP 1600+ , Athlon XP 1500+, Sempron 3200+, Sempron 3000+, Sempron 3400+, Sempron 3200+, Sempron 3000+, Sempron 2800+, Sempron 2600+ , Sempron 2500+, Sempron 2400+, Sempron 2300+, Sempron 2200+ GeForce 7300 GS, GeForce 7300 LE, GeForce 7300 SE, GeForce 6500, GeForce FX 5700 Ultra, GeForce FX 5700, GeForce FX 5700 LE, GeForce FX 5600 Ultra, GeForce FX 5600 XT, GeForce FX 5600, GeForce FX 5500 Radeon X1550, Radeon X1300 XT , Radeon X1300 Pro, Radeon X1300, Radeon X1300 LE, Radeon X600 XT, Radeon X600 Pro, Radeon X550 XT, Radeon X550Radeon 9600 XT, Radeon 9600 PRO, Radeon 9600, Radeon 9600 SE, Radeon 9600 TX, Radeon 9550 XT, Radeon 9550, Radeon 9550 SE, Radeon 9500 PRO, Radeon 9500 S3 Graphics DeltaChrome S4 Pro, S3 Graphics DeltaChrome S8, S3 Graphics DeltaChrome S8 Nitro
Pentium III-S 1400, Pentium III 1400, Pentium III 1333, Pentium III-S 1266, Pentium III 1200,Pentium III-S 1133, Pentium III 1133A ,Pentium III 1000B, Pentium III 1133, Pentium III 1100, Pentium III 1000EB, Pentium III 1000, Pentium III 933, Pentium III 900, Pentium III 866, Pentium III 850, Pentium III 800EB, Pentium III 800, Pentium III 750,Pentium III 733, Pentium III 700, Pentium III 667, Pentium III 650, Pentium III 600EB ,Pentium III 600E ,Pentium III 550E,Pentium III 533EB, Pentium III 500E, Pentium III 1000B, Pentium III 1000, Pentium III 933, Pentium III 866, Pentium III 850, Pentium III 800EB, Pentium III 800, Pentium III 750, Pentium III 733, Pentium III 700, Pentium III 667, Pentium III 650, Pentium III 600B, Pentium III 600, Pentium III 600EB, Pentium III 600E, Pentium III 550, Pentium III 550E, Pentium III 533B, Pentium III 533EB, Pentium III 500, Pentium III 450, Celeron 1400, Celeron 1300, Celeron 1200, Celeron 1100A, Celeron 1000A, Celeron 1100, Celeron 1000, Celeron 950, Celeron 900, Celeron 850, Celeron 800, Celeron 766, Celeron 733, Celeron 700, Celeron 667, Celeron 633, Celeron 600, Celeron 566, Celeron 533A, Celeron 533, Celeron 500, Celeron 466 Athlon 1400 , Athlon 1333, Athlon 1300,Athlon 1200, Athlon 1133, Athlon 1100, Athlon 1000 , Athlon 950, Athlon 900, Athlon 850, Athlon 800, Athlon 750, Athlon 700, Athlon 650, Athlon 600 , Athlon 550, Athlon 500, Duron 1800, Duron 1600, Duron 1400, Duron 1300, Duron 1200, Duron 1100, Duron 1000, Duron 950, Duron 900, Duron 850, Duron 800, Duron 750, Duron 700, Duron 650, Duron 600 GeForce 7200 GS, GeForce 7100 GS, GeForce 6200, GeForce FX 5200 Ultra, GeForce FX 5200, GeForce FX 5200, SEGeForce 4 MX 480, GeForce 4 MX 460, GeForce 4 MX 440,GeForce 4 MX 440-SE, GeForce 4 MX 420, GeForce 3 Ti500, GeForce 3 Ti200, GeForce 3 Radeon X1050, Radeon X300, Radeon X300 SE, Radeon 9250, Radeon 9200 PRO, Radeon 9200, Radeon 9200 SE, Radeon 9000 PRO Radeon 9000, Radeon 9000 XT, Radeon 8500 LE / 9100, Radeon 8500 Matrox G550
Pentium II Overdrive 333, Pentium II Overdrive 300, Pentium II 450, Pentium II 400, Pentium II 350, Pentium II 333, Pentium II 300A, Pentium II 300, Pentium II 266A, Pentium II 266, Pentium II 233, Celeron 433, Celeron 400, Celeron 366, Celeron 333, Celeron 300, Celeron 300, Celeron 266 K6-2 550 (CXT),K6-2 533 (CXT), K6-2 500 (CXT), K6-2 475 (CXT), K6-2 450 (CXT) K6-2 400 (CXT), K6-2 380 (CXT), K6-2 366 (CXT), K6-2 350 (CXT), K6-2 350, K6-2 333 (CXT), K6-2 333 (CXT), K6-2 333, K6-2 300 (CXT), K6-2 300 (CXT), K6-2 300, K6-2 266 GeForce 2 Ti VX, GeForce 2 Titanium, GeForce 2 Ultra, GeForce 2 PRO, GeForce 2 GTS, GeForce 2 MX 400, GeForce 2 MX 200 GeForce 2 MX, GeForce 256 DDR, GeForce 256 Radeon 7500, Radeon 7200, Radeon LE, Radeon DDR, Radeon SDR, Radeon VE / 7000 Voodoo4 4500, Voodoo5 5000, Voodoo5 5500, Voodoo5 6000 S3 Savage 2000 Matrox G400, Matrox Millennium G450
Pentium Pro 200MHz (1024 KB), Pentium Pro 200MHz (512 KB), Pentium Pro 200MHz (256 KB), Pentium Pro 180MHz, Pentium Pro 166MHz, Pentium Pro 150MHz, Pentium 233 MMX, Pentium 200 MMX, Pentium 166 MMX, Pentium 200, Pentium 166, Pentium 150, Pentium 133, Pentium 120, Pentium 100 Pentium 90, Pentium 75, Pentium 66, Pentium 60 K6 300, K6 266, K6 233, K6 200, K6 166, K5 PR166, K5 PR150, K5 PR133, K5 PR120, K5 PR100, K5 PR90, K5 PR75 Riva TNT 2,Ultra Riva TNT 2 PRO, Riva TNT 2,Riva TNT 2 M64, Riva TNT 2 Vanta LT, Riva TNT 2 Vanta, Riva TNT Riva 128 ZX, Riva 128 Rage 128 GL, Rage 128 VR, Rage 128 PRO AFR, Rage 128 PRO, Rage 128, 3D Rage Pro Voodoo Graphics, Voodoo Rush, Voodoo Banshee, Voodoo 2 S3 Trio S3, ViRGE S3, Savage3D, S3 Savage4 Matrox Productiva G100, М atrox Millennium G200, Matrox Mystique G200

ПЕРИФЕРИЙНЫЕ ПРОЦЕССОРЫ

Архитектура периферийной системы показана на Рисунке 13.2. Цель такой конфигурации состоит в повышении общей производительности сети за счет перераспределения выполняемых процессов между центральным и периферийными процессорами. У каждого из периферийных процессоров нет в распоряжении других локальных периферийных устройств, кроме тех, которые ему нужны для связи с центральным процессором. Файловая система и все устройства находятся в распоряжении центрального процессора. Предположим, что все пользовательские процессы исполняются на периферийном процессоре и между периферийными процессорами не перемещаются; будучи однажды переданы процессору, они пребывают на нем до момента завершения. Периферийный процессор содержит облегченный вариант операционной системы, предназначенный для обработки локальных обращений к системе, управления прерываниями, распределения памяти, работы с сетевыми протоколами и с драйвером устройства связи с центральным процессором.

При инициализации системы на центральном процессоре ядро по линиям связи загружает на каждом из периферийных процессоров локальную операционную систему. Любой выполняемый на периферии процесс связан с процессом-спутником, принадлежащим центральному процессору (см. [Birrell 84]); когда процесс, протекающий на периферийном процессоре, вызывает системную функцию, которая нуждается в услугах исключительно центрального процессора, периферийный процесс связывается со своим спутником и запрос поступает на обработку на центральный процессор. Процесс-спутник исполняет системную функцию и посылает результаты обратно на периферийный процессор. Взаимоотношения периферийного процесса со своим спутником похожи на отношения клиента и сервера, подробно рассмотренные нами в главе 11: периферийный процесс выступает клиентом своего спутника, поддерживающего функции работы с файловой системой. При этом удаленный процесс-сервер имеет только одного клиента. В разделе 13.4 мы рассмотрим процессы-серверы, имеющие несколько клиентов.

Рисунок 13.2. Конфигурация периферийной системы

Рисунок 13.3. Форматы сообщений

Когда периферийный процесс вызывает системную функцию, которую можно обработать локально, ядру нет надобности посылать запрос процессу-спутнику. Так, например, в целях получения дополнительной памяти процесс может вызвать для локального исполнения функцию sbrk. Однако, если требуются услуги центрального процессора, например, чтобы открыть файл, ядро кодирует информацию о передаваемых вызванной функции параметрах и условиях выполнения процесса в некое сообщение, посылаемое процессу-спутнику (Рисунок 13.3). Сообщение включает в себя признак, из которого следует, что системная функция выполняется процессом-спутником от имени клиента, передаваемые функции параметры и данные о среде выполнения процесса (например, пользовательский и групповой коды идентификации), которые для разных функций различны. Оставшаяся часть сообщения представляет собой данные переменной длины (например, составное имя файла или данные, предназначенные для записи функцией write).

Процесс-спутник ждет поступления запросов от периферийного процесса; при получении запроса он декодирует сообщение, определяет тип системной функции, исполняет ее и преобразует результаты в ответ, посылаемый периферийному процессу. Ответ, помимо результатов выполнения системной функции, включает в себя сообщение об ошибке (если она имела место), номер сигнала и массив данных переменной длины, содержащий, например, информацию, прочитанную из файла. Периферийный процесс приостанавливается до получения ответа, получив его, производит расшифровку и передает результаты пользователю. Такова общая схема обработки обращений к операционной системе; теперь перейдем к более детальному рассмотрению отдельных функций.

Для того, чтобы объяснить, каким образом работает периферийная система, рассмотрим ряд функций: getppid, open, write, fork, exit и signal. Функция getppid довольно проста, поскольку она связана с простыми формами запроса и ответа, которыми обмениваются периферийный и центральный процессоры. Ядро на периферийном процессоре формирует сообщение, имеющее признак, из которого следует, что запрашиваемой функцией является функция getppid, и посылает запрос центральному процессору. Процесс-спутник на центральном процессоре читает сообщение с периферийного процессора, расшифровывает тип системной функции, исполняет ее и получает идентификатор своего родителя. Затем он формирует ответ и передает его периферийному процессу, находящемуся в состоянии ожидания на другом конце линии связи. Когда периферийный процессор получает ответ, он передает его процессу, вызвавшему системную функцию getppid. Если же периферийный процесс хранит данные (такие, как идентификатор процесса-родителя) в локальной памяти, ему вообще не придется связываться со своим спутником.

Если производится обращение к системной функции open, периферийный процесс посылает своему спутнику соответствующее сообщение, которое включает имя файла и другие параметры. В случае успеха процесс-спутник выделяет индекс и точку входа в таблицу файлов, отводит запись в таблице пользовательских дескрипторов файла в своем пространстве и возвращает дескриптор файла периферийному процессу. Все это время на другом конце линии связи периферийный процесс ждет ответа. У него в распоряжении нет никаких структур, которые хранили бы информацию об открываемом файле; возвращаемый функцией open дескриптор представляет собой указатель на запись в таблице пользовательских дескрипторов файла, принадлежащей процессу-спутнику. Результаты выполнения функции показаны на Рисунке 13.4.

Рисунок 13.4. Вызов функции open из периферийного процесса

Если производится обращение к системной функции write, периферийный процессор формирует сообщение, состоящее из признака функции write, дескриптора файла и объема записываемых данных. Затем из пространства периферийного процесса он по линии связи копирует данные процессу-спутнику. Процесс-спутник расшифровывает полученное сообщение, читает данные из линии связи и записывает их в соответствующий файл (в качестве указателя на индекс которого и запись о котором в таблице файлов используется содержащийся в сообщении дескриптор); все указанные действия выполняются на центральном процессоре. По окончании работы процесс-спутник передает периферийному процессу посылку, подтверждающую прием сообщения и содержащую количество байт данных, успешно переписанных в файл. Операция read выполняется аналогично; спутник информирует периферийный процесс о количестве реально прочитанных байт (в случае чтения данных с терминала или из канала это количество не всегда совпадает с количеством, указанным в запросе). Для выполнения как той, так и другой функции может потребоваться многократная пересылка информационных сообщений по сети, что определяется объемом пересылаемых данных и размерами сетевых пакетов.

Единственной функцией, требующей внесения изменений при работе на центральном процессоре, является системная функция fork. Когда процесс исполняет эту функцию на ЦП, ядро выбирает для него периферийный процессор и посылает сообщение специальному процессу -серверу, информируя последний о том, что собирается приступить к выгрузке текущего процесса. Предполагая, что сервер принял запрос, ядро с помощью функции fork создает новый периферийный процесс, выделяя запись в таблице процессов и адресное пространство. Центральный процессор выгружает копию процесса, вызвавшего функцию fork, на периферийный процессор, затирая только что выделенное адресное пространство, порождает локальный спутник для связи с новым периферийным процессом и посылает на периферию сообщение о необходимости инициализации счетчика команд для нового процесса. Процесс-спутник (на ЦП) является потомком процесса, вызвавшего функцию fork; периферийный процесс с технической точки зрения выступает потомком процесса-сервера, но по логике он является потомком процесса, вызвавшего функцию fork. Процесс-сервер не имеет логической связи с потомком по завершении функции fork; единственная задача сервера состоит в оказании помощи при выгрузке потомка. Из-за сильной связи между компонентами системы (периферийные процессоры не располагают автономией) периферийный процесс и процесс-спутник имеют один и тот же код идентификации. Взаимосвязь между процессами показана на Рисунке 13.5: непрерывной линией показана связь типа "родитель-потомок", пунктиром - связь между равноправными партнерами.

Рисунок 13.5. Выполнение функции fork на центральном процессоре

Когда процесс исполняет функцию fork на периферийном процессоре, он посылает сообщение своему спутнику на ЦП, который и исполняет после этого всю вышеописанную последовательность действий. Спутник выбирает новый периферийный процессор и делает необходимые приготовления к выгрузке образа старого процесса: посылает периферийному процессу-родителю запрос на чтение его образа, в ответ на который на другом конце канала связи начинается передача запрашиваемых данных. Спутник считывает передаваемый образ и переписывает его периферийному потомку. Когда выгрузка образа заканчивается, процесс-спутник исполняет функцию fork, создавая своего потомка на ЦП, и передает значение счетчика команд периферийному потомку, чтобы последний знал, с какого адреса начинать выполнение. Очевидно, было бы лучше, если бы потомок процесса-спутника назначался периферийному потомку в качестве родителя, однако в нашем случае порожденные процессы получают возможность выполняться и на других периферийных процессорах, а не только на том, на котором они созданы. Взаимосвязь между процессами по завершении функции fork показана на Рисунке 13.6. Когда периферийный процесс завершает свою работу, он посылает соответствующее сообщение процессу-спутнику и тот тоже завершается. От процесса-спутника инициатива завершения работы исходить не может.

Рисунок 13.6. Выполнение функции fork на периферийном процессоре

И в многопроцессорной, и в однопроцессорной системах процесс должен реагировать на сигналы одинаково: процесс либо завершает выполнение системной функции до проверки сигналов, либо, напротив, получив сигнал, незамедлительно выходит из состояния приостанова и резко прерывает работу системной функции, если это согласуется с приоритетом, с которым он был приостановлен. Поскольку процесс-спутник выполняет системные функции от имени периферийного процесса, он должен реагировать на сигналы, согласуя свои действия с последним. Если в однопроцессорной системе сигнал заставляет процесс завершить выполнение функции аварийно, процессу-спутнику в многопроцессорной системе следует вести себя тем же образом. То же самое можно сказать и о том случае, когда сигнал побуждает процесс к завершению своей работы с помощью функции exit: периферийный процесс завершается и посылает соответствующее сообщение процессу-спутнику, который, разумеется, тоже завершается.

Когда периферийный процесс вызывает системную функцию signal, он сохраняет текущую информацию в локальных таблицах и посылает сообщение своему спутнику, информируя его о том, следует ли указанный сигнал принимать или же игнорировать. Процессу-спутнику безразлично, выполнять ли перехват сигнала или действие по умолчанию. Реакция процесса на сигнал зависит от трех факторов (Рисунок 13.7): поступает ли сигнал во время выполнения процессом системной функции, сделано ли с помощью функции signal указание об игнорировании сигнала, возникает ли сигнал на этом же периферийном процессоре или на каком-то другом. Перейдем к рассмотрению различных возможностей.

алгоритм sighandle /* алгоритм обработки сигналов */ входная информация: отсутствует                      выходная информация: отсутствует                      {                                                        если (текущий процесс является чьим-то спутником или     имеет прототипа)                                 {                                                        если (сигнал игнорируется)                                вернуть управление;                               если (сигнал поступил во время выполнения системной        функции)                                                 поставить сигнал перед процессом-спутником;       в противном случае                                        послать сообщение о сигнале периферийному процес-            су;                                           }                                                     в противном случае  /* периферийный процесс */    {                                                        /* поступил ли сигнал во время выполнения системной        * функции или нет                                     */                                               послать сигнал процессу-спутнику;                  }                                                  }                                                                                                                алгоритм satellite_end_of_syscall /* завершение систем-                                       * ной функции, выз-                                       * ванной периферийным                                       * процессом */  входная информация: отсутствует                      выходная информация: отсутствует                      {                                                    если (во время выполнения системной функции поступило     прерывание)                                             послать периферийному процессу сообщение о прерыва-        нии, сигнал;                                  в противном случае /* выполнение системной функции не                           * прерывалось */                  послать ответ: включить флаг, показывающий поступле-        ние сигнала;                                   }                                                    

Рисунок 13.7. Обработка сигналов в периферийной системе

Допустим, что периферийный процесс приостановил свою работу на то время, пока процесс-спутник исполняет системную функцию от его имени. Если сигнал возникает в другом месте, процесс-спутник обнаруживает его раньше, чем периферийный процесс. Возможны три случая.

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

2. Если процесс сделал указание об игнорировании сигнала данного типа, спутник продолжает следовать алгоритму выполнения системной функции, не выходя из состояния приостанова по longjmp. В ответе, посылаемом периферийному процессу, сообщение о получении сигнала будет отсутствовать.

3. Если по получении сигнала процесс-спутник прерывает выполнение системной функции (по longjmp), он информирует об этом периферийный процесс и сообщает ему номер сигнала.

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

Рисунок 13.8. Прерывание во время выполнения системной функции

Предположим, например, что периферийный процесс вызывает функцию чтения с терминала, связанного с центральным процессором, и приостанавливает свою работу на время выполнения функции процессом-спутником (Рисунок 13.8). Если пользователь нажимает клавишу прерывания (break), ядро ЦП посылает процессу-спутнику соответствующий сигнал. Если спутник находился в состоянии приостанова в ожидании ввода с терминала порции данных, он немедленно выходит из этого состояния и прекращает выполнение функции read. В своем ответе на запрос периферийного процесса спутник сообщает код ошибки и номер сигнала, соответствующий прерыванию. Периферийный процесс анализирует ответ и, поскольку в сообщении говорится о поступлении сигнала прерывания, отправляет сигнал самому себе. Перед выходом из функции read периферийное ядро осуществляет проверку поступления сигналов, обнаруживает сигнал прерывания, поступивший от процесса-спутника, и обрабатывает его обычным порядком. Если в результате получения сигнала прерывания периферийный процесс завершает свою работу с помощью функции exit, данная функция берет на себя заботу об уничтожении процесса-спутника. Если периферийный процесс перехватывает сигналы о прерывании, он вызывает пользовательскую функцию обработки сигналов и по выходе из функции read возвращает пользователю код ошибки. С другой стороны, если спутник исполняет от имени периферийного процесса системную функцию stat, он не будет прерывать ее выполнение при получении сигнала (функции stat гарантирован выход из любого приостанова, поскольку для нее время ожидания ресурса ограничено). Спутник доводит выполнение функции до конца и возвращает периферийному процессу номер сигнала. Периферийный процесс посылает сигнал самому себе и получает его на выходе из системной функции.

Если сигнал возник на периферийном процессоре во время выполнения системной функции, периферийный процесс будет находиться в неведении относительно того, вернется ли к нему вскоре управление от процесса-спутника или же последний перейдет в состояние приостанова на неопределенное время. Периферийный процесс посылает спутнику специальное сообщение, информируя его о возникновении сигнала. Ядро на ЦП расшифровывает сообщение и посылает сигнал спутнику, реакция которого на получение сигнала описана в предыдущих параграфах (аварийное завершение выполнения функции или доведение его до конца). Периферийный процесс не может послать сообщение спутнику непосредственно, поскольку спутник занят исполнением системной функции и не считывает данные из линии связи.

Если обратиться к примеру с функцией read, следует отметить, что периферийный процесс не имеет представления о том, ждет ли его спутник ввода данных с терминала или же выполняет другие действия. Периферийный процесс посылает спутнику сообщение о сигнале: если спутник находится в состоянии приостанова с приоритетом, допускающим прерывания, он немедленно выходит из этого состояния и прекращает выполнение системной функции; в противном случае выполнение функции доводится до успешного завершения.

Рассмотрим, наконец, случай поступления сигнала во время, не связанное с выполнением системной функции. Если сигнал возник на другом процессоре, спутник получает его первым и посылает сообщение о сигнале периферийному процессу, независимо от того, касается ли этот сигнал периферийного процесса или нет. Периферийное ядро расшифровывает сообщение и посылает сигнал процессу, который реагирует на него обычным порядком. Если сигнал возник на периферийном процессоре, процесс выполняет стандартные действия, не прибегая к услугам своего спутника.

Когда периферийный процесс посылает сигнал другим периферийным процессам, он кодирует сообщение о вызове функции kill и посылает его процессу-спутнику, который исполняет вызываемую функцию локально. Если часть процессов, для которых предназначен сигнал, имеет местонахождение на других периферийных процессорах, сигнал получат (и прореагируют на его получение вышеописанным образом) их спутники.

 


Дата добавления: 2021-05-18; просмотров: 149; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!