Tải bản đầy đủ (.pdf) (1,356 trang)

Jones bartlett, the essentials of computer organization and architecture 2003

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.97 MB, 1,356 trang )

TheEssentialsof
ComputerOrganization
andArchitecture
ISBN:076370444x
byLinda
NullandJulia
Lobur
JonesandBartlettPublishers
©2003(673pages)

Thegoalofthistextisto
allowthestudentstotiethe
hardwareknowledgecovered
inthisbooktotheconcepts
learnedintheirintroductory
programmingclassestogive
acompleteandthorough
pictureofhowhardwareand
softwarefittogether.
TableofContents BackCover
TableofContents
TheEssentialsofComputer
OrganizationandArchitecture
Preface
Chapter1 - Introduction
DataRepresentationin
Chapter2 ComputerSystems
BooleanAlgebraand
Chapter3 DigitalLogic
MARIE—AnIntroduction



Chapter4 - toaSimpleComputer
ACloserLookat
Chapter5 - InstructionSet
Architectures
Chapter6 - Memory
Input/Outputand
Chapter7 StorageSystems
Chapter8 - SystemSoftware
Chapter9 - AlternativeArchitectures
Performance
Chapter10 - Measurementand
Analysis
NetworkOrganization
Chapter11 andArchitecture
DataStructuresandthe
AppendixA Computer
Glossary
AnswersandHintsforSelected
Exercises
Index
ListofFigures
ListofTables
ListofCodeExamples
ListofSidebars



TheEssentialsof
ComputerOrganization

andArchitecture
ISBN:076370444x
byLinda
NullandJulia
Lobur
JonesandBartlettPublishers
©2003(673pages)

Thegoalofthistextisto
allowthestudentstotiethe
hardwareknowledgecovered
inthisbooktotheconcepts
learnedintheirintroductory
programmingclassestogive
acompleteandthorough
pictureofhowhardwareand
softwarefittogether.
TableofContents

BackCover

BackCover
TheEssentialsofComputerOrganizationand
Architectureprovidesaone-semesterintroductionto
computerorganizationandarchitecture.Createdin
directcorrelationtotheACM-IEEEComputingCurricula
2001guidelines,thistextexposestheinnerworkingof
amoderndigitalcomputerthroughanintegrated
presentationoffundamentalconceptsandprinciples.
Withreal-lifeexamplesandafocusonpractical



application,thistextencouragesitsreaderstodevelop
a“bigpicture”understandingofhowtheessential
organizationandarchitectureconceptsareappliedin
theworldofcomputing.
DistinctiveFeatures
Theauthorswritefromacomputerscience
perspective,withoutmachine-specificterminology,
motivatingtopicsbeforecoveringthem.
I/Oanddatacompressionarecomprehensively
covered,andcachememoriesandpagingare
introducedinaclear,straightforwardpresentation.
Thetextincludesanoverviewofvarious
architectures,includingRISC,superscalar
machines,instruction-levelparallelism,neural
networks,anddistributedarchitectures.
LearningResourcesincludingtheMARIE
architecture,amemorytutorialandsimulator,
tutorialsoftwareandmoreareprovidedonthe
book’swebsite.
CoverstheACM-IEEEComputingCurricula2001topics
forOrganization&Architecture:
AR1.Digitallogicanddigitalsystems
AR2.Machine-levelrepresentationofdata
AR3.Assembly-levelmachineorganization
AR4.Memorysystemorganizationandarchitecture
AR5.Interfacingandcommunication
AR6.Functionalorganization
AR7.Multiprocessingandalternativearchitectures

AR8.Performanceenhancements


AR9.Architecturefornetworksanddistributed
systems






TheEssentialsofComputerOrganizationand
Architecture
LindaNullJuliaLobur
WorldHeadquarters
JonesandBartlettPublishers
40TallPineDrive
Sudbury,MA01776
978-443-5000

www.jbpub.com
JonesandBartlettPublishersCanada
2406NikannaRoad
Mississauga,ONL5C2W6
CANADA
JonesandBartlettPublishersInternational
BarbHouse,BarbMews
LondonW67PA
UK
Copyright©2003byJonesandBartlettPublishers,Inc.

Coverimage©DavidBuffington/GettyImages
IllustrationsbaseduponanddrawnfromartprovidedbyJuliaLobur
LibraryofCongressCataloging-in-PublicationData
Null,Linda.
Theessentialsofcomputerorganizationandarchitecture/Linda
Null,JuliaLobur.
p.cm.
ISBN0-7637-0444-X
1.Computerorganization.2.Computerarchitecture.I.Lobur,


Julia.II.Title.

QA76.9.C643N852003
004.2'2—dc21
2002040576
Allrightsreserved.Nopartofthematerialprotectedbythiscopyright
noticemaybereproducedorutilizedinanyform,electronicor
mechanical,includingphotocopying,recording,oranyinformation
storageorretrievalsystem,withoutwrittenpermissionfromthecopyright
owner.
ChiefExecutiveOfficer:ClaytonJones
ChiefOperatingOfficer:DonW.Jones,Jr.
ExecutiveV.P.andPublisher:RobertW.Holland,Jr.
V.P.,DesignandProduction:AnneSpencer
V.P.,ManufacturingandInventoryControl:ThereseBrauer
Director,SalesandMarketing:WilliarnKane
Editor-in-Chief,College:J.MichaelStranz
ProductionManager:AmyRose
SeniorMarketingManager:NathanSchultz

AssociateProductionEditor:KarenFerreira
AssociateEditor:TheresaDiDonato
ProductionAssistant:JennyMcIsaac
CoverDesign:KristinOhlin
Composition:NortheastCompositors
TextDesign:AnneFlanagan
PrintingandBinding:CourierWestford
Coverprinting:JaguarAdvancedGraphics
ThisbookwastypesetinQuark4.1onaMacintoshG4.Thefontfamilies
usedwereRotisSansSerif,RotisSerif,andPrestigeElite.Thefirst
printingwasprintedon45#HighlandPlus.
070605040310987654321
Inmemoryofmyfather,MerrillCornell,apilotandmanofendlesstalent
andcourage,whotaughtmethatwhenwestepintotheunknown,we


eitherfindsolidground,orwelearntofly.
-L.M.N.
Tothelovingmemoryofmymother,AnnaJ.Surowski,whomadeall
thingspossibleforhergirls.
-J.M.L.







Preface



TotheStudent
Thisisabookaboutcomputerorganizationandarchitecture.Itfocuses
onthefunctionanddesignofthevariouscomponentsnecessaryto
processinformationdigitally.Wepresentcomputingsystemsasaseries
oflayers,startingwithlow-levelhardwareandprogressingtohigher-level
softwareincludingassemblersandoperatingsystems.Theselevels
constituteahierarchyofvirtualmachines.Thestudyofcomputer
organizationfocusesonthishierarchy,andtheissuesinvolvedwithhow
wepartitionthelevelsandhoweachlevelisimplemented.Thestudyof
computerarchitecturefocusesontheinterfacebetweenhardwareand
software,andemphasizesthestructureandbehaviorofthesystem.The
majorityofinformationcontainedinthistextbookisdevotedtocomputer
hardware,andcomputerorganizationandarchitecture,andtheir
relationshiptosoftwareperformance.
Studentsinvariablyask,"Why,ifIamacomputersciencemajor,mustI
learnaboutcomputerhardware?Isn'tthatforcomputerengineers?Why
doIcarewhattheinsideofacomputerlookslike?"Ascomputerusers,
weprobablydonothavetoworryaboutthisanymorethanweneedto
knowwhatourcarlookslikeunderthehoodinordertodriveit.Wecan
certainlywritehigh-levellanguageprogramswithoutunderstandinghow
theseprogramsexecute;wecanusevariousapplicationpackages
withoutunderstandinghowtheyreallywork.Butwhathappenswhenthe
programwehavewrittenneedstobefasterandmoreefficient,orthe
applicationweareusingdoesn'tdopreciselywhatwewant?As
computerscientists,weneedabasicunderstandingofthecomputer
systemitselfinordertoremedytheseproblems.
Thereisafundamentalrelationshipbetweenthecomputerhardwareand
themanyaspectsofprogrammingandsoftwarecomponentsincomputer
systems.Inordertowritegoodsoftware,itisveryimportantto

understandthecomputersystemasawhole.Understandinghardware
canhelpyouexplainthemysteriouserrorsthatsometimescreepinto
yourprograms,suchastheinfamoussegmentationfaultorbuserror.
Thelevelofknowledgeaboutcomputerorganizationandcomputer


architecturethatahigh-levelprogrammermusthavedependsonthetask
thehigh-levelprogrammerisattemptingtocomplete.
Forexample,towritecompilers,youmustunderstandtheparticular
hardwareyouarecompilingto.Someoftheideasusedinhardware
(suchaspipelining)canbeadaptedtocompilationtechniques,thus
makingthecompilerfasterandmoreefficient.Tomodellarge,complex,
real-worldsystems,youmustunderstandhowfloating-pointarithmetic
shouldanddoeswork(whicharenotnecessarilythesamething).To
writedevicedriversforvideo,disks,orotherI/Odevices,youneeda
goodunderstandingofI/Ointerfacingandcomputerarchitecturein
general.Ifyouwanttoworkonembeddedsystems,whichareusually
veryresource-constrained,youmustunderstandallofthetime,space,
andpricetradeoffs.Todoresearchon,andmakerecommendationsfor,
hardwaresystems,networks,orspecificalgorithms,youmustacquirean
understandingofbenchmarkingandthenlearnhowtoadequately
presentperformanceresults.Beforebuyinghardware,youneedto
understandbenchmarkingandallofthewaysinwhichotherscan
manipulatetheperformanceresultsto"prove"thatonesystemisbetter
thananother.Regardlessofourparticularareaofexpertise,ascomputer
scientists,itisimperativethatweunderstandhowhardwareinteractswith
software.
Youmayalsobewonderingwhyabookwiththewordessentialsinits
titlewouldbesolarge.Thereasonistwofold.First,thesubjectof
computerorganizationisexpansiveanditgrowsbytheday.Second,

thereislittleagreementastowhichtopicsfromwithinthisburgeoning
seaofinformationaretrulyessentialandwhicharejusthelpfultoknow.
Inwritingthisbook,onegoalwastoprovideaconcisetextcompliantwith
thecomputerarchitecturecurriculumguidelinesjointlypublishedbythe
AssociationforComputingMachinery(ACM)andtheInstituteof
ElectricalandElectronicEngineers(IEEE).Theseguidelinesencompass
thesubjectmatterthatexpertsagreeconstitutesthe"essential"core
bodyofknowledgerelevanttothesubjectofcomputerorganizationand
architecture.
WehaveaugmentedtheACM/IEEErecommendationswithsubject
matterthatwefeelisuseful-ifnotessential-toyourcontinuingcomputer


sciencestudiesandtoyourprofessionaladvancement.Wehave
includedsometopicsbecausewefeelthatanunderstandingofthis
materialwillhelpinyourcontinuingcomputersciencestudies,including
operatingsystems,compilers,databasemanagement,anddata
communications.Othersubjectsareincludedbecausetheywillhelpyou
understandhowactualsystemsworkinreallife.
Wehopethatyoufindreadingthisbookanenjoyableexperience,and
thatyoutaketimetodelvedeeperintosomeofthematerialthatwehave
presented.Itisourintentionthatthisbookwillserveasauseful
referencelongafteryourformalcourseiscomplete.Althoughwegive
youasubstantialamountofinformation,itisonlyafoundationupon
whichyoucanbuildthroughouttheremainderofyourstudiesandyour
career.Successfulcomputerprofessionalscontinuallyaddtotheir
knowledgeabouthowcomputerswork.Welcometothestartofyour
journey.








TotheInstructor
AbouttheBook
Thisbookistheoutgrowthoftwocomputerscienceorganizationand
architectureclassestaughtatThePennsylvaniaStateUniversity
Harrisburgcampus.Asthecomputersciencecurriculumevolved,we
founditnecessarynotonlytomodifythematerialtaughtinthecourses
butalsotocondensethecoursesfromatwosemestersequenceintoa
threecredit,onesemestercourse.Manyotherschoolshavealso
recognizedtheneedtocompressmaterialinordertomakeroomfor
emergingtopics.Thisnewcourse,aswellasthistextbook,isprimarilyfor
computersciencemajorsandisintendedtoaddressthetopicsin
computerorganizationandarchitecturewithwhichcomputerscience
majors,inouropinion,mustbefamiliar.Thisbooknotonlyintegratesthe
underlyingprinciplesintheseareas,italsointroducesandmotivatesthe
topics,providingthebreadthnecessaryformajors,whileprovidingthe
depthnecessaryforcontinuingstudiesincomputerscience.
Ourprimaryobjectiveinwritingthisbookistochangethewaycomputer
organizationandarchitecturearetypicallytaught.Acomputerscience
majorshouldleaveacomputerorganizationandarchitectureclasswith
notonlyanunderstandingoftheimportantgeneralconceptsonwhichthe
digitalcomputerisfounded,butalsowithacomprehensionofhowthose
conceptsapplytotherealworld.Theseconceptsshouldtranscend
vendor-specificterminologyanddesign;infact,studentsshouldbeable
totakeconceptsgiveninthespecificandtranslatetothegenericand
viceversa.Inaddition,studentsmustdevelopafirmfoundationfor

furtherstudyinthemajor.
Thetitleofourbook,TheEssentialsofComputerOrganizationand
Architecture,isintendedtoconveythatthetopicspresentedinthetext
arethoseforwhicheverycomputersciencemajorshouldhaveexposure,
familiarity,ormastery.Wedonotexpectstudentsusingourtextbookto
havecompletemasteryofalltopicspresented.Itisourfirmbelief,
however,thattherearecertaintopicsthatmustbemastered;thereare
thosetopicsforwhichstudentsmusthaveadefinitefamiliarity;andthere


arecertaintopicsforwhichabriefintroductionandexposureare
adequate.
Wedonotfeelthatconceptspresentedinsufficientdepthcanbelearned
bystudyinggeneralprinciplesinisolation.Wethereforepresentthe
topicsasanintegratedsetofsolutions,notsimplyacollectionof
individualpiecesofinformation.Wefeelourexplanations,examples,
exercises,tutorials,andsimulatorsallcombinetoprovidethestudent
withatotallearningexperiencethatexposestheinnerworkingsofa
moderndigitalcomputerattheappropriatelevel.
Wehavewrittenthistextbookinaninformalstyle,omittingunnecessary
jargon,writingclearlyandconcisely,andavoidingunnecessary
abstraction,inhopesofincreasingstudententhusiasm.Wehavealso
broadenedtherangeoftopicstypicallyfoundinafirst-levelarchitecture
booktoincludesystemsoftware,abrieftourofoperatingsystems,
performanceissues,alternativearchitectures,andaconciseintroduction
tonetworking,asthesetopicsareintimatelyrelatedtocomputer
hardware.Likemostbooks,wehavechosenanarchitecturalmodel,but
itisonethatwehavedesignedwithsimplicityinmind.

RelationshiptoComputingCurricula2001

TheACM/IEEEJointTaskForcerecentlyunveiledthenew2001
ComputingCurricula(CC-2001).Thesenewguidelinesrepresentthefirst
majorrevisionsincetheverypopularComputingCurricula1991.CC2001representsseveralmajorchangesfromCC-1991,butwearemainly
concernedwiththosethataddresscomputerorganizationandcomputer
architecture.CC-1991suggestedapproximately59lecturehoursfor
architecture(definedasbothorganizationandarchitectureandlabeled
AR),includingthefollowingtopics:digitallogic,digitalsystems,machinelevelrepresentationofdata,assembly-levelmachineorganization,
memorysystemorganizationandarchitecture,interfacingand
communication,andalternativearchitectures.ThelatestreleaseofCC2001(availableatwww.computer.org/education/cc2001/)reduces
architecturecoverageto36corehours,includingdigitallogicanddigital
systems(3hours),machine-levelrepresentationofdata(3hours),
assembly-levelmachineorganization(9hours),memorysystem


organizationandarchitecture(5hours),interfacingandcommunication(3
hours),functionalorganization(7hours),andmultiprocessingand
alternativearchitectures(3hours).Inaddition,CC-2001suggests
includingperformanceenhancementsandarchitecturesfornetworksand
distributedsystemsaspartofthearchitectureandorganizationmodule
forCC-2001.Wewerepleased,aftercompletelyrevisingourcourseand
writingthistextbook,thatournewmaterialwasindirectcorrelationwith
theACM/IEEE2001Curriculumguidelinesforcomputerorganizationand
architectureasfollows:
AR1.

Digitallogicanddigitalsystems(core):Chapters1and3

AR2.

Machine-levelrepresentationofdata(core):Chapter2


AR3.

Assembly-levelmachineorganization(core):Chapters4,
5and6

AR4.

Memorysystemorganizationandarchitecture(core):
Chapter6

AR5.

Interfacingandcommunication(core):Chapter7

AR6.

Functionalorganization(core):Chapters4and5

AR7.

Multiprocessingandalternativearchitectures(core):
Chapter9

AR8.

Performanceenhancements(elective):Chapters9and
10

AR9.


Architecturefornetworksanddistributedsystems
(elective):Chapter11

Whyanothertext?
Noonecandenythereisaplethoraoftextbooksforteachingcomputer
organizationandarchitecturealreadyonthemarket.Inour25-plusyears
ofteachingthesecourses,wehaveusedmanyverygoodtextbooks.
However,eachtimewehavetaughtthecourse,thecontenthasevolved,
and,eventually,wediscoveredwewerewritingsignificantlymorecourse
notestobridgethegapbetweenthematerialinthetextbookandthe


materialwedeemednecessarytopresentinourclasses.Wefoundthat
ourcoursematerialwasmigratingfromacomputerengineeringapproach
toorganizationandarchitecturetowardsacomputerscienceapproachto
thesetopics.Whenthedecisionwasmadetofoldtheorganizationclass
andthearchitectureclassintoonecourse,wesimplycouldnotfinda
textbookthatcoveredthematerialwefeltwasnecessaryforourmajors,
writtenfromacomputersciencepointofview,writtenwithoutmachinespecificterminology,anddesignedtomotivatethetopicsbeforecovering
them.
Inthistextbook,wehopetoconveythespiritofdesignusedinthe
developmentofmoderncomputingsystemsandwhatimpactthishason
computersciencestudents.Students,however,musthaveastrong
understandingofthebasicconceptsbeforetheycanunderstandand
appreciatethenon-tangibleaspectsofdesign.Mostorganizationand
architecturetextbookspresentasimilarsubsetoftechnicalinformation
regardingthesebasics.We,however,payparticularattentiontothelevel
atwhichtheinformationshouldbecovered,andtopresentingthat
informationinthecontextthathasrelevanceforcomputerscience

students.Forexample,throughoutthisbook,whenconcreteexamples
arenecessary,weofferexamplesforpersonalcomputers,enterprise
systems,andmainframes,asthesearethetypesofsystemsmostlikely
tobeencountered.Weavoidthe"PCbias"prevalentinsimilarbooksin
thehopethatstudentswillgainanappreciationforthedifferences,
similarities,andtherolesvariousplatformsplaywithintoday'sautomated
infrastructures.Toooften,textbooksforgetthatmotivationis,perhaps,
thesinglemostimportantkeyinlearning.Tothatend,weincludemany
real-worldexamples,whileattemptingtomaintainabalancebetween
theoryandapplication.

Features
Wehaveincludedmanyfeaturesinthistextbooktoemphasizethe
variousconceptsincomputerorganizationandarchitectureandtomake
thematerialmoreaccessibletostudents.Someofthefeaturesarelisted
below:
Sidebars.Thesesidebarsincludeinterestingtidbitsofinformation


thatgoastepbeyondthemainfocusofthechapter,thusallowing
readerstodelvefurtherintothematerial.
Real-WorldExamples.Wehaveintegratedthetextbookwith
examplesfromreallifetogivestudentsabetterunderstandingof
howtechnologyandtechniquesarecombinedforpractical
purposes.
ChapterSummaries.Thesesectionsprovidebriefyetconcise
summariesofthemainpointsineachchapter.
FurtherReading.Thesesectionslistadditionalsourcesforthose
readerswhowishtoinvestigateanyofthetopicsinmoredetail,
andcontainreferencestodefinitivepapersandbooksrelatedto

thechaptertopics.
ReviewQuestions.Eachchaptercontainsasetofreview
questionsdesignedtoensurethatthereaderhasafirmgraspof
thematerial.
ChapterExercises.Eachchapterhasabroadselectionof
exercisestoreinforcetheideaspresented.Morechallenging
exercisesaremarkedwithanasterisk.
AnswerstoSelectedExercises.Toensurestudentsareonthe
righttrack,weprovideanswerstorepresentativequestionsfrom
eachchapter.Questionswithanswersinthebackofthetextare
markedwithabluediamond.
Special"FocusOn"Sections.Thesesectionsprovideadditional
informationforinstructorswhomaywishtocovercertain
concepts,suchasKmapsandoptimization,inmoredetail.
Additionalexercisesareprovidedforthesesectionsaswell.
Appendix.Theappendixprovidesabriefintroductionorreviewof
datastructures,includingtopicssuchasstacks,linkedlists,and
trees.
Glossary.Anextensiveglossaryincludesbriefdefinitionsofall


keytermsfromthechapters.
Index.Anexhaustiveindexisprovidedwiththisbook,with
multiplecross-references,tomakefindingtermsandconcepts
easierforthereader.

AbouttheAuthors
Webringtothistextbooknotonly25-plusyearsofcombinedteaching
experience,butalso20yearsofindustryexperience.Ourcombined
effortsthereforestresstheunderlyingprinciplesofcomputerorganization

andarchitecture,andhowthesetopicsrelateinpractice.Weincludereal
lifeexamplestohelpstudentsappreciatehowthesefundamental
conceptsareappliedintheworldofcomputing.
LindaNullreceivedaPh.D.inComputerSciencefromIowaState
Universityin1991,anM.S.inComputerSciencefromIowaState
Universityin1989,anM.S.inComputerScienceEducationfrom
NorthwestMissouriStateUniversityin1983,anM.S.inMathematics
EducationfromNorthwestMissouriStateUniversityin1980,andaB.S.
inMathematicsandEnglishfromNorthwestMissouriStateUniversityin
1977.Shehasbeenteachingmathematicsandcomputersciencefor
over25yearsandiscurrentlytheComputerSciencegraduateprogram
coordinatoratThePennsylvaniaStateUniversityHarrisburgcampus,
whereshehasbeenamemberofthefacultysince1995.Herareasof
interestincludecomputerorganizationandarchitecture,operating
systems,andcomputersecurity.
JuliaLoburhasbeenapractitionerinthecomputerindustryforover20
years.Shehasheldpositionsasasystemsconsultant,astaff
programmer/analyst,asystemsandnetworkdesigner,andasoftware
developmentmanager,inadditiontopart-timeteachingduties.

Prerequisites
Thetypicalbackgroundnecessaryforastudentusingthistextbook
includesayearofprogrammingexperienceusingahigh-levelprocedural
language.Studentsarealsoexpectedtohavetakenayearofcollege-


levelmathematics(calculusordiscretemathematics),asthistextbook
assumesandincorporatesthesemathematicalconcepts.Thisbook
assumesnopriorknowledgeofcomputerhardware.
Acomputerorganizationandarchitectureclassiscustomarilya

prerequisiteforanundergraduateoperatingsystemsclass(students
mustknowaboutthememoryhierarchy,concurrency,exceptions,and
interrupts),compilers(studentsmustknowaboutinstructionsets,
memoryaddressing,andlinking),networking(studentsmustunderstand
thehardwareofasystembeforeattemptingtounderstandthenetwork
thattiesthesecomponentstogether),andofcourse,anyadvanced
architectureclass.Thistextcoversthetopicsnecessaryforthese
courses.

GeneralOrganizationandCoverage
Ourpresentationofconceptsinthistextbookisanattemptataconcise,
yetthorough,coverageofthetopicswefeelareessentialforthe
computersciencemajor.Wedonotfeelthebestwaytodothisisby
"compartmentalizing"thevarioustopics;therefore,wehavechosena
structured,yetintegratedapproachwhereeachtopiciscoveredinthe
contextoftheentirecomputersystem.
Aswithmanypopulartexts,wehavetakenabottom-upapproach,
startingwiththedigitallogiclevelandbuildingtotheapplicationlevelthat
studentsshouldbefamiliarwithbeforestartingtheclass.Thetextis
carefullystructuredsothatthereaderunderstandsonelevelbefore
movingontothenext.Bythetimethereaderreachestheapplication
level,allofthenecessaryconceptsincomputerorganizationand
architecturehavebeenpresented.Ourgoalistoallowthestudentstotie
thehardwareknowledgecoveredinthisbooktotheconceptslearnedin
theirintroductoryprogrammingclasses,resultinginacompleteand
thoroughpictureofhowhardwareandsoftwarefittogether.Ultimately,
theextentofhardwareunderstandinghasasignificantinfluenceon
softwaredesignandperformance.Ifstudentscanbuildafirmfoundation
inhardwarefundamentals,thiswillgoalongwaytowardshelpingthem
tobecomebettercomputerscientists.



Theconceptsincomputerorganizationandarchitectureareintegralto
manyoftheeverydaytasksthatcomputerprofessionalsperform.To
addressthenumerousareasinwhichacomputerprofessionalshouldbe
educated,wehavetakenahigh-levellookatcomputerarchitecture,
providinglow-levelcoverageonlywhendeemednecessaryforan
understandingofaspecificconcept.Forexample,whendiscussingISAs,
manyhardware-dependentissuesareintroducedinthecontextof
differentcasestudiestobothdifferentiateandreinforcetheissues
associatedwithISAdesign.
Thetextisdividedintoelevenchaptersandanappendixasfollows:
Chapter1providesahistoricaloverviewofcomputingingeneral,
pointingoutthemanymilestonesinthedevelopmentof
computingsystems,andallowingthereadertovisualizehowwe
arrivedatthecurrentstateofcomputing.Thischapterintroduces
thenecessaryterminology,thebasiccomponentsinacomputer
system,thevariouslogicallevelsofacomputersystem,andthe
vonNeumanncomputermodel.Itprovidesahigh-levelviewof
thecomputersystem,aswellasthemotivationandnecessary
conceptsforfurtherstudy.
Chapter2providesthoroughcoverageofthevariousmeans
computersusetorepresentbothnumericalandcharacter
information.Addition,subtraction,multiplicationanddivisionare
coveredoncethereaderhasbeenexposedtonumberbasesand
thetypicalnumericrepresentationtechniques,includingone's
complement,two'scomplement,andBCD.Inaddition,EBCDIC,
ASCII,andUnicodecharacterrepresentationsareaddressed.
Fixedandfloatingpointrepresentationarealsointroduced.
Codesfordatarecordinganderrordetectionandcorrectionare

coveredbriefly.
Chapter3isaclassicpresentationofdigitallogicandhowit
relatestoBooleanalgebra.Thischaptercoversboth
combinationalandsequentiallogicinsufficientdetailtoallowthe
readertounderstandthelogicalmakeupofmorecomplicated
MSI(mediumscaleintegration)circuits(suchasdecoders).More


complexcircuits,suchasbusesandmemory,arealsoincluded.
WehaveincludedoptimizationandKmapsinaspecial"Focus
On"section.
Chapter4illustratesbasiccomputerorganizationandintroduces
manyfundamentalconcepts,includingthefetch-decode-execute
cycle,thedatapath,clocksandbuses,registertransfernotation,
andofcourse,theCPU.Averysimplearchitecture,MARIE,and
itsISAarepresentedtoallowthereadertogainafull
understandingofthebasicarchitecturalorganizationinvolvedin
programexecution.MARIEexhibitstheclassicalvonNeumann
design,andincludesaprogramcounter,anaccumulator,an
instructionregister,4096bytesofmemory,andtwoaddressing
modes.Assemblylanguageprogrammingisintroducedto
reinforcetheconceptsofinstructionformat,instructionmode,
dataformat,andcontrolthatarepresentedearlier.Thisisnotan
assemblylanguagetextbookandwasnotdesignedtoprovidea
practicalcourseinassemblylanguageprogramming.Theprimary
objectiveinintroducingassemblyistofurthertheunderstanding
ofcomputerarchitectureingeneral.However,asimulatorfor
MARIEisprovidedsoassemblylanguageprogramscanbe
written,assembled,andrunontheMARIEarchitecture.Thetwo
methodsofcontrol,hardwiringandmicroprogramming,are

introducedandcomparedinthischapter.Finally,IntelandMIPS
architecturesarecomparedtoreinforcetheconceptsinthe
chapter.
Chapter5providesacloserlookatinstructionsetarchitectures,
includinginstructionformats,instructiontypes,andaddressing
modes.Instruction-levelpipeliningisintroducedaswell.RealworldISAs(includingIntel,MIPS,andJava)arepresentedto
reinforcetheconceptspresentedinthechapter.
Chapter6coversbasicmemoryconcepts,suchasRAMandthe
variousmemorydevices,andalsoaddressesthemoreadvanced
conceptsofthememoryhierarchy,includingcachememoryand
virtualmemory.Thischaptergivesathoroughpresentationof
directmapping,associativemapping,andset-associative


mappingtechniquesforcache.Italsoprovidesadetailedlookat
overlays,pagingandsegmentation,TLBs,andthevarious
algorithmsanddevicesassociatedwitheach.Atutorialand
simulatorforthischapterisavailable.
Chapter7providesadetailedoverviewofI/Ofundamentals,bus
communicationandprotocols,andtypicalexternalstorage
devices,suchasmagneticandopticaldisks,aswellasthe
variousformatsavailableforeach.DMA,programmedI/O,and
interruptsarecoveredaswell.Inaddition,varioustechniquesfor
exchanginginformationbetweendevicesareintroduced.RAID
architecturesarecoveredindetail,andvariousdatacompression
formatsareintroduced.
Chapter8discussesthevariousprogrammingtoolsavailable
(suchascompilersandassemblers)andtheirrelationshiptothe
architectureofthemachineonwhichtheyarerun.Thegoalof
thischapteristotietheprogrammer'sviewofacomputersystem

withtheactualhardwareandarchitectureoftheunderlying
machine.Inaddition,operatingsystemsareintroduced,butonly
coveredinasmuchdetailasappliestothearchitectureand
organizationofasystem(suchasresourceuseandprotection,
trapsandinterrupts,andvariousotherservices).
Chapter9providesanoverviewofalternativearchitecturesthat
haveemergedinrecentyears.RISC,Flynn'sTaxonomy,parallel
processors,instruction-levelparallelism,multiprocessors,
interconnectionnetworks,sharedmemorysystems,cache
coherence,memorymodels,superscalarmachines,neural
networks,systolicarchitectures,dataflowcomputers,and
distributedarchitecturesarecovered.Ourmainobjectiveinthis
chapteristohelpthereaderrealizewearenotlimitedtothevon
Neumannarchitecture,andtoforcethereadertoconsider
performanceissues,settingthestageforthenextchapter.
Chapter10addressesvariousperformanceanalysisand
managementissues.Thenecessarymathematicalpreliminaries
areintroduced,followedbyadiscussionofMIPS,FLOPS,


×