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,