Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site cuae2.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!cuae2!heiby From: heiby@cuae2.UUCP (Heiby) Newsgroups: net.micro.att Subject: Re: 3b2/400 and floating point Message-ID: <1735@cuae2.UUCP> Date: Mon, 13-Jan-86 10:39:18 EST Article-I.D.: cuae2.1735 Posted: Mon Jan 13 10:39:18 1986 Date-Received: Tue, 14-Jan-86 05:44:44 EST References: <2403@gatech.CSNET> Reply-To: heiby@cuae2.UUCP (Heiby) Organization: AT&T - /app/eng, Lisle, IL Lines: 42 There have been several C Compilation Systems (Software Generation Systems) for the 3B2. Issue 1 was released with the first release of UNIX for the 3B2. Issue 2 was released with SVR2. Issue 2 contains a method for floating point arithmetic software routines. This works by putting "illegal" instructions into the instruction stream. When the cpu attempts to execute the instruction, it traps on it. If the program had been compiled with the "-f" option, there is a set of floating point emulation routines that are called to perform the operation. Issue 2 has no knowledge of the Math Accelleration Unit (MAU). With the introduction of the MAU, there is a new version of the CCS available called Issue 3 (3.1 is current). The "-f" option (if accepted at all) does nothing in this issue. All floating point operations are executed by function calls (avoiding the trap overhead). The first time the floating point functions are called, they determine whether or not a MAU is present. If it is, then all floating point operations are executed via MAU instructions. If it is not, then the software emulation routines are executed. Even without the MAU, the performance improvement can be substantial (without the trap and context switching overhead). This compiler will compile on any 3B2 system (SVR2 or later) with or without a MAU. The generated executables will run on any 3B2 system (SVR2 or later) with or without a MAU. You will just see different floating point performance in the generated executables. (My information is that the CCS uses no floating point internally.) Available most recently is "C-FP+", which executes floating point operations via in-line MAU instructions. This saves the function-call overhead and a bit of testing the "MAU-present" flag. I've heard that FP operations really fly when compiled with this compiler. For heavy floating point users this may well be worth getting. The drawback is that the generated executables MUST run on a system with a MAU chip if they do any floating point. In general, as new features are introduced in AT&T hardware or in the UNIX operating system, there will be new CCS issues as needed to support those new features. Whenever SVR3 is announced, there will be a new CCS to support those of its new features that require CCS support. The current (Issue 3) CCS will continue to operate correctly, but will not provide access to those new capabilities as the new CCS will. (The contents of /usr/include/sys are also updated to match the new UNIX release.) -- Ron Heiby {NAC|ihnp4}!cuae2!heiby Moderator: mod.newprod & mod.os.unix AT&T-IS, /app/eng, Lisle, IL (312) 810-6109 "It's Astounding! Time is fleeting! Madness takes its toll!"