Multi-Core ßeta ComputerProject GoalsThe Game of LifePowerPoint PresentationThe 2-Stage RISC Harvard Beta ProcessorThe OS & SoftwareHow will the multi-cores communicate?Display ControllerTwo Display ModesVGA Controller ModuleConclusionQuestions?Why The Game of Life?Multi-Core Multi-Core ßßeta eta ComputerComputerChristopher Celio & Matt Christopher Celio & Matt LongLong6.111 Spring 20076.111 Spring 2007Project GoalsProject GoalsBuilding a functional multi-core Building a functional multi-core computer around the Beta processor computer around the Beta processor (think 6.004 Labs on steroids)(think 6.004 Labs on steroids)Visually demonstrate the benefits of Visually demonstrate the benefits of multiple cores with “The Game of multiple cores with “The Game of Life”Life”Managing access to memory amongst Managing access to memory amongst many Beta processors via a Memory many Beta processors via a Memory Manager and possibly data caches.Manager and possibly data caches.The Game of LifeThe Game of LifeA ‘zero-player’ game, user sets A ‘zero-player’ game, user sets initial state, then observes initial state, then observes cellular evolutioncellular evolutionFor each generation, a cell is For each generation, a cell is either either live live or or deaddead based on its based on its number of direct neighbors in number of direct neighbors in the previous generationthe previous generationCells evolve indefinitely on an Cells evolve indefinitely on an infinite (in our case 240 x 240) infinite (in our case 240 x 240) gridgridImage courtesy of WikipediaSystem ArchitectureThe 2-Stage RISC Harvard Beta The 2-Stage RISC Harvard Beta ProcessorProcessorThe OS & SoftwareThe OS & SoftwareUsing the 6.004 mini OS Using the 6.004 mini OS as a starting pointas a starting pointSoftware written in Software written in Assembly and compiled Assembly and compiled by BSIMby BSIMPython script creates Python script creates software.v file, which software.v file, which instantiates BRAM and instantiates BRAM and initializes the memory to initializes the memory to the Beta machine codethe Beta machine codeHow will the multi-cores How will the multi-cores communicate? communicate? Short-answer: softwareShort-answer: 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 cpus read static image in - Compute all cells (all cpus read static image in Memory)Memory)- Wait (for all to finish)- Wait (for all to finish)- Update all cells- Update all cells(refresh the static image)(refresh the static image)- Wait- WaitImage courtesy of WikipediaDisplay ControllerDisplay Controller80 x 40Character RAMDisplayController(VGA)128 CharacterROMchar_code char_datachar_codepositionTo MonitorGame Of LifeStateData from memory managercell_statecell_numTwo 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 Driven by a clock with twice the frequency of the VGA pixel clockfrequency of the VGA pixel clockAllows memory access and data processing Allows memory access and data processing to occur within each cycle of the pixel clockto occur within each cycle of the pixel clockReads display data from character Reads display data from character and/or game state RAMsand/or game state RAMs128 Character ROM128 Character ROMConclusionConclusionQuestions?Questions?Why The Game of Life?Why The Game of Life?Simple, yet computationally intenseSimple, yet computationally intense: : Continually calculate the number of neighbors Continually calculate the number of neighbors for each of 50,000+ cells to determine next for each of 50,000+ cells to determine next generationgenerationWell suited for a multi-core systemWell suited for a multi-core system: Time : Time needed to compute each generation decreases needed to compute each generation decreases linearly as more processors are addedlinearly as more processors are addedFun and interesting way to visually observe Fun and interesting way to visually observe the benefits of multiple processorsthe benefits of multiple
View Full Document