Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!uunet!mcsun!cernvax!chx400!chx400!bernina!neptune!inf.ethz.ch!brandis From: brandis@inf.ethz.ch (Marc Brandis) Newsgroups: comp.arch Subject: Re: RISC reaching its limits?!? Message-ID: <25696@neptune.inf.ethz.ch> Date: 20 Feb 91 09:39:50 GMT References: <1991Jan27.214225.26765@csusac.csus.edu> <780025@otter.hpl.hp.com> Sender: news@neptune.inf.ethz.ch Reply-To: brandis@inf.ethz.ch (Marc Brandis) Organization: Departement Informatik, ETH, Zurich Lines: 40 In article <780025@otter.hpl.hp.com> scu@otter.hpl.hp.com (Shankar Unni) writes: >> In article <3416@uc.msc.umn.edu> dwm@msc.edu (Don Mears) writes: >> The most >> surprising feature to me was the hardware string support; IBM justified this >> by pointing out profiling data showing that a large fraction of system time >> is spent in string compares**. >> >Also known as the DHRY instruction; named after a very popular but >ultimately meaningless benchmark :-) :-). It was not only the high number of string compares, but generally the high number of string operations that IBM used as a justification. Whether Dhrystone is a useful benchmark has been the cause of many flame wars and I do not want to raise this again, but indeed there are many programs that contain a lot of string operations. In one of the articles of "RISC System/6000 Technology" they are talking about the compiler, which spends a considerable time in string operations. I do not have profiling data, but I guess that many UNIX utilities contain a lot of string operations too. And you should not forget commercial data processing applications which are known to spend a lot of time in string operations. Talking about string operations and Dhrystone: Some of the benefit of the string operations is lost in the C Dhrystone on the IBM S/6000 because procedures are called for the string operations. In the Pascal version, the string operations are inlined, yielding a significant difference in the rating. On the IBM S/6000 Model 530, I got the following results. Dhrystone 2.1, C, all optimizations turned on 46729.0 Dhrystone 2.1, C, non-optimized 18764.7 Dhrystone 2.1, Pascal, all optimizations turned on 64892.9 Dhrystone 2.1, Pascal, non-optimized 21061.5 I had a look at the code and it was almost identical (no surprise, the optimizer is the same), except for the string operations. Marc-Michael Brandis Computer Systems Laboratory, ETH-Zentrum (Swiss Federal Institute of Technology) CH-8092 Zurich, Switzerland email: brandis@inf.ethz.ch