MultiMulti--Core Core ßßetaetaComputerComputerChristopher Celio & Matt LongChristopher Celio & Matt Long6.111 Spring 20076.111 Spring 2007Project GoalsProject GoalsBuilding a functional multiBuilding a functional multi--core computer core computer around the Beta processor (think 6.004 Labs on around the Beta processor (think 6.004 Labs on steroids)steroids)Visually demonstrate the benefits of multiple Visually demonstrate the benefits of multiple cores with cores with ““The Game of LifeThe Game of Life””Managing access to memory amongst many Beta Managing access to memory amongst many Beta processors via a Memory Manager and possibly processors via a Memory Manager and possibly data caches.data caches.The Game of LifeThe Game of LifeA A ‘‘zerozero--playerplayer’’game, user sets initial game, user sets initial state, then observes cellular evolutionstate, then observes cellular evolutionFor each generation, a cell is either For each generation, a cell is either live live or or deaddeadbased on its number of direct based on its number of direct neighbors in the previous generationneighbors in the previous generationCells evolve indefinitely on an infinite Cells evolve indefinitely on an infinite (in our case 240 x 240) grid(in our case 240 x 240) gridImage courtesy of WikipediaSystem ArchitectureThe 2The 2--Stage RISC Harvard Beta ProcessorStage RISC Harvard Beta ProcessorThe OS & SoftwareThe OS & SoftwareUsing the 6.004 mini OS as a Using the 6.004 mini OS as a starting pointstarting pointSoftware written in Assembly Software written in Assembly and compiled by BSIMand compiled by BSIMPython script creates software.v Python script creates software.v file, which instantiates BRAM file, which instantiates BRAM and initializes the memory to and initializes the memory to the Beta machine codethe Beta machine codeHow will the multiHow will the multi--cores cores communicate? communicate? ShortShort--answer: softwareanswer: softwareEach CPU knows its ID Each CPU knows its ID and total_CPU_Countand total_CPU_CountGame of Life:Game of Life:4 steps per round4 steps per round--Compute all cells (all Compute all cells (all cpuscpusread static image in Memory)read static image in Memory)--Wait (for all to finish)Wait (for all to finish)--Update all cellsUpdate all cells(refresh the static image)(refresh the static image)--WaitWaitImage courtesy of WikipediaDisplay ControllerDisplay ControllerTwo Display ModesTwo Display ModesConsole Mode:Console Mode:Textual: 80 x 40 character display with promptTextual: 80 x 40 character display with promptInteract with the Operating SystemInteract with the Operating SystemLaunch The Game of LifeLaunch The Game of LifeGame Mode:Game Mode:The Game of Life The Game of Life cellular gridcellular gridSystem performance statisticsSystem performance statisticsgenerations/secondgenerations/secondinstructions/secondinstructions/secondprocessor usageprocessor usageVGA Controller ModuleVGA Controller ModuleDriven by a clock with twice the frequency of Driven by a clock with twice the frequency of the VGA pixel clockthe VGA pixel clockAllows memory access and data processing to occur Allows memory access and data processing to occur within each cycle of the pixel clockwithin each cycle of the pixel clockReads display data from character and/or game Reads display data from character and/or game state state RAMsRAMs128 Character ROM128 Character ROMConclusionConclusionQuestions?Questions?Why The Game of Life?Why The Game of Life?Simple, yet computationally intenseSimple, yet computationally intense: Continually : Continually calculate the number of neighbors for each of 50,000+ cells calculate the number of neighbors for each of 50,000+ cells to determine next generationto determine next generationWell suited for a multiWell suited for a multi--core systemcore system: Time needed to : Time needed to compute each generation decreases linearly as more compute each generation decreases linearly as more processors are addedprocessors are addedFun and interesting way to visually observe the benefits of Fun and interesting way to visually observe the benefits of multiple processorsmultiple
View Full Document