دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 5
نویسندگان: Andrew S. Tanenbaum
سری:
ISBN (شابک) : 0131485210, 9780131485211
ناشر: Prentice Hall
سال نشر: 2005
تعداد صفحات: 801
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 7 مگابایت
در صورت تبدیل فایل کتاب Structured Computer Organization, 5th Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سازمان کامپیوتر ساختاریافته، ویرایش پنجم نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
سازمان کامپیوتر ساختاریافته، که به طور خاص برای دانشجویان مقطع کارشناسی نوشته شده است، راهنمای پرفروشی است که مقدمه ای در دسترس برای سخت افزار و معماری کامپیوتر فراهم می کند. محتوای به روز شده از طریق ساختار آشنا ارائه می شود که در چهار نسخه موفق به مربیان خدمت کرده است. این متن همچنین به عنوان یک منبع مفید برای همه متخصصان و مهندسین کامپیوتر که نیاز به یک مرور کلی یا مقدمه ای بر معماری کامپیوتر دارند، خواهد بود. این کتاب یک رویکرد ساختاریافته و لایه ای مدرن برای درک سیستم های کامپیوتری دارد. بسیار در دسترس است - و به طور کامل به روز شده است تا حیاتی ترین فناوری های جدید امروزی و آخرین پیشرفت ها در سازمان و معماری رایانه را منعکس کند. سبک نگارش مشهور و تحقیقات پر زحمت Tanenbaum این کتاب را به یکی از در دسترسترین و دقیقترین کتابهای موجود تبدیل میکند و روش محبوب نویسنده را برای ارائه رایانه بهعنوان یک سری لایهها حفظ میکند که هر یک بر اساس لایههای زیر آن ساخته شدهاند و به عنوان یک موجودیت جداگانه قابل درک است. یک CD-ROM برای برنامه نویسان زبان اسمبلی برای معلمان موجود است.
Structured Computer Organization, specifically written for undergraduate students, is a best-selling guide that provides an accessible introduction to computer hardware and architecture. Updated content is delivered via the familiar structure that has served instructors through four successful editions. This text will also serve as a useful resource for all computer professionals and engineers who need an overview or introduction to computer architecture. This book takes a modern structured, layered approach to understanding computer systems. It's highly accessible - and it's been thoroughly updated to reflect today's most critical new technologies and the latest developments in computer organization and architecture. Tanenbaum’s renowned writing style and painstaking research make this one of the most accessible and accurate books available, maintaining the author’s popular method of presenting a computer as a series of layers, each one built upon the ones below it, and understandable as a separate entity. A CD-ROM for assembly language programmers is available for teachers.
Cover ......Page 1
Title Page ......Page 4
Copyright......Page 5
CONTENTS......Page 8
PREFACE......Page 19
1 INTRODUCTION......Page 22
1.1.1 Languages, Levels, and Virtual Machines......Page 23
1.1.2 Contemporary Multilevel Machines......Page 26
1.1.3 Evolution of Multilevel Machines......Page 29
1.2 MILESTONES IN COMPUTER ARCHITECTURE......Page 34
1.2.1 The Zeroth Generation—Mechanical Computers (1642–1945)......Page 35
1.2.2 The First Generation—Vacuum Tubes (1945–1955)......Page 37
1.2.3 The Second Generation—Transistors (1955–1965)......Page 40
1.2.4 The Third Generation—Integrated Circuits (1965–1980)......Page 43
1.2.5 The Fourth Generation—Very Large Scale Integration (1980-?)......Page 44
1.2.6 The Fifth Generation—Invisible Computers......Page 47
1.3.1 Technological and Economic Forces......Page 48
1.3.3 Disposable Computers......Page 50
1.3.4 Microcontrollers......Page 52
1.3.5 Game Computers......Page 54
1.3.8 Collections of Workstations......Page 55
1.3.9 Mainframes......Page 57
1.4.1 Introduction to the Pentium 4......Page 58
1.4.2 Introduction to the UltraSPARC III......Page 63
1.4.3 Introduction to the 8051......Page 65
1.5 METRIC UNITS......Page 67
1.6 OUTLINE OF THIS BOOK......Page 68
2.1 PROCESSORS......Page 72
2.1.1 CPU Organization......Page 73
2.1.2 Instruction Execution......Page 75
2.1.3 RISC versus CISC......Page 79
2.1.4 Design Principles for Modern Computers......Page 80
2.1.5 Instruction-Level Parallelism......Page 82
2.1.6 Processor-Level Parallelism......Page 86
2.2.1 Bits......Page 90
2.2.2 Memory Addresses......Page 91
2.2.3 Byte Ordering......Page 92
2.2.4 Error-Correcting Codes......Page 94
2.2.5 Cache Memory......Page 98
2.2.6 Memory Packaging and Types......Page 101
2.3.1 Memory Hierarchies......Page 102
2.3.2 Magnetic Disks......Page 103
2.3.4 IDE Disks......Page 106
2.3.5 SCSI Disks......Page 108
2.3.6 RAID......Page 110
2.3.7 CD-ROMs......Page 114
2.3.8 CD-Recordables......Page 118
2.3.10 DVD......Page 120
2.4.1 Buses......Page 123
2.4.2 Terminals......Page 126
2.4.3 Mice......Page 131
2.4.4 Printers......Page 133
2.4.5 Telecommunications Equipment......Page 138
2.4.6 Digital Cameras......Page 146
2.4.7 Character Codes......Page 148
2.5 SUMMARY......Page 152
3.1 GATES AND BOOLEAN ALGEBRA......Page 156
3.1.1 Gates......Page 157
3.1.2 Boolean Algebra......Page 159
3.1.3 Implementation of Boolean Functions......Page 161
3.1.4 Circuit Equivalence......Page 162
3.2.1 Integrated Circuits......Page 167
3.2.2 Combinational Circuits......Page 168
3.2.3 Arithmetic Circuits......Page 173
3.2.4 Clocks......Page 178
3.3.1 Latches......Page 180
3.3.2 Flip-Flops......Page 182
3.3.3 Registers......Page 184
3.3.4 Memory Organization......Page 185
3.3.5 Memory Chips......Page 189
3.3.6 RAMs and ROMs......Page 192
3.4 CPU CHIPS AND BUSES......Page 194
3.4.1 CPU Chips......Page 195
3.4.2 Computer Buses......Page 197
3.4.3 Bus Width......Page 199
3.4.4 Bus Clocking......Page 201
3.4.5 Bus Arbitration......Page 205
3.4.6 Bus Operations......Page 208
3.5.1 The Pentium 4......Page 210
3.5.2 The UltraSPARC III......Page 217
3.5.3 The 8051......Page 221
3.6 EXAMPLE BUSES......Page 223
3.6.1 The ISA Bus......Page 224
3.6.2 The PCI Bus......Page 225
3.6.3 PCI Express......Page 233
3.6.4 The Universal Serial Bus......Page 238
3.7.1 I/O Chips......Page 242
3.7.2 Address Decoding......Page 243
3.8 SUMMARY......Page 246
4.1 AN EXAMPLE MICROARCHITECTURE......Page 252
4.1.1 The Data Path......Page 253
4.1.2 Microinstructions......Page 260
4.1.3 Microinstruction Control: The Mic-1......Page 262
4.2.1 Stacks......Page 267
4.2.2 The IJVM Memory Model......Page 269
4.2.3 The IJVM Instruction Set......Page 271
4.2.4 Compiling Java to IJVM......Page 275
4.3.1 Microinstructions and Notation......Page 276
4.3.2 Implementation of IJVM Using the Mic-1......Page 281
4.4.1 Speed versus Cost......Page 292
4.4.2 Reducing the Execution Path Length......Page 294
4.4.4 A Pipelined Design: The Mic-3......Page 302
4.4.5 A Seven-Stage Pipeline: The Mic-4......Page 309
4.5 IMPROVING PERFORMANCE......Page 313
4.5.1 Cache Memory......Page 314
4.5.2 Branch Prediction......Page 320
4.5.3 Out-of-Order Execution and Register Renaming......Page 325
4.5.4 Speculative Execution......Page 330
4.6 EXAMPLES OF THE MICROARCHITECTURE LEVEL......Page 332
4.6.1 The Microarchitecture of the Pentium 4 CPU......Page 333
4.6.2 The Microarchitecture of the UltraSPARC-III Cu CPU......Page 338
4.6.3 The Microarchitecture of the 8051 CPU......Page 344
4.7 COMPARISON OF THE PENTIUM, ULTRASPARC, AND 8051......Page 346
4.8 SUMMARY......Page 347
5 THE INSTRUCTION SET ARCHITECTURE LEVEL......Page 352
5.1.1 Properties of the ISA Level......Page 354
5.1.2 Memory Models......Page 356
5.1.3 Registers......Page 358
5.1.5 Overview of the Pentium 4 ISA Level......Page 360
5.1.6 Overview of the UltraSPARC III ISA Level......Page 362
5.1.7 Overview of the 8051 ISA Level......Page 366
5.2.1 Numeric Data Types......Page 369
5.2.2 Nonnumeric Data Types......Page 370
5.2.4 Data Types on the UltraSPARC III......Page 371
5.3 INSTRUCTION FORMATS......Page 372
5.3.1 Design Criteria for Instruction Formats......Page 373
5.3.2 Expanding Opcodes......Page 375
5.3.3 The Pentium 4 Instruction Formats......Page 378
5.3.4 The UltraSPARC III Instruction Formats......Page 379
5.3.5 The 8051 Instruction Formats......Page 380
5.4.1 Addressing Modes......Page 381
5.4.4 Register Addressing......Page 382
5.4.5 Register Indirect Addressing......Page 383
5.4.6 Indexed Addressing......Page 384
5.4.8 Stack Addressing......Page 386
5.4.10 Orthogonality of Opcodes and Addressing Modes......Page 390
5.4.11 The Pentium 4 Addressing Modes......Page 392
5.4.13 The 8051 Addressing Modes......Page 394
5.4.14 Discussion of Addressing Modes......Page 395
5.5.1 Data Movement Instructions......Page 396
5.5.2 Dyadic Operations......Page 397
5.5.3 Monadic Operations......Page 398
5.5.4 Comparisons and Conditional Branches......Page 400
5.5.5 Procedure Call Instructions......Page 402
5.5.6 Loop Control......Page 403
5.5.7 Input/Output......Page 404
5.5.8 The Pentium 4 Instructions......Page 407
5.5.9 The UltraSPARC III Instructions......Page 410
5.5.11 Comparison of Instruction Sets......Page 413
5.6.1 Sequential Flow of Control and Branches......Page 416
5.6.2 Procedures......Page 417
5.6.3 Coroutines......Page 422
5.6.5 Interrupts......Page 425
5.7 A DETAILED EXAMPLE: THE TOWERS OF HANOI......Page 429
5.7.2 The Towers of Hanoi in UltraSPARC III Assembly Language......Page 430
5.8 THE IA-64 ARCHITECTURE AND THE ITANIUM 2......Page 432
5.8.1 The Problem with the Pentium 4......Page 434
5.8.2 The IA-64 Model: Explicitly Parallel Instruction Computing......Page 435
5.8.3 Reducing Memory References......Page 436
5.8.4 Instruction Scheduling......Page 437
5.8.5 Reducing Conditional Branches: Predication......Page 439
5.8.6 Speculative Loads......Page 441
5.9 SUMMARY......Page 442
6 THE OPERATING SYSTEM MACHINE LEVEL......Page 448
6.1 VIRTUAL MEMORY......Page 449
6.1.1 Paging......Page 450
6.1.2 Implementation of Paging......Page 452
6.1.3 Demand Paging and the Working Set Model......Page 454
6.1.4 Page Replacement Policy......Page 457
6.1.5 Page Size and Fragmentation......Page 459
6.1.6 Segmentation......Page 460
6.1.7 Implementation of Segmentation......Page 463
6.1.8 Virtual Memory on the Pentium 4......Page 466
6.1.9 Virtual Memory on the UltraSPARC III......Page 471
6.1.10 Virtual Memory and Caching......Page 473
6.2 VIRTUAL I/O INSTRUCTIONS......Page 474
6.2.1 Files......Page 475
6.2.2 Implementation of Virtual I/O Instructions......Page 476
6.2.3 Directory Management Instructions......Page 480
6.3 VIRTUAL INSTRUCTIONS FOR PARALLEL PROCESSING......Page 481
6.3.1 Process Creation......Page 482
6.3.2 Race Conditions......Page 483
6.3.3 Process Synchronization Using Semaphores......Page 487
6.4.1 Introduction......Page 491
6.4.2 Examples of Virtual Memory......Page 500
6.4.3 Examples of Virtual I/O......Page 503
6.4.4 Examples of Process Management......Page 514
6.5 SUMMARY......Page 521
7 THE ASSEMBLY LANGUAGE LEVEL......Page 528
7.1.1 What Is an Assembly Language?......Page 529
7.1.2 Why Use Assembly Language?......Page 530
7.1.3 Format of an Assembly Language Statement......Page 533
7.1.4 Pseudoinstructions......Page 536
7.2 MACROS......Page 538
7.2.1 Macro Definition, Call, and Expansion......Page 539
7.2.2 Macros with Parameters......Page 541
7.2.4 Implementation of a Macro Facility in an Assembler......Page 542
7.3.1 Two-Pass Assemblers......Page 543
7.3.2 Pass One......Page 544
7.3.3 Pass Two......Page 548
7.3.4 The Symbol Table......Page 550
7.4 LINKING AND LOADING......Page 551
7.4.1 Tasks Performed by the Linker......Page 553
7.4.2 Structure of an Object Module......Page 556
7.4.3 Binding Time and Dynamic Relocation......Page 557
7.4.4 Dynamic Linking......Page 560
7.5 SUMMARY......Page 564
8 PARALLEL COMPUTER ARCHITECTURES......Page 568
8.1 ON-CHIP PARALELLISM......Page 569
8.1.1 Instruction-Level Parallelism......Page 570
8.1.2 On-Chip Multithreading......Page 577
8.1.3 Single-Chip Multiprocessors......Page 583
8.2 COPROCESSORS......Page 588
8.2.1 Network Processors......Page 589
8.2.2 Media Processors......Page 597
8.2.3 Cryptoprocessors......Page 602
8.3.1 Multiprocessors vs. Multicomputers......Page 603
8.3.2 Memory Semantics......Page 611
8.3.3 UMA Symmetric Multiprocessor Architectures......Page 615
8.3.4 NUMA Multiprocessors......Page 623
8.3.5 COMA Multiprocessors......Page 632
8.4 MESSAGE-PASSING MULTICOMPUTERS......Page 633
8.4.1 Interconnection Networks......Page 635
8.4.2 MPPs—Massively Parallel Processors......Page 638
8.4.3 Cluster Computing......Page 648
8.4.4 Communication Software for Multicomputers......Page 653
8.4.5 Scheduling......Page 656
8.4.6 Application-Level Shared Memory......Page 657
8.4.7 Performance......Page 664
8.5 GRID COMPUTING......Page 670
8.6 SUMMARY......Page 672
9.1.1 Introduction and General Works......Page 676
9.1.2 Computer Systems Organization......Page 678
9.1.3 The Digital Logic Level......Page 679
9.1.5 The Instruction Set Architecture Level......Page 680
9.1.6 The Operating System Machine Level......Page 681
9.1.8 Parallel Computer Architectures......Page 682
9.1.9 Binary and Floating-Point Numbers......Page 684
9.2 ALPHABETICAL BIBLIOGRAPHY......Page 685
A.1 FINITE-PRECISION NUMBERS......Page 700
A.2 RADIX NUMBER SYSTEMS......Page 702
A.3 CONVERSION FROM ONE RADIX TO ANOTHER......Page 704
A.4 NEGATIVE BINARY NUMBERS......Page 706
A.5 BINARY ARITHMETIC......Page 709
B: FLOATING-POINT NUMBERS......Page 712
B.1 PRINCIPLES OF FLOATING POINT......Page 713
B.2 IEEE FLOATING-POINT STANDARD 754......Page 715
C: ASSEMBLY LANGUAGE PROGRAMMING......Page 722
C.1.1 Assembly Language......Page 723
C.1.2 A Small Assembly Language Program......Page 724
C.2 THE 8088 PROCESSOR......Page 725
C.2.2 The General Registers......Page 726
C.2.3 Pointer Registers......Page 729
C.3.1 Memory Organization and Segments......Page 730
C.3.2 Addressing......Page 732
C.4.1 Move, Copy and Arithmetic......Page 736
C.4.3 Loop and Repetitive String Operations......Page 739
C.4.4 Jump and Call Instructions......Page 740
C.4.5 Subroutine Calls......Page 742
C.4.6 System Calls and System Subroutines......Page 744
C.5 THE ASSEMBLER......Page 746
C.5.1 Introduction......Page 747
C.5.2 The ACK-Based Tutorial Assembler as88......Page 748
C.5.3 Some Differences with Other 8088 Assemblers......Page 751
C.6 THE TRACER......Page 753
C.6.1 Tracer Commands......Page 755
C.7 GETTING STARTED......Page 756
C.8.1 Hello World Example......Page 757
C.8.2 General Registers Example......Page 761
C.8.3 Call Command and Pointer Registers......Page 763
C.8.4 Debugging an Array Print Program......Page 765
C.8.5 String Manipulation and String Instructions......Page 769
C.8.6 Dispatch Tables......Page 771
C.8.7 Buffered and Random File Access......Page 773
A......Page 778
B......Page 779
C......Page 781
D......Page 782
E......Page 783
F......Page 784
H......Page 785
I......Page 786
L......Page 788
M......Page 789
O......Page 791
P......Page 792
Q......Page 793
S......Page 794
T......Page 796
V......Page 797
Z......Page 798