Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!oliveb!sun!pepper!cmcmanis From: cmcmanis%pepper@Sun.COM (Chuck McManis) Newsgroups: comp.sys.atari.st Subject: Re: Is this right? Message-ID: <101091@sun.Eng.Sun.COM> Date: 25 Apr 89 19:45:17 GMT References: <8904241544.AA21773@ucbvax.Berkeley.EDU> Sender: news@sun.Eng.Sun.COM Reply-To: cmcmanis@sun.UUCP (Chuck McManis) Organization: Sun Microsystems, Mountain View Lines: 59 In article <8904241544.AA21773@ucbvax.Berkeley.EDU> (Greg Csullog) writes: >Someone please correct me if I am wrong, but my understanding of the 8088, >80286 and 80386 family is that the junior member (the 8088) requires memory >segmentation to work (i.e. 10 banks of 64K). Not exactly. the x86 architecture uses a combination of segment registers and 16 bit offsets to allow programs access to about 256K of ram (anywhere as long it is on a 16 byte [aka a paragraph] boundary). The segment registers can be reloaded to change the 64K area that is available. The segment register contains a 16 bit value that is shifted left by four bits and then added to the "offset" value (immediate, in a register, whatever) so if your segment register contained $C018 you could use it to access $C0180 - $D017F. There are four segment registers in the base architecture CS (code), SS (stack), DS (data), ES (extra often used for globals). Is that more clear? > Even if you have an 80286 or >an 80386, most codes out there are compiled to run on the 8088 and still >use the memory segmentation protocols. True, but the same "segmentation protocols" are available on all members of the family. The 286 and 386 offer additional models that extend the address space to 16M and 4G respectively. > Therefore, even if you have an 80286 or an 80386, with these segmented > codes, you cannot use the true power of the processors - all you can take > advantage of is the faster clock times. Is this right? For the most part. Most PC's out there are running like fast 8086 processors. Some programs like DesqView use the other modes to simulate several fast 8086 processors. > I also understand that Windows 286 and 386 DO take advantage of the newer > processors. Is this right? Yes, Windows does use the 16 bit and 32 bit modes of the processors. This results in a greater speed up than simply emulating a fast 8086. > Seems to me, if you use segmented codes on a 80286 machine, you're > bound to have a lower performance standard than a Mac or an ST with > a 68000 and their codes which are not segmented. Is this right? Yes and no, it is possible to write programs for both architectures that outperform one or the other. The x86 machines do well with string instructions (and hence the dhrystone benchmark) and the 68xxx processors do better when working with large data arrays. At Sun we have a machine based on the 386 called the 386i and several machines based on the 68xxx architecture. Generally, they are about the same speed for the same clock rate. In the PC marketplace, a 68000 will always be faster than an 8088 and about the same speed as a compably equipped '286. When you start using MMU's the x86 architecture saves a clock cycle with it's builtin MMU so you have to compare them to the 68030 rather than the '020. If I were writing a code generator for a compiler I'd rather have a 68xxx or SPARC architecture to write to, but from the users perspective they shouldn't notice a difference. --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you. "A most excellent barbarian ... Genghis Kahn!"