![](/user_photo/1596_Y1cpK.gif)
- •Э. Таненбаум
- •Глава 2. Организация компьютерных систем 56
- •Глава 3. Цифровой логический уровень 139
- •Глава 4. Микроархитектурный уровень 230
- •Глава 5. Уровень архитектуры команд 334
- •Глава 6. Уровень операционной системы 437
- •Глава 7. Уровень языка ассемблера 517
- •Глава 8. Архитектуры компьютеров параллельного
- •Глава 9. Библиография 647
- •Глава 8 (архитектура компьютеров параллельного действия) полностью изменена. В ней подробно описываются мультипроцессоры (uma, numa и сома) и мультикомпьютеры (мрр и cow).
- •Глава 1
- •Глава 2 знакомит читателей с основными компонентами компьютера: процессорами, памятью, устройствами ввода-вывода. В ней дается краткое описание системной архитектуры и введение к следующим главам.
- •Глава 2
- •Центральный процессор Центральный процессор
- •12 Битов б
- •24 Входные линии
- •50 Входных линий
- •Глава 4
- •Старший бит
- •Блок выборки команд
- •Сигналы управления
- •Глава 5
- •Intel ia-64
- •Глава 6
- •Глава 7
- •3. Сведения о том, можно ли получить доступ к символу извне процедуры.
- •Глава 8
- •64 Элемента на каждый регистр
- •Intel/Sandia Option Red
- •00 Процессор 2
- •Глава 9
- •4. Mazidi and Mazidi, The 80x86ibm pc and Compatible Computers, 2nd ed.
- •5. McKee et al., Smarter Memory: ImprovingBandwidthforStreamed References.
- •4. McKusick et al., Design and Implementation ofthe 4.4bsd Operating System.
- •3. Hill, Multiprocessors Should Support Simple Memory-Consistency Models.
- •Ieee Scalable Coherent Interface Working Group, ieee, 1989.
- •Ieee Micro Magazine, vol. 18, p. 60-75, July/Aug. 1998b.
- •3Rd ed., Reading, ma: Addison-Wesley, 1998.
- •1988 Int'l. Conf. On Parallel Proc. (Vol. 11), ieee, p. 94-101, 1988.
- •Implementation of the 4.4 bsd Operating System», Reading, ma: Addison-Wesley, 1996.
- •In Shared Memory Multiprocessing», ieee Computer Magazine, vol. 30, p. 4450, Dec. 1997.
- •78Jan.-March 1999.
- •0 123456789Abcdef
- •I и Ijmii him
- •Э. Таненбаум
4. McKusick et al., Design and Implementation ofthe 4.4bsd Operating System.
В отличие от большинства книг по UNIX, эта начинается с фотографии четырех авторов на конференции USENIX Conference. Трое из них много написали о пакете BSD версии 4.4 и высококвалифицированы в этом вопросе. В книге говорится о системных вызовах, процессах, о процессе ввода-вывода. Целый раздел посвящен сетям.
5. Ritchie and Thompson, The UNIX Time-Sharing System.
Это самая первая работа, посвященная системе UNIX. И тем не менее ее стоит прочитать. Из этого маленького зернышка выросла большая операционная система.
6. Solomon, Inside Windows NT, 2nd ed.
Если вы хотите знать, как работает система NT, эта книга для вас. В ней обсуждаются архитектура и механизмы системы, процессы, потоки, управление памятью, защита, процесс ввода-вывода, кэш-память, файловые системы и многие другие вопросы.
7. TanenbaumandWoodhull,OperatingSystems:Design andImplementation, 2nd ed. Большинство книг об операционных системах касаются только теоретических вопросов. В этой книге теория проиллюстрирована на примере реального программного кода операционной системы MINIX, сходной с UNIX, которая работает на IBM PC и других компьютерах. Исходный код с подробными комментариями приводится в приложении.
Уровень языка ассемблера
1. Irvine, Assembly LanguageforIntel-Based Computers, 3rd ed.
Тема этой книги — программирование процессоров Intel на языке ассемблера. В ней также рассказывается о программировании ввода-вывода, макросах, файлах, связывании, прерываниях и т. д.
2. Saloman, Assemblers andLoaders.
Все, что вы хотели знать об однопроходных и двупроходных ассемблерах, а также о том, как работают компоновщики и загрузчики, макросы и условная компоновка программы.
Архитектуры компьютеров параллельного действия
1. Adve and Gharachorloo, SharedMemory Consistency Models: A Tutorial.
Во многих современных компьютерах, особенно мультипроцессорах, поддерживается более слабая модель памяти, чем согласованность по последовательности. В этом учебном пособии обсуждаются различные модели и объясняется, как они работают. Здесь также приводятся и опровергаются многочисленные мифы о слабо согласованной памяти.
2. Almasi and Gottlieb, Highly Parallel Computing, 2nd ed.
В этой книге рассказывается о параллельной вычислительной обработке,
в том числе о сетях, архитектуре, компиляторах, моделях и приложениях.
В ней представлены проблемы аппаратного и программного обеспечения,
а также прикладные вопросы.
3. Hill, Multiprocessors Should Support Simple Memory-Consistency Models.
Слабые модели памяти — важная и спорная проблема в разработке памяти мультипроцессора. Слабые модели допускают определенные оптимизации аппаратного обеспечения (например, совершение обращений к памяти в другом порядке), но усложняют программирование. В этой статье автор обсуждает различные вопросы, связанные с согласованностью памяти, и приходит к выводу, что слабо согласованная память создает больше проблем, чем преимуществ.
4. Hwang and Xu, Scalable ParallelComputing.
Авторы рассматривают и программное, и аппаратное обеспечение, поэтому им удалось дать всестороннее, но доступное описание параллельной вычислительной обработки. В книге говорится о мультипроцессорах UMA и
NUMA, системах МРР и COW, о передаче сообщений и параллельном программировании.
5. Pfister, In Search of Clusters, 2nd ed.
Хотя определение кластера появляется только на 72-й странице (группа компьютеров, работающих вместе), он, очевидно, включает в себя все обычные мультикомпьютерные и мультипроцессорные системы. Подробно рассматриваются их аппаратное и программное обеспечение, производительность и доступность. Предупредим читателя: хотя стиль автора кажется поначалу увлекательным, к 500-й странице вся увлекательность исчезает.
6. Snir et al., MPI: The Complete reference Manual.
Название книги говорит само за себя. Если вы хотите научиться программировать на MPI, обратитесь к ней. В книге рассказывается о двухточечной и коллективной коммуникации, коммуникаторах, об управлении средой и о многом другом.
7. Stenstrom et al., Trends in Shared Memory Multiprocessing.
Мультипроцессоры с памятью совместного использования часто считают суперкомпьютерами для сложных научных вычислений. В действительности это только крошечная часть их рынка. В статье обсуждается, какие сферы охватывает рынок таких машин и каково значение их архитектуры.
Двоичные числа и числа с плавающей точкой
1. Cody, Analysis ofProposalsforthe Floating-Point Standard.
Несколько лет назад Институт инженеров по электротехнике и электронике (IEEE) разработал архитектуру с плавающей точкой, которая стала стандартом de facto для всех современных процессоров. Автор обсуждает различные вопросы, предложения и возражения, которые возникали во время процесса стандартизации.
2. Garner, Nubmer Systems and Arithmetic.
Учебное пособие о понятиях двоичной арифметики (в том числе о распространении переноса, системах избыточных чисел, системах остаточных классов и о нестандартном умножении и делении). Особенно рекомендуется для тех, что считает, что узнал все об арифметике в шестом классе.
3. IEEE, Pmc. of the n-th Symposium on Computer Arithmetic.
Вопреки общепринятому мнению арифметика является активной областью исследования. Специалистами написано много научных трудов. На симпозиуме обсуждаются проблемы прогрессий, развитие высокоскоростного сложения и умножения, арифметическое аппаратное обеспечение СБИС, сопроцессоры, отказоустойчивость, округление и многие другие вопросы.
4. Knuth, SeminumericalAlgorithms, 3rd ed.
Обширный материал о позиционных системах счисления, арифметике с плавающей точкой, арифметике с многократно увеличенной точностью и о случайных числах. Книга требует и заслуживает внимательного изучения.
5. Wilson, Floating-PointSurvivalKit.
Хорошая книга для начинающих о числах с плавающей точкой и о стандартах. Обсуждаются некоторые популярные задачи с плавающей точкой (например, Unpack).
Алфавитный список литературы
1. Adams, G. В. HI, Agrawal, D. P., andSiegel, H.J. «A Survey and Comparison of
Fault-Tolerant Multistage Interconnection Networks», IEEE Computer Magazine, vol. 20, p. 14-27, June 1987.
2. Adve, S. V., andCharachorloo, K. «Shared Memory Consistency Models: A Tutori-
al», IEEE Computer Magazine, vol. 29, p. 66-76, Dec. 1996.
Adve, S V., and Hill, M. «Weak Ordering: A New Definition^ Proc. 17th Ann. Int'l. Symp. on Computer Arch., ACM, p. 2-14,1990.
Agerwala, Т., and Cocke,J. «High Performance Reduced Instruction Set Proces-
sors», IBM TJ. Watson Research Center Technical Report RC12434, 1987.
5. Almasi, G. S., and Gottlieb, A. Highly Parallel Computing, 2nd ed. Redwood City, CA Benjamin/Cummings, 1994.
6.Amza, C, COX, A., Dwarkadas, S,Keleher,P., Lu, H., Rajamony,R., Yu, W.,Zwae-nepoel, W. «TreadMarks: Shared Memory Computing on a Network of Workstations, IEEE Computer Magazine, vol. 29, p. 18-28, Feb. 1996.
7. Anderson, D. Universal Serial Bus System Architecture, Reading, MA: Addison-
Wesley, 1997.
8 .Anderson, T. E., Culler, D. E., Patterson, D. A., andtheNOWteam «ACase forNOW
(Networks of Workstations)», IEEE Micro Magazine, vol. 15, p. 54-64, Feb. 1995.
9. AntonakosJ. L. The Pentium Microprocessor, Upper Saddle River, NJ: Prentice Hall, 1997.
10.August,D.I., Connors,D.A.,Mshlke,S.A.,SIASJ. W., Crozier,K.M., Cheng,B.-C, Eaton, P. R., Olaniran, Q. В., andHWU, W.-M. «Integrated Predicated and Speculative Execution in the IMPACT EPIC Architecture», Proc. 25th Ann. Int'l.
Symp. on Computer Arch., ACM, p. 227-237,1998.
Bal, H. E. Programming Distributed Sysytems, Hemel Hempstead, England: Prentice Hall Int'l., 1991.
Bal, H. E., Bhoedjang, R, Hofman, R, Jacobs, C, Langendoen, K., Ruhl, Т., and
Kaashoek, M. F. «Performance Evaluation of the Orca Shared Object System»,
ACM Trans, on Computer Systems, vol. 16, p. 1-40, Feb. 1998.
Bal, H. Е, Kaashoek, M.F., and Tanenbaum, A. S. «Orca: A Language for Parallel Programming of Distributed Systems», IEEE trans, on Software Engeneering, vol. 18, p. 190-205, March 1992.
Bal, H. E., and Tanenbaum, A. S. «Distributed Programming with Shared Data», Proc. 1988 Int'l. Conf. on Computer Languages, IEEE, p. 82-91, 1988.
Bhuyan, L. N., Yang, Q., andAgrawal, D. P. «Performance ofMultiprocessor Interconnection Networks», IEEE Computer Magazine, vol. 22, p. 25-37, Feb. 1989.
Bjornson, R. D. «Linda on Distributed Memory Multiprocessor, Ph. D. Thesis, Yale Univ., 1993.
Blumrich, M. A., Dubnicki, C, Felten, E. W., Li,K., andMesarina,M. R. «Virtual-
Memory Mapped Network Interfaces», IEEE Micro Magazine, vol. 15, p. 21-28,
Feb. 1995.
18. Boden, N.J., Cohen, D.,Felderman, R. E, Kulawik, A. E, Seitz, CL., SeizovicJ. N.,
andSu, W. -K. «Myrinet: A Gigabit per second Local Area Network», IEEE Micro
Magazine, vol. 15, p. 29-36, Feb. 1995.
19.Bouknight, WJ,Denenberg,S\A,Mcintyre,D.E,Randall,J.M,Sameh,A.H,and Slotnick, D. L. «The Illiac IV System», Proc. IEEE, p. 369-388, April 1972.
20. Burkhardt, H., Frank, S., Knobe, В., andRothnieJ. «Overview ofthe KSR-1 Com-
puter Sysytem», Technical Report KSR-TR-9202001, Kendall Square Research
Corp, Cambridge, MA, 1992.
21. Carriero, N., and Gelernter, D. «The S/Net's Linda Kernel», ACM Trans, on Coputer Sysytems, vol. 4, p. 110-129, May 1986.
22. Carriero,N.,andGelernter, D. «Linda and Context», Commun. ofthe ACM, vol. 32,
p. 444-458, April 1989.
23. Charlesworth, A. «Starfire: Extending the SMP Envelope», IEEE Micro Maga- zine, vol. 18,39-49, Jan./Feb. 1998.
24. Charlesworth, A., Phelps, A., Williams,R., andGilbert, G. «Gigaplane-XB: Extend-
ing the Ultra Enterprise Family», Proc. Hot Interconnects V, IEEE, 1988.
Cody, W.J. «Analysis of Proposals for the Floating-Point Standard», IEEE Computer Magazine, vol. 14, p. 63-68, Mar. 1981.
Cohen, D. «On Holy Wars and a Plea for Peace», IEEE Computer Magazine,
vol. 14, p. 48-54, Oct. 1981.
Corbaty, F.J. «PL/1 as a Tool for System Programming», Datamation, vol. 15, p. 68-76, May 1969.
Corbaty, F.J., andVyssotsky, V.A. introduction and Overview ofthe MULTICS
System», Proc. FJCC, p. 185-196, 1965.
Denning, P.J. «The Working Set Model for Program Behavior», Commun. of the ACM, vol. 11, p. 323-333, May 1968.
Dijkstra, E. W. «GOTO Statement Considered Harmful», Commun. ofthe ACM, vol. 11, p. 147-148, Mar. 1968a.
Dijkstra, E. W. «Co-operating Sequential Processes», in Programming Languages, F. Genuys (ed.), New York: Academic Press, 1968b.
Driesen, K., andHolzie, URS«Accurate Indirect Branch Predictions Proc. 25th
Ann. Int'l. Symp. on Computer Arch., ACM, p. 167-177,1998.
Dubois, M, Scheurich, C, andBriggs, FA. «Memory Access Buffering in Mul-tiprocessors», Proc. 13th Ann. Int'l. Symp. on Computer Arch., ACM, p. 434442,1986.
Dulong, С «The IA-64 Architecture at Work», IEEE Computer Magazine, vol. 31,
p. 24-32, July 1998.
35. Faggin, F, Hoff, M. E.Jr, Mazor, S, andShima, M. «The History ofthe 4004»,
IEEE Micro Magazine, vol. 16, p. 10-20, Dec. 1996.
36. Falsafi, В., and Wood, DA. «Reactive NUMA: A Design Unifying S-COMA and
CC-NUMA», Proc. 25th Ann. Int'l. Symp. on Computer Arch., ACM, p. 229240,1997.
37. FisherJ. A., andFreudenberger, S. M. «Predicting Conditional Branch Directions
from Previous Runs of a Program», Proc. 5th Conf. on Arch. Support for Prog. Lang, and Operating Syst, ACM, p. 85-95,1992.
38. Floyd, T. L. Digital Fundamentals, 6th ed., Upper Saddle River, NJ: Prentice Hall,
1997.
Flynn, M.J. «Some Computer Organizations and Their Effectiveness», IEEE Trans, on Computers, vol. C-21, p. 948-960, Sept. 1972.
Foster, I., andKesselman, С «Globus: A Metacomputing Infrastructure Toolkit», Int'l. J. of Supercomputer Applications, vol. 11, p. 115-128,1998a.
Foster, I., andKesselman, С«The Globus Project: A Status Report», IPPS/SPDP '98 Heterogeneous Computing Workshop, IEEE, p. 4-18, 1998b.
FotheringhamJ. «Dynamic Storage Allocation in the Atlas Computer Including an Automatic Use ofa Backing Store», Commun. ofthe ACM, vol. 4, p. 435-436,
Oct. 1961.
43. Gajski, D. D., and Pier, К. -К. «Essential Issues in Multiprocessor Systems», IEEE
Computer Magazine, vol. 18, p. 9-27, June 1985.
44. Garner, H. L. «Number Sysytems and Arithmetic^ in Advances in Computers, vol. 6, F. Alt and M. Rubinoff (eds.), New York: Academic Press, 1965, p. 131— 194.
45.Geist,A, Beguelin,A, Dongarra,J, Jiang, W.,Mancheck,R, andSunderram, V. PVM: Parallel Virtual Machine — A User's Guide and Tutorial for Networked
Parallel Computing, Cambridge, MA: M.I.T. Press, 1994.
46. Gharachorloo, K.,Lenoski, D,LaudonJ, Gibbons, P., Gupta, A., andHennessyJ.
«Memory Consistency and Event Ordering in Scalable Shared-Memory Multi-
processors», Proc. 17th Ann. Int'l. Symp. on Computer Arch., ACM, p. 15-26,
1990.
Goodman, J. R. «Using Cache Memory to Reduce Processor Memory Traffic*, Proc. 10th Ann. Int'l. Symp. on Computer Arch., ACM, p. 124-131, 1983.
GoodmanJ. R. «Cache Consistency and Sequential Consistency^ Tech. Rep. 61,