Download presentation
Presentation is loading. Please wait.
Published byBethany Nicholson Modified over 10 years ago
1
Developing a Portable, Open Source Alpha Emulator Camiel Vanderhoeven OpenVMS Advanced Technical Bootcamp May 18-23, Nashua, NH
2
Topics 1. Emulation 2. ES40 Emulator 3. Current problem areas 4. Portability and Open-source 5. Become involved 6. Questions?
3
1. Emulation What it is When to use it How to do it
4
Emulation: Definition An emulator duplicates (provides an emulation of) the functions of one system using a different system, so that the second system behaves like (and appears to be) the first system. This focus on exact reproduction of external behavior is in contrast to some other forms of computer simulation, which can concern an abstract model of the system being simulated.systemcomputer simulation (Wikipedia)
5
Emulation
15
Emulation: Why? Get rid of unsupported hardware Datacenter consolidation Reduce space, power requirements (blades) While: Protecting investment in software
16
Emulation: When? Binary programs w/o source code Obsolete programming languages Software support for obsolete platform Hands-On Education Scenario Testing
17
Emulation: How? Get documentation on original system Technical Reference Manuals Study driver code (Linux, FreeBSD) Beware of hidden features, bugs... Analyse original system Reduce to logical requirements Implement in software Observe behaviour And re-iterate...
18
2. ES40 Emulator How it was done? ES40 Hardware Map Emulator Software Map
19
ES40: How? Start with bare minimum: CPU, SRM console firmware Chipset, memory Serial port Then start adding: IDE controller, disks First boot, then add: Rest of stuff (SCSI, NIC, VGA...)
20
ES40 Internals How the hardware structure of the ES40 maps to the software structure of the Emulator
21
System Block Diagram
26
I/O Block Diagram
39
Software structure
40
Emulator Structure
51
3. Current Problem Areas
52
Current Problem Areas Performance Floating-Point Instructions Multi-CPU Support Access/Alignment faults
53
Performance Issues... Current: Interpretation Each instruction is decoded and executed separately Lots of overhead
54
Performance Issues... Performance has been increased already by: Selective interrupt checking Replacing often-used SRM PALcode routines with C++ code Disabling the Instruction Cache when it is not needed Optimizing the size of the Translation Buffers and keeping MRU (Most Recently Used) information
55
Performance Issues... Future: Dynamic Translation Each instruction is decoded once
56
Dynamic Translation Dynamic translation drawbacks: Very complex Host processor specific code (less portable) Need to keep track of changed code pages For now: First get it working, then get it fast
57
SCSI
59
Floating Point Problems Floating-point implementation is complex 5 different floating-point formats In-memory format differs from in-register Different rounding modes Exception handling, denormals, infinity Emulations “old” code: no exceptions, limited special values “new” code: more complete, but bugs Having CPU-level test suite would really help!
60
Multiple-CPU problems SRM startup may hang Extra CPU’s are seen from SRM and OpenVMS CPU’s fail to initialize in SRM CPU’s never make it into the active set in OpenVMS Solution probably buried somewhere in the SRM specs or source code. Where should the extra CPU’s wait for initialization?
61
Access/Alignment faults Access faults occur during OpenVMS installation, network bootup Alingment faults during boot when they shouldn’t occur. Alignment checking is turned off temporarily.
62
4. Portability and Open Source Portability Open Source resources SourceForge
63
Portability Portability is helped through: Portable libraries: Standard C/C++ libraries Poco (threads, locks, etc.) Pcap (networking) SDL (graphics) Buildchain management UNIX build scripts (autoconf, automake) Generated DCL build scripts
64
Open-Source Resources Compilers etc.: GNU compiler collection (gcc) GNU autotools (autoconf, automake) Websites etc. (collaboration): Usenet (newsgroups) SourceForge.net Ohloh.net (code metrics) Newsletters (like Sue’s)
65
SourceForge SourceForge.net helps out with: Project Website Downloads Version Control Forums Bug Tracking Statistics
66
Downloads tracked by SourceForge
67
ES40: Codebase growth SCSI IDE Threads IDB NIC VGA OSX NIC
68
Become Involved Play with it Contribute Help us out
69
Become Involved: play with it Download the emulator, and Let us know what you think, Let us know what you’d like, Let us know about bugs
70
Become Involved: contribute Submit patches for bugs Submit new code (add devices, for instance) Suggest better ways of doing things
71
Become Involved: help us out Help us get hold of low-level documentation or information Help us get hold of hardware to port to (Anyone willing to donate a real ES40, or an Integrity system?)
72
Questions?
73
Contact Information http://www.es40.org/ e-mail: camiel@es40.org Skype: iamcamiel
74
This presentation is Copyright (c) 2008 by the Camiel Vanderhoeven. Website: http://es40.orghttp://es40.org E-mail : camiel@es40.orgcamiel@es40.org The information contained herein may be freely distributed. The OpenVMS Bootcamp NDA does not apply to this presentation. Permission is granted to copy, distribute and/or modify these documents under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) any later version published by the Free Software Foundation. The GNU Free Documentation License, version 1.2, can be found at http://gnu.org/licenses/fdl-1.2.htmlhttp://gnu.org/licenses/fdl-1.2.html
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.