160 likes | 309 Views
COM906 Computer Application Seminar Lecture 1. What is Virtual Platform?. Prof. Taeweon Suh Computer Science Education Korea University. Virtual Platform. Virtual Platform is a software model of a whole computing system
E N D
COM906Computer Application SeminarLecture 1. What is Virtual Platform? Prof. Taeweon Suh Computer Science Education Korea University
Virtual Platform • Virtual Platform is a software model of a whole computing system • Virtual Platform is very widely used for software development much before hardware is ready • The target computing systems have been for SoCs (System-on-chip), but it can be used for future PC systems • Fostered by ESL (Electronics System Level) community • Don’t be confused with Virtual Machine! • VM allows the sharing of the underlying physical machine resources between different virtual machines, each running its own OS • The software layer providing the virtualization is called a virtual machine monitor or hypervisor • x86 provides vmenter and vmexit instructions for virtualization
Software models of new products on your PC Software running on new products SoC product in 2009 Firmware and RTOS porting to SoC Applications on SoC PC system in 2010 BIOS, Firmware and OS development Validation software development Virtual Platform (Cont.) Your PC
Virtual Machine • Example: Xen
SoC Market Dynamics SNUG: Synopsys Users Group Source: Synopsys
SoC Design Challenges Source: TLM2.0 presentation from CoWare
Software Determines Project Schedules Source: Synopsys
Example • Automotive supply chain Source: Synopsys
Advantages of VP • Early software development leading to a better TTM (Time-to-market) Source: Synopsys
Advantages of VP (Cont.) Source: Synopsys
How is it different from simulators? • In a broader sense, all the simulators may be viewed as virtual platform • Benchmarks and testvectors are running on virtual models (simulators) • However, simulators tend to model only specific components rather than a whole system (platform) • For example, Simplescalar doesn’t model peripheral devices. So, it is not feasible to run BIOS, DOS, OS (Windows) • http://www.simplescalar.com/
How fast VP should run? • Performance comparisons & VP requirement • Hardware simulation (RTL) • Concurrent modeling • ~ IPS (Instruction / second) • Hardware emulation • Porting RTLs into reconfigurable machine (array of FPGAs (Field Programmable Gate Array) • KIPS ~ MIPS depending on what you emulate • Virtual platform • ~MIPS • We want to run real-applications on top of OS in reasonable time
How to model VP? • Depending on the level of accuracy you want to achieve and your goal, there are different levels of abstractions • Level of abstractions • Cycle accurate model (CA) • Verification and HDL co-simulation • Architect view model (AV) • Identify and resolve bottlenecks in the organizations of SW and HW architectures • E.g., #of processor required, how different pieces of SV and algorithms will access main memory, what interconnect can deliver the required communication bandwidth • Programmer’s view model (PV, we focus on PV) • Highly abstracted mode • Register accurate model • Functionally correct
What Language to model VP? • Verilog-HDL and VHDL • Used to model cycle-accurate model • Too slow (~IPS depending on complexity) • SystemC with TLM2.0 (Transactional-level Model) • C++ library • Provide the timing support • TLM2.0 provides interoperability and reuse • Can be used to do a cycle-accurate modeling • http://www.systemc.org/home • C, C++ • Used to model PV in general
Focus of this class…. • We are going to talk about x86-based computer system • We want to utilize an existing simulator such as Bochs rather than designing from scratch • This is a project-based class • Students will have individual project of their choice (with Dr. Suh’s approval) or select one of the candidates
Project Candidates • Bochs (PC-emulator) • http://bochs.sourceforge.net/ • Download source code, compile it and run hard-disk images • Add a PCIe device into the model and see if BIOS is recognizing the PCIe device • Probably most easy project! • Use Xen hypervisor to create virtual machine and run Bochs on top of it • http://www.xen.org/ • PTLSim is taking advantage of Xen hypervisor to do a x86 cycle-accurate simulation • http://www.ptlsim.org/ • PTLSim + Bochs’ MCH and ICH models (?) • Other suggestions