Особенности архитектуры процессоров 386, 486 и Pentium . Часть 4.

3.1. Процессоры 386/387

Процессор Intel386, выпущенный в 1985 году, был первым 32-разрядным про-цессором. Он имел 32-битные раздельные шины адреса и данных с возмож-ностью динамического управления конвейерной адресацией и разрядностью (16/32) шины данных. Позже, Е 1988 году, фирмой Intel был выпущен вариант процессора Intel386™SX с 16-разрядной шиной данных и 24-разрядной шиной адреса, а полноразрядный вариант получил официальное название Intel386™ DX. Как и в случае с 8088, это было сделано с целью удешевления компьютера, собранного на базе данного процессора. Это удешевление, конечно же, обернулось и снижением производительности компьютера примерно в пол-тора раза по сравнению с использованием DX на той же тактовой частоте. Процессоры Intel386™SX и Intel386™DX отличаются только внешней шиной данных и адреса, их программные модели идентичны. В 1990 году появился процессор Intel386™SL со средствами управления энергопотреблением, разрабо-танный специально для портативных компьютеров. В комплекте с 386SL выпус-калась БИС 82360SL, содержащая набор PC-периферии, контроллер сигналов шины ISA, контроллер динамической памяти и контроллер внешнего кэша раз-мером 16-64 Кб с архитектурой прямого отображения либо 2- или 4-канальной наборно-ассоциативной архитектурой.

В дальнейшем описании для краткости эти процессоры будем обозначать как 386-й, добавляя суффиксы SX, DX или SL при необходимости подчеркнуть различия.

Внутренняя очередь команд процессора 386 имеет размер 16 байт. Число тактов, требуемое для выполнения инструкций, примерно такое же, как и у 80286. Предусмотрена возможность использования математического сопроцессо-ра Intel387, программно совместимого с 8087 и 80287. Возможно и использова-ние сопроцессора 80287, но его производительность ниже.

С появлением процессора 386 в PC стало возможным более эффективно использовать память и начал широко применяться защищенный режим. Некото-рые процессоры первых выпусков не обеспечивали полную работоспособность в 32-разрядном режиме, о чем должна была свидетельствовать маркировка "16 bit operations only". Попытка установить на компьютер с таким процессором 32-раз-рядную ОС обречена на неудачу (при установке Windows 95 будет сообщение об ошибке "В1"). Однако подавляющее большинство процессоров 386 полнос-тью отвечает спецификациям 32-разрядных процессоров, приведенным выше.

 

3.2. Интерфейс процессоров 386DX и 386SX

Процессоры 386DX выпускались в корпусах PGA и PQFP (рис. 5 и 6 и табл. 6). Их интерфейс отличается от 8086 применением раздельных шин адреса и данных, конвейерной адресации, а также составом и назначением управляющих сигналов. По сравнению с интерфейсом 80286 появилась возможность динамического управления разрядностью шины данных и конвейеризацией адреса, изменился состав управляющих сигналов, назначение которых стало более отчетливым.

 

 

Рис. 5. Расположение выводов процессора 386DX в корпусе PGA.

Процессоры 386SX выпускались в 100-выводном корпусе PQFP (рис. 6). Их интерфейс почти совпадает с DX, различия касаются разрядности шин адреса и данных (см. табл. 6 и 7).

Дальнейшее описание непосредственно относится к процессору 386DX, а в конце приводятся отличия процессора 386SX.

Рис. 6. Расположение выводов процессоров 386DX и 386SX в корпусе PQFP .

 

 

Таблица 6. Расположение выводов процессоров 386

Сигнал

386DX-PQFP

386DX-PGA

386SX

Сигнал

386DX-PQFP

386DX-PGA

386SX

А01

-

-

18

D27

113

N5

-

А02

67

С4

51

D28

112

М6

-

АОЗ

68

A3

52

D29

109

Р4

-

А04

69

B3

53

D30

108

P3

-

А05

70

В2

54

D31

107

М5

-

А06

71

C3

55

ADS#

27

Е14

16

А07

72

С2

56

ВЕО#

31

Е12

-

АОЗ

74

С1

58

ВЕ1#

32

С13

-

А09

75

D3

59

ВЕ2#

33

В13

-

А10

76

D2

60

ВЕЗ#

38

А13

-

All

77

D1

61

ВНЕ#

-

-

19

А12

78

E3

62

BLE#

-

-

17

А13

79

Е2

64

BS16#

29

С14

-

А14

81

Е1

65

BUSY#

46

В9

34

А15

82

F1

66

CLK2

24

F12

15

А16

84

G1

70

D/C#

41

All

24

А17

86

HI

72

ERRORS

47

А8

36

А18

87

Н2

73

FLT#

54

-

28

А19

88

H3

74

HLDA

8

М14

3

А20

89

.11

75

HOLD

28

D14

4

А21

93

К1

76

INTR

53

В7

40

А22

94

К2

79

LOCK#

42

С10

26

А23

95

L1

80

M/IO#

40

А12

23

А24

96

L2

-

N/C

36, 37, 39, 59, 60,61, 62,63

А4, В4, В6, В12, С6, С7, Е13, F13,

20, 27, 29, 30, 31,43, 44,45, 46,47

А25

97

КЗ

-

А26

98

Ml

-

А27

100

Nl

-

А28

101

L3

-

А29

102

М2

-

NA#

30

D13

6

АЗО

103

PI

-

NMI

52

В8

38

А31

104

N2

-

PEREQ

50

С8

37

DOO

20

Н12

1

READY#

26

G13

7

D01

19

Н13

100

RESET

45

С9

33

D02

18

Н14

99

W/R#

43

В10

25

D03

17

J14

96

Vcc

2, 16, 22, 34, 49, 56, 58, 73, 85,99, 106, 110, 117, 123, 127

А1.А5, А7, А10, А14, С5, С12, D12, G2,

8,9, 10,21, 32, 39,42, 48, 57, 69, 71, 84,91,

D04

15

К14

95

DOS

14

К13

94

D06

13

L14

93

G3, G12, G14, L12, МЗ, М7, М13, N4, N7, Р2, Р8

97

D07

12

К12

92

DOS

9

L13

90

D09

7

N14

89

D10

6

М12

88

Dll

5

N13

87

D12

4

N12

86

D13

3

Р13

83

Vss

1, 10, 11, 21, 23,25, 35, 44, 48,51, 55, 57, 64, 65, 66, 80, 83, 90, 91,92, 105, 111, 114, 122, 132

А2, А6, А9, В1, В5,В11, В14,С11, F2, F3, F14, J2,J3, J12.J13, М4, М8, М10, N3, Р6, Р14

2,5,

11, 12, 13, 14, 22, 35, 41,49, 50, 63, 67, 68, 77, 78, 85,98

D14

131

Р12

82

D15

130

Mil

81

D16

129

Nil

-

D17

128

N10

-

D18

126

Pll

-

D19

125

P10

-

D20

124

M9

-

D21

121

N9

-

D22

120

Р9

-

D23

119

N8

-

D24

118

Р7

-

D25

116

N6

-

D26

115

Р5

-

Таблица 7. Назначение сигналов процессора 386

Сигнал

I/O

Назначение

CLK2

I

Clock — внешний сигнал синхронизации процессора

D[31:0] *

I/O

Data — сигналы шины данных

A[31:2] *

O

Address — сигналы шины адреса

ВЕ[0:3]# *

O

Byte Enable — сигналы, указывающие на используемые байты шины данных в данном цикле шины

BS16# #

I

Bus Size 16 — сигнал, по которому внешние устройства могут сообщить о разрядности своей шины данных, равной 16 бит

BLE#, ВНЕ# *

O

Byte Low Enable, Byte High Enable - аналоги ВЕО# и ВЕ1#

W/R#

O

Write/Read — сигнал, определяющий тип шинного цикла (запись/чтение)

M/IO#

O

Memory/ I0# Select — высокий уровень указывает на обращение к памяти (или останов), низкий — на обращение к портам ввода-вывода или подтверждение прерывания

D/C#

O

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

ADS#

O

Address Status — сигнал идентификации адресного цикла, во время которого действительны сигналы W/R#, D/C#, М/Ю#, ВЕ[0:3] и А[31:2]

NA#

I

Next Address — запрос следующего адреса при конвейерной адресации

READY#

I

Bus Ready — сигнал завершения шинного цикла. Шинный цикл расширяется на неограниченное время до появления сигнала готовности (низкий уровень)

LOCK#

O

Bus Lock — сигнал монополизации управления шиной, вырабатывается на время выполнения инструкции по префиксу LOCK и автоматически при выполнении инструкций XCHG с памятью, подтверждения прерывания и доступа к таблицам дескрипторов

INTR

I

Interrupt Request — сигнал запроса (высоким уровнем) маскируемого прерывания

Сигнал

I/O

Назначение

NMI

I

Non Mascable Interrupt - сигнал, высокий уровень которого вызывает немаскируемое прерывание NMI

RESET

I

Сигнал аппаратною сброса (высоким уровнем)

HOLD HLDA

I/O

Bus Hold Request и Hold Acknowledge — запрос управления локальной шиной от другого контроллера и подтверждение предоставления

PEREQ

I

Processor Extension Operand Request — запрос на передачу операнда сопроцессором

BUSY# ERRORS

I

I

Processor Extension Busy и Error — сигналы состояния сопроцессора. Активность сигнала BUSY# останавливает процессор, а сигнала ERROR вызывает исключения при исполнении инструкций WAIT и некоторых инструкций ESCAPE

FLT#

I

Float — сигнал, принудительно переводящий все выходы в высокоимпе-дансное состояние для обеспечения возможности подключения тестового оборудования к плате без извлечения процессора. Имеется только у процессоров с корпусами PQFP

 

 

 

 

Категория: