diff options
Diffstat (limited to 'sim/ppc/README')
-rw-r--r-- | sim/ppc/README | 352 |
1 files changed, 0 insertions, 352 deletions
diff --git a/sim/ppc/README b/sim/ppc/README deleted file mode 100644 index f617fd2..0000000 --- a/sim/ppc/README +++ /dev/null @@ -1,352 +0,0 @@ - - - PSIM 1.0 - Model of the PowerPC Environment - - - Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - - ---------------------------------------------------------------------- - - -PSIM is a program written in extended ANSI-C that implements an -instruction level simulation of the PowerPC environment. - -The PowerPC Architecture is described as having three levels of -compliance: - - UEA - User Environment Architecture - VEA - Virtual Environment Architecture - OEA - Operating Environment Architecture - -PSIM implements all three levels of the PowerPC architecture and, in -addition, includes (for each level) a corresponding simulated run-time -environment. - -In addition, PSIM, to the functional unit level, models the -performance of most of the current PowerPC implementations -(contributed by Michael Meissner). This detailed performance -monitoring (unlike many other simulators) resulting in only a -relatively marginal reduction in the simulators performance. - - -A description of how to build PSIM is contained in the file: - - ftp://ftp.ci.com.au/pub/psim/INSTALL - or ftp://cambridge.cygnus.com/pub/psim/INSTALL - -while an overview of how to use PSIM is in: - - ftp://ftp.ci.com.au/pub/psim/RUN -or ftp://cambridge.cygnus.com/pub/psim/RUN - -This file is found in: - - ftp://ftp.ci.com.au/pub/psim/README -or ftp://cambridge.cygnus.com/pub/psim/README - - -Thanks goes firstly to: - - Corinthian Engineering Pty Ltd - Highland Logic Pty Ltd - Cygnus Support - -who provided the resources needed for making this software available -on the Internet. - -More importantly I'd like to thank the following individuals who each -contributed in their own unique way: - - Allen Briggs, Bett Koch, David Edelsohn, Gordon Irlam, - Michael Meissner, Bob Mercier, Richard Perini, Dale Rahn, - Richard Stallman, Mitchele Walker - - - Andrew Cagney - Feb, 1995 - - - ---------------------------------------------------------------------- - - - What features does PSIM include? - - Monitoring and modeling - - PSIM includes (thanks to Michael Meissner) - a detailed model of most of the PowerPC - implementations to the functional unit level. - - - SMP - - The PowerPC ISA defines SMP synchronizing instructions. - This simulator implements a limited, but functional, - subset of the PowerPC synchronization instructions - behaviour. Programs that restrict their synchronization - primitives to those that work with this functional - sub-set (eg P() and V()) are able to run on the SMP - version of PSIM. - - People intending to use this system should study - the code implementing the lwarx instruction. - - ENDIAN SUPPORT - - PSIM implements the PowerPC's big and little (xor - endian) modes and correctly simulates code that - switches between these two modes. - - In addition, psim can model a true little-endian - machine. - - ISA (Instruction Set Architecture) models - - PSIM includes a model of the UEA, VEA and OEA. This - includes the time base registers (VEA) and HTAB - and BATS (OEA). - - In addition, a preliminary model of the 64 bit - PowerPC architecture is implemented. - - IO Hardware - - PSIM's internals are based around the concept - of a Device Tree. This tree intentionally - resembles that of the Device Tree found in - OpenBoot firmware. PSIM is flexible enough - to allow the user to fully configure this device - tree (and consequently the hardware model) at - run time. - - Run-time environments: - - PSIM's UEA model includes emulation for BSD - based UNIX system calls. - - PSIM's OEA model includes emulation of either: - - o OpenBoot client interface - - o MOTO's BUG interface. - - - Floating point - - Preliminary support for floating point is included. - - - Who would be interested in PSIM? - - o the curious - - Using psim, gdb, gcc and binutils the curious - user can construct an environment that allows - them to play with PowerPC Environment without - the need for real hardware. - - - o the analyst - - PSIM includes many (contributed) monitoring - features which (unlike many other simulators) - do not come with a great penalty in performance. - - Thus the performance analyst is able to use - this simulator to analyse the performance of - the system under test. - - If PSIM doesn't monitor a components of interest, - the source code is freely available, and hence - there is no hinderance to changing things - to meet a specific analysts needs. - - - o the serious SW developer - - PSIM models all three levels of the PowerPC - Architecture: UEA, VEA and OEA. Further, - the internal design is such that PSIM can - be extended to support additional requirements. - - - What performance analysis measurements can PSIM perform? - - Below is the output from a recent analysis run - (contributed by Michael Meissner): - - For the following program: - - long - simple_rand () - { - static unsigned long seed = 47114711; - unsigned long this = seed * 1103515245 + 12345; - seed = this; - /* cut-cut-cut - see the file RUN.psim */ - } - - Here is the current output generated with the -I switch on a P90 - (the compiler used is the development version of GCC with a new - scheduler replacing the old one): - - CPU #1 executed 41,994 AND instructions. - CPU #1 executed 519,785 AND Immediate instructions. - . - . - . - CPU #1 executed 1 System Call instruction. - CPU #1 executed 207,746 XOR instructions. - - CPU #1 executed 23,740,856 cycles. - CPU #1 executed 10,242,780 stalls waiting for data. - CPU #1 executed 1 stall waiting for a function unit. - . - . - . - CPU #1 executed 3,136,229 branch functional unit instructions. - CPU #1 executed 16,949,396 instructions that were accounted for in timing info. - CPU #1 executed 871,920 data reads. - CPU #1 executed 971,926 data writes. - CPU #1 executed 221 icache misses. - CPU #1 executed 16,949,396 instructions in total. - - Simulator speed was 250,731 instructions/second - - - What motivated PSIM? - - As an idea, psim was first discussed seriously during mid - 1994. At that time its main objectives were: - - - o good performance - - Many simulators loose out by only providing - a binary interface to the internals. This - interface eventually becomes a bottle neck - in the simulators performance. - - It was intended that PSIM would avoid this - problem by giving the user access to the - full source code. - - Further, by exploiting the power of modern - compilers it was hoped that PSIM would achieve - good performance with out having to compromise - its internal design. - - - o practical portability - - Rather than try to be portable to every - C compiler on every platform, it was decided - that PSIM would restrict its self to supporting - ANSI compilers that included the extension - of a long long type. - - GCC is one such compiler, consequently PSIM - should be portable to any machine running GCC. - - - o flexibility in its design - - PSIM should allow the user to select the - features required and customise the build - accordingly. By having the source code, - the compiler is able to eliminate any un - used features of the simulator. - - After all, let the compiler do the work. - - - o SMP - - A model that allowed the simulation of - SMP platforms with out the large overhead - often encountered with such models. - - - PSIM achieves each of these objectives. - - - Is PSIM PowerPC Platform (PPCP) (nee CHRP) Compliant? - - No. - - Among other things it does not have an Apple ROM socket. - - - Could PSIM be extended so that it models a CHRP machine? - - Yes. - - PSIM has been designed with the CHRP spec in mind. To model - a CHRP desktop the following would need to be added: - - o An apple ROM socket :-) - - o Model of each of the desktop IO devices - - o An OpenPIC device. - - o RTAS (Run Time Abstraction Services). - - o A fully populated device tree. - - - Is the source code available? - - Yes. - - The source code to PSIM is available under the terms of - the GNU Public Licence. This allows you to distribute - the source code for free but with certain conditions. - - See the file: - - ftp://archie.au/gnu/COPYING - - For details of the terms and conditions. - - - Where do I send bugs or report problems? - - There is a mailing list (subscribe through majordomo@ci.com.au) at: - - powerpc-psim@ci.com.au - - If I get the ftp archive updated I post a note to that mailing list. - In addition your welcome to send bugs or problems either to me or to - that e-mail list. - - This list currently averages zero articles a day. - - - Does PSIM have any limitations or problems? - - PSIM can't run rs6000/AIX binaries - At present PSIM can only - simulate static executables. Since an AIX executable is - never static, PSIM is unable to simulate its execution. - - PSIM is still under development - consequently there are going - to be bugs. - - See the file BUGS (included in the distribution) for any - other outstanding issues. - |