Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Танненбаум Е. Архітектура компютера [pdf]

.pdf
Скачиваний:
114
Добавлен:
02.05.2014
Размер:
5.59 Mб
Скачать

Алфавитный список литературы

6

137.Solomon, DA. Inside Windows NT, 2nd ed., Redmond, WA: Microsoft Press, 19

138.Sprangle,E., Chappell,R.S.,Alsup,M., andPatt, Y.N. «TheAgree Predictor Mechanism for ReducingNegative Branch History Interference», Proc. 24th A Int'l. Symp. on Computer Arch., ACM, p. 284-291,1997.

139.Stallings, W. Computer Organization and Architecture, 4th ed. Upper Sad River, NJ: Prentice Hall, 1996.

140.Stenstrom,P.,Hagersten,E.,Lilja,D.J.,Martonosi,M.,andVenugopal,M.«T in Shared Memory Multiprocessing», IEEE Computer Magazine, vol. 30, p. 4 50, Dec. 1997.

141.Stets,K,Dwarkadas,S.,HardaveUas,N,Hunt,G.,Kontothanassis,L,Parthas and Scott, M. «CASHMERE-2L: Software Coherent Shared Memory on Cl tered Remote-Write Networks», Proc. 16th Symp. on Operating Systems Pr ciples, ACM, p. 170-183, 1997.

142.Sunderram, V. B. «PVM: A Framework for Parallel Distributed Computin Concurrency: Practice and Experience, vol. 2, p. 315-339, Dec. 1990.

143.Swan, R.J., Fuller, S. H.,andSiewiorek, D. P. «Cm* —AModularMultiprocesso Proc. NCC, p. 645-655,1977.

144.Tan, W. M. Developing USB PC Peripherals, San Diego, CA: Annabooks, 19

145.Tanenbaum, A. S. «Implications of Structured Programming for Machi Architecture», Commun. of the ACM, vol. 21, p. 237-246, Mar. 1978.

146.Tanenbaum, A. S., and Woodhull, A. W. Operating Systems: Design and Imp mentation, 2nd ed. Upper Saddle River, NJ: Prentice Hall, 1997.

147.Thompson, K. «UNIX Implementation», Bell Syst. Tech.J., vol. 57, p. 1931-19 July-Aug. 1978.

148.Treleaven, P. «Control-Driven, Data-Driven, and Demand-Driven Compu Architecture», Parallel Computing, vol. 2, 1985.

149.Tremblay, M. and О 'connorj. M. «UltraSPARC I: A Four-Issue Processor S porting Multimedia», IEEE Micro Magazine, vol. 16, p. 42-50, April 1996.

150.Triebel, W. A. The 80386, 80486, and Pentium Processor, Upper Saddle Riv NJ: Prentice Hall, 1998.

151.linger, S. H. «A Computer Oriented Toward Spatial Problems», Proc. IRE, vol.

6 6 4 Глава 9. Библиография

154.Van Steen, M., Homburg, P. C, and Tanenbaum, A. S. «The Architectural of Globe: A Wide-Area Distributed System», IEEE Concurrency, vol. 7, 78Jan.-March 1999.

155.Verstoep, K., Langedoen, K., andBal, H. E. «Efficient Reliable Mulicast o net», Proc. 1996 Int'l. Conf. on Parallel Processing, IEEE, p. 156-165,1

156.Weaver, D. L., and Germond, T. The SPARC Architecture Manual, Ve Englewood Cliffs, NJ: Prentice Hall, 1994.

157.mikes, M. V. «Computers Then and Now», J. ACM, vol. 15, p. 1-7, Jan.

158.Wilkes, M. V. «The Best Way to Design an Automatic Calculating Ma Proc. Manchester Univ. Computer Inaugural Conf., 1951.

159.Wilkinson, B. Computer Architectural Design and Performance, 2nd ed., wood Cliffs, NJ: Prentice Hall, 1994. Wilinson, 1994.

160.Wilkinson, B. and Allen, M. -arallel Programming: Techniques and Appli Using Networked Workstations and Parallel Computers, Upper Saddle NJ: Prentice Hall, 1999.

161.Wilson, J. «Challenges and Trends in Processor Design», IEEE Computer zine, vol. 31, p. 39-48, Jan. 1998.

162.Wilson, P. «Floating-Point Survival Kit», Byte, vol. 13, p. 217-226, Marc

163.Yeh, T.-Y., and Pott, Y. -N. «Two-Level Adaptive Training Branch Predi Proc. 24th Int'l. Symp. on Microarchitectwe, ACM/IEEE, p. 51-61,199

Приложение А

Двоичныечисла

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

Числа конечной точности

Когда люди выполняют какие-либо арифметические действия, их не волнует прос, сколькодесятичных разрядов занимает то или иное число. Физики, к при ру, могут вычислить, что во Вселенной присутствует 1078 электронов, и их не нует тот факт, что полная запись этого числа потребует 79 десятичных разря Никогда не возникает проблемы нехватки бумаги для записи числа.

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

нойточности.

Рассмотрим ряд положительных целых чисел, которые можно записать тр десятичными разрядами без десятичной запятой и без знака. В этот ряд вхо ровно 1000 чисел: 000, 001, 002, 003,..., 999. При таком ограничении невозмо выразить определенные типы чисел. Сюда входят:

6 66 Приложение А. Двоичные числа

5. Комплексные числа.

Одно из свойств набора всех целых чисел — замкнутость по отношению рациям сложения, вычитания и умножения. Другими словами, для каждой целых чисел i nj числа i+j, i-j и ixj — тоже целые числа. Ряд целых чисел не нут относительно деления, поскольку существуют такие значения г nj, для рых i/j не выражается в виде целого числа (например, 7/2 или 1/0).

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

600+600=1200 (слишком большое число); 003-005=-2 (отрицательное число); 050x050=2500 (слишком большое число); 007/002=3,5 (не целое число).

Отклонения можно разделить на два класса: операции, результат которы вышает самое большое число ряда (ошибка переполнения) или меньше, чем маленькое число ряда (ошибка из-за потери значимости), и операции, рез которых не является слишком маленьким или слишком большим, а просто ляется членом ряда. Из четырех примеров, приведенных выше, первые три сятся к первому классу, а четвертый — ко второму классу.

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

Алгебра чисел конечной точности отличается от обычной алгебры. В ка примера рассмотрим ассоциативный закон

a+(b-c)=(a+b)-c.

Вычислим обе части выражения для а=700, 6=400 и с=300. В левой част чала вычислим значение (b-с). Оно равно 100. Затем прибавим это число получим 800. Чтобы вычислить правую часть, сначала вычислим (а+Ь).

Для трехразрядных целых чисел получится переполнение. Результат бу висеть от компьютера, но он не будет равен 1100. Вычитание 300 из какого-т ла, отличного от 1100, не даст результата 800. Ассоциативный закон не имеет Порядок операций важен.

Другой пример — дистрибутивный закон:

ах (b-c)=axb-axc.

Позиционные системы счисления

6

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

Позиционные системы счисления

Обычное десятичное число состоит из цепочки десятичных разрядов и ино десятичной запятой. Общая форма записи показана на рис. А.1. Десятка выбр в качестве основы возведения в степень (это называется основанием систе счисления), поскольку мы используем 10 цифр. В компьютерах удобнее иметь д с другими основаниями системы счисления. Самые важные из них — 2, 8 и Соответствующиесистемысчисленияназываютсядвоичной,восьмеричнойиш надцатеричной соответственно.

Сотни Десятки Единицы

Десятые Сотые Тысячные

d n ...

62

d-|

d 0

d_i

d-2

d-3 ... d.|<

n Число=Ed|x10'

l=-k

Рис. А.1. Общая формадесятичногочисла

&-ичная система требует k различных символов для записи разрядов с 0 по k Десятичные числа строятся из 10 десятичных цифр

0 1 2 3 4 5 6 7 8 9 Двоичные числа, напротив, строятся только из двух двоичных цифр 01

Восьмеричные числа состоят из восьми цифр 0 1 2 3 4 5 6 7

Для шестнадцатеричных чисел требуется 16 цифр. Это значит, что нам нуж 6 новых символов. Для обозначения цифр, следующих за 9, принято использов прописные латинские буквы от А до F. Таким образом, шестнадцатеричные чи строятся из следующих цифр.

0 1 2 3 4 5 6 7 8 9 A B C D E F

Двоичный разряд (то есть 1 или 0) обычно называют битом. На рис. А.2 десят ное число 2001 представлено в двоичной, восьмеричной и шестнадцатерич

6 6 8

Приложение А. Двоичные числа

 

 

 

 

 

 

g

1

1

 

 

1

1

1

0

1

0

0

0

 

| 1 х 2 1 0 + 1 х 2 9 + 1 х 2 8+ 1 х 2 7+ 1 х 26 + 0 х 2 5+ 1 х 2 4 + 0 х 2 3+ 0 х 2 2 + 0 х 21

8 * 1 0 2 4

+ 5 1 2

+256

+128

+64

+0

+16

+0

+0

 

+0

 

3

7

 

2

1

 

 

 

 

 

 

 

.§ З х 8 3 + 7 х 8 2 + 2 х 8 1 + 1 х 8 °

 

 

 

 

 

 

 

2 з- 1536 + 448

+

16

+1

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

8

2

0

 

0

1

 

 

 

 

 

 

 

ичн

g 2х103 нI- 0 х 102

+ 0 х 101 + 1 х10°

 

 

 

 

 

 

н

у 2000

•*• 0

 

+ 0

+ 1

 

 

 

 

 

 

 

I

 

 

 

 

 

 

 

 

 

 

 

 

о

I ате ело

|

ш

3

7

D

1

7 х 1 6 2 н ИЗ х161

+1 х16°

1792

ч• 208

+1

Рис. А.2. Число 2001 в двоичной, восьмеричной и шестнадцатеричнои системе

В таблице АЛ ряд неотрицательных целых чисел представлен в каждой тырех систем счисления.

Таблица А. 1. Десятичные числа и их двоичные, восьмеричные и шестнадцатеричные эквиваленты

Десятичное

Двоичное

Восьмеричное

Шестнадцатеричное

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

А

Преобразование чисел из одной системы счисления в другую

Десятичное

Двоичное

Восьмеричное

Шестнадцатеричное

14

1110

16

Е

15

1111

17

F

16

10000

20

10

20

10100

24

14

30

11110

36

40

101000

50

28

50

110010

62

32

60

111100

74

ЗС

70

1000110

106

46

80

1010000

120

50

90

1011010

132

100

11001000

144

64

1000

1111101000

1750

ЗЕ8

2989

101110101101

5655

BAD

Преобразование чисел из одной системы счисления в другую

Преобразовывать числа из восьмеричной в шестнадцатеричную или двоич систему и обратно легко. Чтобы преобразовать двоичное число в восьмерич нужно разделить его на группы по три бита, причем три бита непосредственно ва от двоичной запятой формируют одну группу, следующие три бита слев этой группы формируют вторую группу и т. д. Каждую группу по три бита мо преобразовать в один восьмеричный разряд со значением от 0 до 7 (см. пер строки табл. А.1). Чтобы дополнить группу до трех битов, нужно спереди при сать один или два нуля. Преобразование из восьмеричной системы в двоич тоже тривиально. Каждый восьмеричный разряд просто заменяется эквивал ным 3-битным числом. Преобразование из 16-ричной в двоичную систему сути, сходно с преобразованием из 8-ричной в двоичную систему, только каж 16-ричный разряд соответствует группе из четырех битов, а не из трех. На рис. приведены примеры преобразований из одной системы в другую.

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

образом. Единички ставятся в тех позициях, которые соответствуют получен

670 Приложение А. Двоичные числа

проделывается с полученным частным. Процесс повторяется до тех пор, п останется 0. В результате должны получиться две колонки чисел — частны татков. Двоичное число можно считать из колонки остатков снизу вверх. сунке А.4 показано, как происходит преобразование из десятичной в дво систему.

Пример 1

Шестнадцатеричное число

1

9

4

ft

В

fi

 

 

 

 

 

 

 

 

 

Двоичное число

0 0 0 1 1 0 0 1 0 1 0 0 1 0

0 0

. 1 0 1 1

0 1

1 0 0

Восьмеричное число

 

1 4

5

1

0

. 5

 

5 4

Пример 2

 

 

 

 

 

 

 

Шестнадцатеричное число

7

В

А

3

.

В

С

Двоичное число

0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1

. 1 0 1 1 1 1 0 0 0

Восьмеричное число

 

7

5

6 4

3

. 5

7

Рис. А.З. Примеры преобразования из 8-ричной системы счисления

 

в двоичную ииз16-ричнойв двоичную

 

 

 

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

10110=24+22+2'=16+4+2=22

Второй способ. Двоичное число записывается вертикально по одном в строке, крайний левый бит находится внизу. Самая нижняя строка — это ст затем идет строка 2 и т. д. Десятичное число строится напротив этой колонк чала обозначим строку 1. Элемент строки п состоит из удвоенного элемент ки и-1 плюс бит строки п (0 или 1). Элемент, полученный в самой верхней и будет ответом. Метод проиллюстрирован на рис. А.5.

Преобразование из десятичной в восьмеричную или 16-ричную систем но выполнить либо путем преобразования сначала в двоичную, а затем в н нам систему, либо путем вычитания степеней 8 или 16.

Отрицательныедвоичныечисла

На протяжении всей истории цифровых компьютеров для репрезентаци

цательных чисел использовались 4 различные системы. Первая из них на

Отрицательныедвоичные числа 6

Частное Остаток

1 492

746

373

1 86

93

46

23

11

5

2

1

О

1 0 1 1 1 0 1 0 1 0 0 = 149210

Рис. А.4. Преобразование десятичного числа 1492 в двоичное путем последовательного деления (сверху вниз). Например, 93 делится на 2, получается 46 и остаток 1.

Остаток записывается в строку внизу

1

0

1

1

1

0

1

1

0

1

1

1

1

+ 2 х 1499 = 2999

- Результат

1

+2 х 749 = 1499

 

1

+ 2 х 374 = 749

 

0 + 2 х 187 = 374

 

1

+2 х 93 = 187

 

1 + 2 х 46>= 93

 

0 + 2 х 23 = 46

 

-»- 1 +2 х '11 =23

 

-»- 1 +2 х 5 = '11

 

- ^ 1 + 2 x 2 = 5

 

->- 0 + 2 х 1 =2

 

-»- 1 + 2 х 0 = 1

- Начинать

6 7 2 Приложение А. Двоичные числа

Во второй системе, которая называется дополнением до единицы, т сутствует знаковый бит (0 — это плюс, а 1 — это минус). Чтобы сдела отрицательным, нужно заменить каждую 1 на 0 и каждый 0 на 1. Это о

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

это «-»). Отрицание числа происходит в два этапа. Сначала каждая меняется на 0, а каждый 0 — на 1 (как и в системе дополнения до единиц к полученному результату прибавляется 1. Двоичное сложение происход так же, как и десятичное, только перенос совершается в том случае, ес больше 1, а не больше 9. Например, рассмотрим преобразование числа 6 с дополнением до двух:

00000110 (+6); 11111001 (-6 в системе с дополнением до единицы);

11111010 (-6 в системе с дополнением до двух).

Если нужно совершить перенос из крайнего левого бита, он просто отбра В четвертой системе, которая для ти-битных чисел называется excess ло представляется как сумма этого числа и 2тНапример, для 8-битн (те=8) система называется excess 128, а число сохраняется в виде суммы и числа и 128. Следовательно, -3 превращается в -3+128=125, и это число ( ставляется 8-битным двоичным числом 125 (01111101). Числа от -128 выражаются числами от 0 до 255 (все их можно записать в виде 8-битного тельного числа). Отметим, что эта система соответствует системе с допо до двух с обращенным знаковым битом. В таблице А.2 представлены при

рицательных чисел во всех четырех системах.

Таблица А.2. Отрицательные 8-битные числа в четырех различных система

N десятичное

N двоичное -N в системе

-N дополнение

-N дополнение

-N e

 

 

со знаком

до единицы

до двух

 

1

00000001

10000001

11111110

11111111

0111

2

00000010

10000010

11111101

11111110

0111

3

00000011

10000011

11111100

11111101

0111

4

00000100

10000100

11111011

11111100

0111

5

00000101

10000101

11111010

11111011

0111

6

00000110

10000110

11111001

11111010

0111

7

00000111

10000111

11111000

11111001

0111

8

00001000

10001000

11110111

11111000

0111

9

00001001

10001001

11110110

11110111

0111

10

00001010

10001010

11110101

11110110

0111

20

00010100

10010100

11101011

11101100

0110

30

00011110

10011110

11100001

11100010

0110

40

10101000

10101000

11010111

11011000

0101

50

00110010

10110010

11001101

11001110

0100

60

00111100

10111100

11000011

11000100

0100

70

01000110

11000110

10111001

10111010

0011

80

01010000

11010000

10101111

10110000

0011

Соседние файлы в предмете Аппаратное обеспечение ЭВМ, средств телекоммуникаций и сетей