Message-ID: <3AC71C18.B9F2235C@ev1.net> Date: Sun, 01 Apr 2001 03:16:25 -0800 From: Charles Richmond Reply-To: richmond@ev1.net Organization: Cannine Computer Center X-Mailer: Mozilla 4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: alt.folklore.computers Subject: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: rsvp-208-187-71-167.ac02.dlls.eli.net X-Trace: newsa.ev1.net 986116867 rsvp-208-187-71-167.ac02.dlls.eli.net (1 Apr 2001 03:21:07 -0600) Lines: 26 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.skycache.com!Cidera!newsa.ev1.net Xref: chonsp.franklin.ch alt.folklore.computers:77816 Charlie Gibbs wrote: > > [snip...] [snip...] [snip...] > > Then there's the Univac System 80's ill-fated MSS (modify storage and > skip) instruction, which made it into early revisions of the assembler > manual before it was "de-conceived". My brain hurts just thinking > about the things that monster was intended to do. (They had their > own versions of instructions to maintain linked lists too.) > The IBM 370 instructions EDMK, ED, TR, TRT, and the memory move instructions were all *very* "CISC-ky" in nature... One could also argue that the pack decimal arithmetic instructions for the IBM 370 were very "CISC-ky". In my limited experience, these are the more "CISC-ky" instructions that I have found... So are there even *more* "CISC-ky" instructions around??? I have heard that the VAX architecture had some...are they the best examples of CISC??? What is the most "CISC" instruction that you have found??? -- +-------------------------------------------------------------+ | Charles and Francis Richmond | +-------------------------------------------------------------+ ###### From: Peter Ingham Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Sun, 01 Apr 2001 22:21:25 +1200 Reply-To: ping@actrix.gen.nz Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> X-Newsreader: Forte Agent 1.8/32.548 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 203.96.55.19 X-Original-NNTP-Posting-Host: 203.96.55.19 X-Trace: 1 Apr 2001 22:35:17 NZST, 203.96.55.19 Lines: 31 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!news.xtra.co.nz!newsfeeds.ihug.co.nz!ihug.co.nz!usenet.net.nz!news.iprolink.co.nz!news.actrix.gen.nz!203.96.55.19 Xref: chonsp.franklin.ch alt.folklore.computers:77808 On Sun, 01 Apr 2001 03:16:25 -0800, Charles Richmond wrote: >Charlie Gibbs wrote: >> >> [snip...] [snip...] [snip...] >> >> Then there's the Univac System 80's ill-fated MSS (modify storage and >> skip) instruction, which made it into early revisions of the assembler >> manual before it was "de-conceived". My brain hurts just thinking >> about the things that monster was intended to do. (They had their >> own versions of instructions to maintain linked lists too.) >> >The IBM 370 instructions EDMK, ED, TR, TRT, and the memory move >instructions were all *very* "CISC-ky" in nature... One could also >argue that the pack decimal arithmetic instructions for the IBM 370 >were very "CISC-ky". In my limited experience, these are the more >"CISC-ky" instructions that I have found... > >So are there even *more* "CISC-ky" instructions around??? I have >heard that the VAX architecture had some...are they the best >examples of CISC??? > >What is the most "CISC" instruction that you have found??? Burroughs B2000/3000 series: Search Linked List Lowest -- Peter S Ingham ping@actrix.gen.nz Lower Hutt, New Zealand ###### From: "The Bakers" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 19 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: Date: Sun, 01 Apr 2001 14:34:05 GMT NNTP-Posting-Host: 12.79.240.136 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc04-news.ops.worldnet.att.net 986135645 12.79.240.136 (Sun, 01 Apr 2001 14:34:05 GMT) NNTP-Posting-Date: Sun, 01 Apr 2001 14:34:05 GMT Organization: AT&T Worldnet Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!wn1feed!worldnet.att.net!135.173.83.71!wnfilter1!worldnet-localpost!bgtnsc04-news.ops.worldnet.att.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77775 "Charles Richmond" wrote in message news:3AC71C18.B9F2235C@ev1.net... > > So are there even *more* "CISC-ky" instructions around??? I have > heard that the VAX architecture had some...are they the best > examples of CISC??? > IIRC, didn't the VAX have an instruction with an assembler mnemonic like "POLY" which was used to numerically evaluate a polynomial ? While not very complex perhaps in terms of decision-making within the instruction, I always thought that was rather CISCy [and intended for a scientific audience, as opposed to, say, a commercial userbase like the 360/370 EDMK.] ###### From: hansl@obygden.liss.pp.se (Hans Liss) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 1 Apr 2001 17:19:06 +0200 Organization: UDAC Lines: 30 Message-ID: <9a7gta$15e@obygden.liss.pp.se> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Reply-To: Hans@liss.pp.se NNTP-Posting-Host: localhost Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news.tele.dk!194.213.69.151!news.algonet.se!algonet!news-sto.telia.net!194.22.194.4.MISMATCH!masternews.telia.net.!newspost.telia.com!news.udac.net!humle.networkc.net!obygden.liss.pp.se!obygden.liss.pp.se!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77773 In article <3AC71C18.B9F2235C@ev1.net>, Charles Richmond wrote: > >So are there even *more* "CISC-ky" instructions around??? I have >heard that the VAX architecture had some...are they the best >examples of CISC??? > >What is the most "CISC" instruction that you have found??? How about EDIT - Extended instruction 004 on the PDP10 processors? I'm not sure whether it was actually implemented, and in that case on what models it was implemented, but it was basically a string editor with pattern matching and substitution, tailored for COBOL and PL/I (according to the manual). Now, why provide 'sed' as a standard operating system feature, when you can put it in the instruction set? EDIT takes parameters like source and destination byte pointers, an address to a "pattern string", and a translation table. The pattern string implements its own sub-instruction set to do the actual work. I've always admired EDIT but I have never tried to use it. Most people I've spoken to have been sure that it was a system call and not an instruction. I suppose there are lots of people here with more firsthand information on EDIT - I'd love to know more about it, like whether anyone ever used it. /Hans ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 93 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 01 Apr 2001 17:24:44 GMT NNTP-Posting-Host: 63.14.54.55 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 986145884 63.14.54.55 (Sun, 01 Apr 2001 10:24:44 PDT) NNTP-Posting-Date: Sun, 01 Apr 2001 10:24:44 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77776 Charles Richmond writes: > The IBM 370 instructions EDMK, ED, TR, TRT, and the memory move > instructions were all *very* "CISC-ky" in nature... One could also > argue that the pack decimal arithmetic instructions for the IBM 370 > were very "CISC-ky". In my limited experience, these are the more > "CISC-ky" instructions that I have found... > > So are there even *more* "CISC-ky" instructions around??? I have > heard that the VAX architecture had some...are they the best > examples of CISC??? > > What is the most "CISC" instruction that you have found??? the original 360/360 start input/output instruction (which was defined to initiate asyncronous operation of complex sequence of processor activity) woodrum's tree instructions for 360/370 descendent sorting instructions http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/A.7 A.7.1 Tree Format Two instructions, COMPARE AND FORM CODEWORD and UPDATE TREE, refer to a tree -- a data structure with a specific format. A tree consists of some number (always odd) of consecutively numbered nodes. Node 1 is the root of the tree. Every node except the root has one parent node in the same tree. Every parent node has two son nodes. Every even-numbered node is the leftson of its parent node, and every odd-numbered node (except node 1) is the rightson of its parent node. Division by two (ignoring remainder) of the node number gives the parent node number. Nodes with sons are also called internal nodes, and nodes without sons are called terminal nodes. Figure A-5 illustrates schematically a 21-node tree with arrows drawn from each parent node to each son node. the whole set of authorization related instructions in the descendents of 360/370. The original 360/370 had SVC ... supervisor call instruction with a numeric parameter that interrupted into the kernel and branched into some service based on the numeric paramemter. This required a huge processing overhead ... but eventualy evolved into a strong domain seperation between non-privileged (aka "problem" state) mode and privileged (aka "supervisor" state) mode. A lot of 360/370 operating system services were provided by library routines that the application would call with a simple branch&link. The authorization infrastructure was to allow some level of granular privilege levels for system services that could be defined such that application programs could call the library system services with nearly the overhead of simple branch&link call but yet providing transition to/from different privilege levels. Things include authorization access to multiple address spaces (i.e. possibly at least different address space for the system services and application program). 5.7.1 Summary These major functions are provided: A maximum of 16 address spaces, including the instruction space, for immediate and simultaneous use by a semiprivileged program; the address spaces are specified by 16 new registers called access registers. Instructions for examining and changing the contents of the access registers. In addition, control and authority mechanisms are incorporated to control these functions. access registers: http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.5 misc. related http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.4 http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.5 the relatively recent introduction of linkage-stack to 360/370 decendents http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.10 http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.11 http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/5.12 -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Path: chonsp.franklin.ch!not-for-mail From: Neil Franklin Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 01 Apr 2001 22:37:07 +0200 Organization: My own Private Self Lines: 47 Message-ID: <6ubsqg2w7g.fsf@chonsp.franklin.ch> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a7gta$15e@obygden.liss.pp.se> NNTP-Posting-Host: chonsp.franklin.ch X-Trace: chonsp.franklin.ch 986157428 372 10.0.3.2 (1 Apr 2001 20:37:08 GMT) X-Complaints-To: news@chonsp.franklin.ch NNTP-Posting-Date: 1 Apr 2001 20:37:08 GMT X-Newsreader: Gnus v5.7/Emacs 20.4 Xref: chonsp.franklin.ch alt.folklore.computers:77835 hansl@obygden.liss.pp.se (Hans Liss) writes: > How about EDIT - Extended instruction 004 on the PDP10 processors? I'm > not sure whether it was actually implemented, and in that case on what > models it was implemented, Introduced on KL-10 CPU, also in KS-10. Not in the older KA-10 and KI-10s. > EDIT takes parameters like source and destination byte pointers, an > address to a "pattern string", and a translation table. The pattern string > implements its own sub-instruction set to do the actual work. When I saw that the first time, my eyes nearly popped out. > I've always admired EDIT but I have never tried to use it. Most people > I've spoken to have been sure that it was a system call and not an > instruction. Nope. It is an real instruction, 2 words: extend: 123xxxxxxxxx edit: 004xxxxxxxxx System calls (MUUOs) are direct 1 word 040xxxxxxxxx to 077xxxxxxxxx. The extend group also has what I remember from, scanning over that part of the manual, to be an decimal (ASCII?) to integer converter and back. > I suppose there are lots of people here with more firsthand information on > EDIT - I'd love to know more about it, like whether anyone ever used it. Cobol compiler most likely. I will als nominate annother CISCyness, in an microprocessor: 68020 and above "CAS2". Insert an element into double linked list - atomically (non interruptable and bus locked against SMP). -- Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer ###### Newsgroups: alt.folklore.computers From: nospam@nowhere.com (Steve Myers) Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Reply-To: nospam@nowhere.com (Steve Myers) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> X-Newsreader: IBM NewsReader/2 v1.2.5 Lines: 66 Message-ID: Date: Sun, 01 Apr 2001 19:55:23 GMT NNTP-Posting-Host: 209.71.57.97 X-Complaints-To: abuse@voicenet.com X-Trace: news2.voicenet.com 986154923 209.71.57.97 (Sun, 01 Apr 2001 15:55:23 EDT) NNTP-Posting-Date: Sun, 01 Apr 2001 15:55:23 EDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!news.gtei.net!news.voicenet.com!news2.voicenet.com.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77944 I never thought of the SVC instruction as being very RISCy. Really, what did it do in S/360? - It stored the PSW, including the 8 bit operand of the instruction, in the defined location for an SVC interrupt. - It loaded a new PSW from the defined location for the SVC new interrupt PSW. It was up to the program started by the SVC new PSW to do things like save registers, and decode the operand. SVC was intended, I think, from the beginning to define a clear separation between program functions and system functions. As machines needed to serialize, that was added to the SVC instruction, and that did cause additional overhead. But the PC instruction, which is the logical replacement for the SVC instruction, also serializes, and that instruction is far less RISCy than SVC. [snip] >The original 360/370 had SVC ... supervisor call instruction with a >numeric parameter that interrupted into the kernel and branched into >some service based on the numeric paramemter. This required a huge >processing overhead ... but eventualy evolved into a strong domain >seperation between non-privileged (aka "problem" state) mode and >privileged (aka "supervisor" state) mode. Mostly data management buffer handling functions for things like GET and PUT. However, the lower level functions like READ, WRITE or CHECK generally executed an SVC instruction each time the service was invoked, even if the use of the instruction was hidden from the user program. > >A lot of 360/370 operating system services were provided by library >routines that the application would call with a simple branch&link. [snip] >Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ The CVD and CVB instuctions have not been mentioned in this thread, but few would consider then RISCy instructions Problem state CICSy instructions in the IBM "mainframe" environment CVB CVD PACK UNPK MVO (when was the last time anyone used that one?) MVN (when was the last time anyone used that one?) MVZ (when was the last time anyone used that one?) TR TRT Update Tree Compare and Form Code Word AP SP MP DP CP ZAP ED EDMK SRP TP (New in z) Any others? -- Steve Myers ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 1 Apr 2001 21:14:53 GMT Organization: The National Capital FreeNet Lines: 15 Message-ID: <9a85od$k0s$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986159693 20508 134.117.136.30 (1 Apr 2001 21:14:53 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 1 Apr 2001 21:14:53 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.stanford.edu!news.kjsl.com!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:77937 Steve Myers (nospam@nowhere.com) writes: ... > MVO (when was the last time anyone used that one?) Circa 1990 > MVN (when was the last time anyone used that one?) " " > MVZ (when was the last time anyone used that one?) " " ... > Update Tree \ > Compare and Form Code Word / It's April 1st, isn't it? ... > > Any others? PO = Punch Operator (and a host of others) ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 1 Apr 2001 21:19:55 GMT Organization: The National Capital FreeNet Lines: 12 Message-ID: <9a861r$kcl$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a7gta$15e@obygden.liss.pp.se> <6ubsqg2w7g.fsf@chonsp.franklin.ch> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986159995 20885 134.117.136.30 (1 Apr 2001 21:19:55 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 1 Apr 2001 21:19:55 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!europa.netcrusader.net!209.130.129.214!nntp.frontiernet.net!nntp.gblx.net!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:77935 Neil Franklin (neil@franklin.ch.remove) writes: > ... > > I will als nominate annother CISCyness, in an microprocessor: > > 68020 and above "CAS2". Insert an element into double linked list - > atomically (non interruptable and bus locked against SMP). In the very early 1970's I was reading the instruction set of a GE machine, and I'm fairly sure there was an instruction along that line. Somebody commented that compiler writers love that kind of instruction. ###### From: "The Bakers" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a85od$k0s$1@freenet9.carleton.ca> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 7 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: Date: Sun, 01 Apr 2001 21:20:31 GMT NNTP-Posting-Host: 12.79.240.67 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc04-news.ops.worldnet.att.net 986160031 12.79.240.67 (Sun, 01 Apr 2001 21:20:31 GMT) NNTP-Posting-Date: Sun, 01 Apr 2001 21:20:31 GMT Organization: AT&T Worldnet Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!wn1feed!worldnet.att.net!135.173.83.72!wnfilter2!worldnet-localpost!bgtnsc04-news.ops.worldnet.att.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77915 Speaking of S/360 & S/370 architectures, didn't the CPUs used by the FAA for Air Traffic Control include an extra instruction or two ...... one was something like Translate Radar Data (probably wrong on the exact name, but it was something like that). How did they fall on the CISC-iness scale ? ###### From: Howard S Shubs Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Sun, 01 Apr 2001 17:24:35 -0400 Organization: MindSpring Enterprises Lines: 9 Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a85od$k0s$1@freenet9.carleton.ca> NNTP-Posting-Host: 3f.32.fc.07 X-Server-Date: 1 Apr 2001 21:24:36 GMT User-Agent: MT-NewsWatcher/3.1 (PPC) X-Face: "S"r{U%bs].&Ud}Pc~~~0a]M:t5l>>EN\1Faw10M9NK1Xq59wo7-"s0S+[{etQorO /Nf-Ci"i9v'MT!R8)J]N[4|2&x1r^Iq&{SB"6dknr0=+6UFb.>+{zMn_1=rw&/V+"d@* ZS5\LoW_ Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news.mindspring.net!hshubs Xref: chonsp.franklin.ch alt.folklore.computers:77982 In article <9a85od$k0s$1@freenet9.carleton.ca>, ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) wrote: > PO = Punch Operator HCF of course -- Howard S Shubs "Run in circles, scream and shout!" "I hope you have good backups!" ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 36 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 02 Apr 2001 01:35:26 GMT NNTP-Posting-Host: 199.174.224.43 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 986175326 199.174.224.43 (Sun, 01 Apr 2001 18:35:26 PDT) NNTP-Posting-Date: Sun, 01 Apr 2001 18:35:26 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!lsanca1-snf1!news.gtei.net!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77906 nospam@nowhere.com (Steve Myers) writes: > I never thought of the SVC instruction as being very RISCy. Really, > what did it do in S/360? > > - It stored the PSW, including the 8 bit operand of the instruction, > in the defined location for an SVC interrupt. > - It loaded a new PSW from the defined location for the SVC new > interrupt PSW. almost all loads of new 360/370 PSW were a very lengthy process because serialization and syncronization of various things under control of PSW bits were involved thruout the machine (both machine interrupts involving new PSW load as well as the load PSW instruction) pending interrupts & conditions, switch from virtual address mode to real address mode, etc. however, the amount of information SVC communicated to the kernel as to the requested service was minimal and so also involved a lot of kernel processing. I believe that work on program call & access register architecture stuff first started in the late '70s ... in part getting library & misc. subsystem stuff out of address space of the application while nearly preserving the efficiencies of branch & link subroutine call ... as well as some additional levels of privlege control (w/o having to do various/full switch thru the kernel). Some amount of the Unix-like stuff with different applications in different address spaces chained together with pipes and message passing ... is do'able with program call & access register stuff (i.e. subroutine linkage/call to application in another address space w/o having to go thru the kernel). -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <3AC80C7D.C9D59D2E@ev1.net> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 42 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 02 Apr 2001 03:51:42 GMT NNTP-Posting-Host: 199.174.230.241 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 986183502 199.174.230.241 (Sun, 01 Apr 2001 20:51:42 PDT) NNTP-Posting-Date: Sun, 01 Apr 2001 20:51:42 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!skynet.be!newsfeed.direct.ca!look.ca!newsfeed1.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77913 Charles Richmond writes: > I recall another very CISC instruction: > > In the 1980's there was a computer company that built machines > tailored for UNIX and C. The company was called HSC, and it was > bought out by Harris Computer before Harris started making their > own UNIX boxen called Nighthawks. (Anyone know what the initials > HSC stood for???) > > Anyways, the HSC computers had a machine instruction that did > what strlen() did for you in C. This instruction would search > memory beginning at the address passed to it, until it found > a zero byte. It would then return the length of the string > (in a register, IIRC). Thus each call to strlen() compiled > inline to a single instruction. note the 360 TRT instuction ... you passed it pointer to a string and a 256byte table ... each byte in the string was used to index the table and if the table entry for that byte was non-zero, the operation would stop pointing at the byte. It could be used to search for not just hex zero ... but any byte value. http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR004/7.5.97 TRT D1(L,B1),D2(B2) [SS] ________ ________ ____ _/__ ____ _/__ | 'DD' | L | B1 | D1 | B2 | D2 | |________|________|____|_/__|____|_/__| 0 8 16 20 32 36 47 The bytes of the first operand are used as eight-bit arguments to select function bytes from a list designated by the second-operand address. The first nonzero function byte is inserted in general register 2, and the related argument address in general register 1. -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### From: don@news.daedalus.co.nz (Don Stokes) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Mon, 2 Apr 2001 04:02:44 +0000 (UTC) Organization: Daedalus Consulting Lines: 69 Message-ID: <9a8tl3$9va$1@raewyn.paradise.net.nz> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> NNTP-Posting-Host: 203-96-144-16.cable.paradise.net.nz X-Trace: raewyn.paradise.net.nz 986184164 10218 203.96.144.16 (2 Apr 2001 04:02:44 GMT) X-Complaints-To: abuse@tsnz.net NNTP-Posting-Date: Mon, 2 Apr 2001 04:02:44 +0000 (UTC) X-Newsreader: trn 4.0-test72 (19 April 1999) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!kanja.arnes.si!news-hub.siol.net!newsfeeds.belnet.be!news.belnet.be!skynet.be!newsfeed01.tsnz.net!news01.tsnz.net!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77949 Charles Richmond wrote: >So are there even *more* "CISC-ky" instructions around??? I have >heard that the VAX architecture had some...are they the best >examples of CISC??? Well, the VAX includes such gems as: POLYx Polynomial evaluation (works with a table of coefficients) CRC Calculate cyclic redundancy check -- this is amusing because it too uses a table lookup, and the table is small. Most folks don't use it; a hand crafted CRC calculation with larger tables is faster. CASEx Bounds check and branch, eg: casel R0, #3, #2 1$: .word target_3 - 1$ ; branch to target_3 of R0 == 3 .word target_4 - 1$ ; branch to target_4 of R0 == 4 .word target_5 - 1$ ; branch to target_5 of R0 == 5 ; fall through if outside range INDEX Calculate array index, with bounds checking EDITPC Move packed decimal to text string, used for COBOL & PL/I output etc Then there's the whole character string bit and the CALLS/CALLG/RET calling machanism that saves registers and sets up pointers to an argument list. One could add stuff like the queue instructions, INSQUE and REMQUE. All this is on top of the rather baroque instruction format, consisting of an optional prefix byte, an opcode byte, some number of operand bytes, each of which may also be preceded by an index byte and/or followed by operand data (which could be a byte, word, longword or 4, 8 or 16 bytes worth of floating point literal). DEC must have burned a lot of engineers out trying to do instruction decode and pipelining logic. And then they went and spoiled the whole thing by having byte offsets on nearly all the conditional branch instructions, leading to abominations like: calls #0, routine ; call routine, no params blbs R0, $1 ; low bit = 1 means OK brw error ; 0 means handle error 1$: ; lots of code error: ; handle error which cost you a pipeline flush while you skipped over the BRW. The less naive among us did dirty things having a "nearby" BRW (unconditional branch, word offset) or BRL (ditto, longword offset) instruction to take us to the error handler, then branching (or whatever) to that, eg: ; check nul-terminated string at (R0) is all digits loop: movb (R0)+, R1 ; Get next character into R1 beql 1$ ; if NULL, we're done cmpb R1, #^A"0" ; < '0'? blss $9 ; yep, oops! This would be a branch ; to error if BLSS had decent sized ; offsets. cmpb R1, #^A"9" ; <= '9'? bleq loop ; yep, go around again 9$: brw error ; come here on error to branch ; to actual error routine. 1$: ; come here when done ; lots of code error: ; handle error The above only pipeline flushes at the bottom of the loop and when it exits; the exception conditions drop through in the normal case. -- don ###### Message-ID: <3AC80C7D.C9D59D2E@ev1.net> Date: Sun, 01 Apr 2001 22:22:04 -0700 From: Charles Richmond Reply-To: richmond@ev1.net Organization: Cannine Computer Center X-Mailer: Mozilla 4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: rsvp-208-187-72-102.ac02.dlls.eli.net X-Trace: newsa.ev1.net 986181612 rsvp-208-187-72-102.ac02.dlls.eli.net (1 Apr 2001 21:20:12 -0600) Lines: 19 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!news-fra1.dfn.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!newsfeed.skycache.com!Cidera!newsa.ev1.net Xref: chonsp.franklin.ch alt.folklore.computers:77981 I recall another very CISC instruction: In the 1980's there was a computer company that built machines tailored for UNIX and C. The company was called HSC, and it was bought out by Harris Computer before Harris started making their own UNIX boxen called Nighthawks. (Anyone know what the initials HSC stood for???) Anyways, the HSC computers had a machine instruction that did what strlen() did for you in C. This instruction would search memory beginning at the address passed to it, until it found a zero byte. It would then return the length of the string (in a register, IIRC). Thus each call to strlen() compiled inline to a single instruction. -- +-------------------------------------------------------------+ | Charles and Francis Richmond | +-------------------------------------------------------------+ ###### From: jmaynard@thebrain.conmicro.cx (Jay Maynard) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 2 Apr 2001 14:55:50 GMT Organization: Neosoft (using Airnews.net!) Lines: 6 Message-ID: X-Orig-Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a85od$k0s$1@freenet9.carleton.ca> Reply-To: jmaynard@conmicro.cx Abuse-Reports-To: abuse at airmail.net to report improper postings NNTP-Proxy-Relay: library1-aux.airnews.net NNTP-Posting-Time: Mon Apr 2 09:55:50 2001 NNTP-Posting-Host: !_ulD1k-Xk.cm'3 (Encoded at Airnews!) User-Agent: slrn/0.9.5.4 (UNIX) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeeds.belnet.be!news.belnet.be!feed2.onemain.com!feed1.onemain.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!wn1feed!worldnet.att.net!24.30.200.2!news-east.rr.com!cyclone-west.rr.com!news.rr.com!news-west.rr.com!cabal10.airnews.net!news.airnews.net!cabal2.airnews.net!news-f.iadfw.net!jmaynard Xref: chonsp.franklin.ch alt.folklore.computers:77862 On 1 Apr 2001 21:14:53 GMT, Heinz W. Wiggeshoff wrote: >> Update Tree \ >> Compare and Form Code Word / It's April 1st, isn't it? These, at least, are real. ###### From: "George R. Gonzalez" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Mon, 2 Apr 2001 15:55:35 -0500 Organization: University of Minnesota, Twin Cities Campus Lines: 81 Message-ID: <9aalrt$feg$1@laurel.tc.umn.edu> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> X-Trace: laurel.tc.umn.edu 986241725 15824 160.94.124.99 (2 Apr 2001 20:02:05 GMT) X-Complaints-To: usenet@laurel.tc.umn.edu X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!upp1.onvoy!msc1.onvoy!onvoy.com!hardy.tc.umn.edu!laurel.tc.umn.edu!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77921 The most complex instruction I can think of was in the CDC Star 100: Invert matrix !! (only handled up to size 8x8 IIRC ) "Don Stokes" wrote in message news:9a8tl3$9va$1@raewyn.paradise.net.nz... > Charles Richmond wrote: > >So are there even *more* "CISC-ky" instructions around??? I have > >heard that the VAX architecture had some...are they the best > >examples of CISC??? > > Well, the VAX includes such gems as: > > POLYx Polynomial evaluation (works with a table of coefficients) > CRC Calculate cyclic redundancy check -- this is amusing because > it too uses a table lookup, and the table is small. Most > folks don't use it; a hand crafted CRC calculation with larger > tables is faster. > CASEx Bounds check and branch, eg: > casel R0, #3, #2 > 1$: .word target_3 - 1$ ; branch to target_3 of R0 == 3 > .word target_4 - 1$ ; branch to target_4 of R0 == 4 > .word target_5 - 1$ ; branch to target_5 of R0 == 5 > ; fall through if outside range > INDEX Calculate array index, with bounds checking > EDITPC Move packed decimal to text string, used for COBOL & PL/I > output etc > > Then there's the whole character string bit and the CALLS/CALLG/RET > calling machanism that saves registers and sets up pointers to an > argument list. One could add stuff like the queue instructions, INSQUE > and REMQUE. > > All this is on top of the rather baroque instruction format, consisting > of an optional prefix byte, an opcode byte, some number of operand > bytes, each of which may also be preceded by an index byte and/or followed > by operand data (which could be a byte, word, longword or 4, 8 or 16 > bytes worth of floating point literal). DEC must have burned a lot of > engineers out trying to do instruction decode and pipelining logic. > > And then they went and spoiled the whole thing by having byte offsets on > nearly all the conditional branch instructions, leading to abominations > like: > > calls #0, routine ; call routine, no params > blbs R0, $1 ; low bit = 1 means OK > brw error ; 0 means handle error > 1$: ; lots of code > error: ; handle error > > which cost you a pipeline flush while you skipped over the BRW. The > less naive among us did dirty things having a "nearby" BRW > (unconditional branch, word offset) or BRL (ditto, longword offset) > instruction to take us to the error handler, then branching (or whatever) > to that, eg: > > ; check nul-terminated string at (R0) is all digits > loop: movb (R0)+, R1 ; Get next character into R1 > beql 1$ ; if NULL, we're done > cmpb R1, #^A"0" ; < '0'? > blss $9 ; yep, oops! This would be a branch > ; to error if BLSS had decent sized > ; offsets. > cmpb R1, #^A"9" ; <= '9'? > bleq loop ; yep, go around again > 9$: brw error ; come here on error to branch > ; to actual error routine. > 1$: ; come here when done > ; lots of code > error: ; handle error > > The above only pipeline flushes at the bottom of the loop and when it > exits; the exception conditions drop through in the normal case. > > -- don ###### From: "Rob Peglar" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 32 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Message-ID: <226y6.19425$aP5.1819855@newsread2.prod.itd.earthlink.net> Date: Mon, 02 Apr 2001 21:19:58 GMT NNTP-Posting-Host: 24.217.57.96 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 986246398 24.217.57.96 (Mon, 02 Apr 2001 14:19:58 PDT) NNTP-Posting-Date: Mon, 02 Apr 2001 14:19:58 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77896 > >So are there even *more* "CISC-ky" instructions around??? I have > >heard that the VAX architecture had some...are they the best > >examples of CISC??? There is little question that the original CDC STAR-100 machine was one of (if not the most) CISC-iest machines ever designed. The machine had 232 instructions in 12 formats. It had branch, index, logical string, nontypical, register, string, sparse vector, vector macro, vector and monitor instruction types. The operands were bits, bytes, words (64-bit) or superwords, or swords (512-bit). One could select, search, move, compare, compress, edit (index), scatter and gather on some or all operand types. Vectors of any of the above operands were legal in most vector instructions. The vector macro operations were the most interesting. Implemented mostly in microcode, the operations (all on vectors) were select (eq, ne, ge, lt) and move item count, average, adjusted mean, delta, sum, product, dot product, transmit indexed, interval, and my favorite, polynomial evaluation. The binary/decimal vector operations were also interesting. I recall doing vector binary divides on 30,000 element vectors as part of a prime number sieve calculation. The operators thought the CPU was hung because a single 0xE3 instruction (binary divide, A/B ->C) took over 30 seconds (!) to complete. Rob ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 2 Apr 2001 21:54:47 GMT Organization: California Institute of Technology, Pasadena Lines: 19 Message-ID: <9aasf7$4ou@gap.cco.caltech.edu> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> NNTP-Posting-Host: seniti.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!canoe.uoregon.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.folklore.computers:77918 Charles Richmond writes: (snip regarding CISCiness.) >So are there even *more* "CISC-ky" instructions around??? I have >heard that the VAX architecture had some...are they the best >examples of CISC??? >What is the most "CISC" instruction that you have found??? The VAX has a polynomial evaluation instruction. The standard libraries don't use it because it is faster to do with regular instructions. The ESA/390 sorting instructions, CFC (compare and form codeword) and UPT (update tree), http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/DZ9AR006/A.7.1 -- glen ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 2 Apr 2001 22:03:32 GMT Organization: California Institute of Technology, Pasadena Lines: 29 Message-ID: <9aasvk$51t@gap.cco.caltech.edu> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> NNTP-Posting-Host: seniti.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!hammer.uoregon.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.folklore.computers:77920 Anne & Lynn Wheeler writes: (snip) >The original 360/370 had SVC ... supervisor call instruction with a >numeric parameter that interrupted into the kernel and branched into >some service based on the numeric paramemter. This required a huge >processing overhead ... but eventualy evolved into a strong domain >seperation between non-privileged (aka "problem" state) mode and >privileged (aka "supervisor" state) mode. >A lot of 360/370 operating system services were provided by library >routines that the application would call with a simple branch&link. While this method does make a lot of sense, some of the reason for it had to do with allocation of memory. The people writing OS/360 were responsible for keeping the memory usage of the part that they were working on down. This results in the memory usage appearing in some other part where no-one is responsible for it. In many cases this was user space. Thus many things ended up in user space that, for security reasons, should have been in OS space. Still, the system of doing as much as possible in program mode and only switching to supervisor mode (through the SVC) at the lowest level of I/O operation, the EXCP macro, to execute the supplied channel program, makes some sense. -- glen ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 2 Apr 2001 22:07:02 GMT Organization: California Institute of Technology, Pasadena Lines: 16 Message-ID: <9aat66$556@gap.cco.caltech.edu> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> NNTP-Posting-Host: seniti.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!canoe.uoregon.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.folklore.computers:77903 "George R. Gonzalez" writes: >The most complex instruction I can think of was in the CDC Star 100: >Invert matrix !! >(only handled up to size 8x8 IIRC ) Not to mention, I believe that the STAR-100 also had decimal floating point, including square root. Would it invert a matrix in decimal float, also? I always mention this machine when a question comes up regarding rounding in binary floating point machines. (why 0.1*10 is not 1.0). -- glen ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 3 Apr 2001 02:09:56 GMT Organization: The National Capital FreeNet Lines: 21 Message-ID: <9abbdk$jfd$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <226y6.19425$aP5.1819855@newsread2.prod.itd.earthlink.net> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986263796 19949 134.117.136.30 (3 Apr 2001 02:09:56 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 3 Apr 2001 02:09:56 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!europa.netcrusader.net!209.130.129.214!nntp.frontiernet.net!nntp.gblx.net!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:77946 "Rob Peglar" (peglarr@earthlink.net) writes: > > There is little question that the original CDC STAR-100 machine was > one of (if not the most) CISC-iest machines ever designed. > > The machine had 232 instructions in 12 formats. ... I remember reading some of the specs of that machine at the time, and it struck me that CDC was betting the company on a sort of Illiac-IV follow-on. Perhaps they invested more in hype than hardware; I've never heard of one delivered to Ottawa. ("And where are they now?") The IBM 370's started to add quite an impressive suite of vector instructions (for a small extra fee, natch) far beyond the early 360-44's MultiplicationSummationProcessor (creeping Java) or the -75's ArrayProcessor. I'm too busy to dig out the System Journal now, but what I thought might have been the cat's meow for APL and PL/1 array work was defiled by the Fortran column-major storage nonsense. (Sigh. And Cobol is still with us too!) ###### From: cjt & trefoil Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 03 Apr 2001 01:02:53 -0500 Organization: Prodigy http://www.prodigy.com Lines: 27 Message-ID: <3AC9678D.EF22FD59@prodigy.net> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <226y6.19425$aP5.1819855@newsread2.prod.itd.earthlink.net> <9abbdk$jfd$1@freenet9.carleton.ca> NNTP-Posting-Host: ip-111-43-111.austin.navipath.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: newssvr06-en0.news.prodigy.com 986277718 2709921 64.111.43.111 (3 Apr 2001 06:01:58 GMT) X-Complaints-To: abuse@prodigy.net NNTP-Posting-Date: 3 Apr 2001 06:01:58 GMT X-Accept-Language: en X-Mailer: Mozilla 4.75 [en] (Win98; U) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!newscon06.news.prodigy.com!newscon01.news.prodigy.com!prodigy.com!newsmst01!postmaster.news.prodigy.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77857 My recollection is that the IBM 360 at the University of Michigan in the late '60's had a custom instruction (i.e. "bespoke" as those in the U.K. might say) for traversing linked lists. "Heinz W. Wiggeshoff" wrote: > > "Rob Peglar" (peglarr@earthlink.net) writes: > > > > There is little question that the original CDC STAR-100 machine was > > one of (if not the most) CISC-iest machines ever designed. > > > > The machine had 232 instructions in 12 formats. > ... > > I remember reading some of the specs of that machine at the time, > and it struck me that CDC was betting the company on a sort of > Illiac-IV follow-on. Perhaps they invested more in hype than > hardware; I've never heard of one delivered to Ottawa. ("And > where are they now?") > > The IBM 370's started to add quite an impressive suite of vector > instructions (for a small extra fee, natch) far beyond the early > 360-44's MultiplicationSummationProcessor (creeping Java) or the > -75's ArrayProcessor. I'm too busy to dig out the System Journal > now, but what I thought might have been the cat's meow for APL and > PL/1 array work was defiled by the Fortran column-major storage > nonsense. (Sigh. And Cobol is still with us too!) ###### From: "GRIMBLE GRUMBLE" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 3 Apr 2001 08:34:38 +0100 Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <226y6.19425$aP5.1819855@newsread2.prod.itd.earthlink.net> <9abbdk$jfd$1@freenet9.carleton.ca> <3AC9678D.EF22FD59@prodigy.net> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Complaints-To: newsabuse@supernews.com Lines: 12 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!logbridge.uoregon.edu!newsfeed.stanford.edu!sn-xit-01!sn-uk-post-01!supernews.com!corp.supernews.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77964 cjt & trefoil wrote in message news:3AC9678D.EF22FD59@prodigy.net... > My recollection is that the IBM 360 at the University of Michigan in > the late '60's had a custom instruction (i.e. "bespoke" as those in the > U.K. might say) for traversing linked lists. ISTR that Perkin Elmer's clone of the IBM instruction set had similar capabilities. ###### From: hnsngr@sirius.com (Ron Hunsinger) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Organization: ErsteSoft Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit X-Newsreader: Yet Another NewsWatcher 2.3.1 Lines: 94 Date: Tue, 03 Apr 2001 01:55:08 -0700 NNTP-Posting-Host: 216.103.86.8 X-Complaints-To: abuse@pacbell.net X-Trace: news.pacbell.net 986288108 216.103.86.8 (Tue, 03 Apr 2001 01:55:08 PDT) NNTP-Posting-Date: Tue, 03 Apr 2001 01:55:08 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!cyclone-sf.pbi.net!206.13.28.143!news.pacbell.net.POSTED!hnsngr Xref: chonsp.franklin.ch alt.folklore.computers:77978 In article <3AC71C18.B9F2235C@ev1.net>, richmond@ev1.net wrote: > What is the most "CISC" instruction that you have found??? My choice would be the rather innocuous VALC (Value Call) instruction on the Burroughs/Unisys Large Series computers. This is 16-bit instruction, that interprets its low-order 14 bits as an address and pushes the value at that location onto the stack. Sounds pretty tame, right? Well, let's look a little closer. First, 14 bits is a trifle short for an address. The instruction splits the bits into two parts, one selecting one of the Display registers to use as a base register, and the remaining bits as an offset from that register. (Display registers point to active stack frames, so the result is an address in a stack frome that is in context at the moment.) How many bits of each? Well, that depends on how many of the D registers are in use at the time. If the program is running at lexical level 3 (registers D0 throuh D3 in use), then you only need two bits to select the register and have 12 available for the offset. If you're at lex level 31 (the maximum allowed), then all 32 D registers are in use, and you have only 9 bits available for the offset. OK. That's minor a minor implementation detail. Things are about to get more interesting. The instruction is supposed to load a value, but this is on a machine where words are tagged to show what they are. What if the word at that address isn't a value? It could be an IRW (indirect reference word) or an SIRW (stuffed indirect reference word). Each of these specifies an address as an offset into a stack frome, as before. The only difference is that the IRW locates the stack frame by specifying a D register, while the SIRW locates the stack frame as a stack number and the offset into the stack. Turning the stack number into an address involves looking up the descriptor for the stack. The hardware knows that the operating system keeps descriptors for all stacks in an array, and that the descriptor for that array is stored at offset 3 from the stack frame at lexical level 0 (that is, the stack frame pointed to by D register 0). Either way, the IRW or SIRW is resolved into an address, and it's the value at THAT location that gets pushed onto the stack. Assuming it is a value of course. If it's an IRW or SIRW, resolve it again. Or, the "value" being loaded could turn out to be a data descriptor. A data descriptor points to an array of words. If it's an indexed data descriptor, bounds checking has already been done, and the index is already stored in the descriptor, along with the base address of the array. Load the value at that offset. If the data descriptor is non-indexed, then it needs to be indexed. To do that, the VALC instruction pops a word off the stack to use as the index, does bounds checking, and loads the value. The value loaded through a data descriptor could be another data descriptor. Try again to turn it into a value, popping as many indexes off the stack as needed to satisy the non-indexed descriptors you run across. So far, this is just slightly CISCy indirect addressing. But we're not done yet. The "value" being loaded could be a PCW (Program Control Word). A PCW points to executable code, in the same way an indexed data descriptor points to data. But code cannot be a value, right? What to do? What the hardware does is call the code as a subroutine. Of course, calling a subroutine requires setting up a stack frame for it. This machine is designed to facilitate ALGOL, which supports nested contexts. The PCW could only have been loaded from a stack frame (pointed to by an IRW or SIRW or by the original VALC instruction). That stack frame becomes the parent of the new stack frame. A special RCW (Return Control Word) is placed in the new stack frame that points back to the VALC instruction. The Display is fixed up so that the D registers point to the now-active stack frames, after putting enough information in the MSCW (Mark Stack Control Word) of the new stack frame to allow the hardware to restore the Display on exit. Then the subroutine is called. The VALC instruction will resume when the subroutine returns, using as its value whatever the subroutine returns. The subroutine could, of course, return some kind of address instead of a value. Continue as before, popping indexes off the stack and invoking subroutines as needed, until you eventually get a value. Push that value on the stack. You're done. The overwhelming majority of the time, the VALC instruction does only what its name implies, simply loading a value. But, when needed, it provides hardware support for ALGOL's call-by-name semantics, where a parameter being passed to a subroutine is actually an expression that needs to be re-evaluated on every access. The caller simply passes an SIRW pointing to the PCW for a subroutine that evaluates the expression. The VALC instruction does the rest. -Ron Hunsinger ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <226y6.19425$aP5.1819855@newsread2.prod.itd.earthlink.net> <9abbdk$jfd$1@freenet9.carleton.ca> <3AC9678D.EF22FD59@prodigy.net> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 15 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 03 Apr 2001 14:54:46 GMT NNTP-Posting-Host: 209.244.77.210 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 986309686 209.244.77.210 (Tue, 03 Apr 2001 07:54:46 PDT) NNTP-Posting-Date: Tue, 03 Apr 2001 07:54:46 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newscore.univie.ac.at!194.25.134.126.MISMATCH!newsfeed01.sul.t-online.de!t-online.de!newsfeed.online.be!feed2.onemain.com!feed1.onemain.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:77891 cjt & trefoil writes: > My recollection is that the IBM 360 at the University of Michigan in > the late '60's had a custom instruction (i.e. "bespoke" as those in the > U.K. might say) for traversing linked lists. Lincoln Labs. Search List (SLT) RPQ for the 360/67 random refs: http://www.garlic.com/~lynn/2001d.html#23 http://www.garlic.com/~lynn/2001c.html#15 -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Path: chonsp.franklin.ch!not-for-mail From: Neil Franklin Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 03 Apr 2001 22:28:16 +0200 Organization: My own Private Self Lines: 105 Message-ID: <6u66glaftr.fsf@chonsp.franklin.ch> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> NNTP-Posting-Host: chonsp.franklin.ch X-Trace: chonsp.franklin.ch 986329696 511 10.0.3.2 (3 Apr 2001 20:28:16 GMT) X-Complaints-To: news@chonsp.franklin.ch NNTP-Posting-Date: 3 Apr 2001 20:28:16 GMT X-Newsreader: Gnus v5.7/Emacs 20.4 Xref: chonsp.franklin.ch alt.folklore.computers:78006 hnsngr@sirius.com (Ron Hunsinger) writes: > In article <3AC71C18.B9F2235C@ev1.net>, richmond@ev1.net wrote: > > > What is the most "CISC" instruction that you have found??? > > My choice would be the rather innocuous VALC (Value Call) instruction on > the Burroughs/Unisys Large Series computers. > > This is 16-bit instruction, that interprets its low-order 14 bits as an > address and pushes the value at that location onto the stack. > > Sounds pretty tame, right? Well, let's look a little closer. ["nice" complexity snipped] If complex varied calls are fair game, this reminds me of the Intel 286 and later FAR JMP/JSR/RET instructions, when in protected mode. On 8088/88 these are all simple 32bit loads that put 16bit into the PC and 16bit into the CS (Code Segment = Code Base) registers. Actual programm address is then CS*16+PC (calculated at every program fetch). PC gets incremented, CS never. Interrupts, exeptions and traps (called software interrupts) are all (device controller, hardwired or software) indexed FAR CALLs into an table of 256 times 4 bytes. On 286 and later, when in protected mode, the 16bits for PC are treated identically. But the others for CS... At the first level they are an 13bit (3 LSBs nulled) index into an 64kByte GDT (Global Descriptor Table), that is 8192 8 byte elements. These elements provide each an 24bit CB (Code Base) value for CB+PC addressing and an 16bit CL (Code Limit) for valid PC values. If the 3rd LSB was 1 though, an additional 16bit LDT (Local Descriptor Table, think one per task) register selects one GDT entry and uses that to address an 64kByte table from which the same 13bits index CB and CL. The remaining 2 LSBs are for privilege level check, involving bits in callee (who is allowed here) and caller (what am I allowed) GDT/LDT entry and these bits (what is requested). So far we have assumed normal type 0 GDT/LDT entries. To jump up in previlege Level (called rings, kernel(0)>drivers(1)>services(2)>user(3)) one must call an CG (Call Gate), which does not describe an memory block at all, rather it contains the real CS and PC for the particular system call entry and the new privilege level. Of course interrupts are in a sense unplanned for (by the running code) system calls (to drivers). For this the interrupt index is used into an 1024byte segment, found by pointing IDT (Interrupt Descriptor Table) into GDT, of FAR CALL addresses to an special IS (Interrupt Segment), that stores the entire processor state into itsself and then provides ISR (Interrupt Service Routine) start address and privilege level. Gives worst case about 1000 clock cycles interrupt latency. IRET (Interrupt RET) is an FAR RET (= FAR JMP to stored address in IS). Task switches (remember LDT for tasks?) are yet annother variant of IS known as TSS (Task Selector Segments). They are normally FAR JMPed to, as no switch back is planned, exit to next task by FAR JMP. And of cource all tables (GDT, LDT, IDT) involved are also segments themselves (special kinds of data segments). Any segment load (CS, or DS for data or SS for stack, ..., or loading GDT, LDT or IDT) can fail on pointing to invalid table entry (each entry has an valid bit) or index out of bound (segment not long enough), thus making an Exeption (which wants its call its IS). This may also fail, so there exists an "Double Fault" exeption and if that faills an "Tripple Fault" state which simply halts the processor and asserts an error pin. On the IBM PC/AT this pin is hardwired to Reset. It is said that this sheme was taken from their 432 32bit processor, that also had an high level typed pointer instruction set. PC Trivia: 286 (unlike 386 and later) can switch from non-protected 8=real) mode to protected mode, but can't switch back (deliberate decision on part of Intel). Reset starts in real mode. Guess how 8088/MS-DOS software that temporarily used 286 for RAM above 1MByte (VDISK.SYS, RAMDRIVE.SYS, SMARTDRV.SYS) gets back home? Set GDT to new segment with 0 length. Do any segment load, it fails, exeption faills, Double Fault fails, Tripple, Reset, real mode. Just needs the PC BIOS to test an "do not boot" Flag and return to the waiting real mode code. Interestingly IBM did not know this trick when making the PC/AT. They still wired in connections so that the keyboard interface (a.k.a. keyboard BIOS) chip, after being fingered in a special way, pulled the Reset pin. The same chip can also force the 286 A20 address line to 0 to simulate the exact real mode addressing behaviour of the 8088. This is called the A20 Gate. -- Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 4 Apr 2001 03:27:39 GMT Organization: The National Capital FreeNet Lines: 30 Message-ID: <9ae4bb$17h$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986354859 1265 134.117.136.30 (4 Apr 2001 03:27:39 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 4 Apr 2001 03:27:39 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!news-fra1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!europa.netcrusader.net!209.130.129.214!nntp.frontiernet.net!nntp.gblx.net!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:78061 Ron Hunsinger (hnsngr@sirius.com) writes: > In article <3AC71C18.B9F2235C@ev1.net>, richmond@ev1.net wrote: > >> What is the most "CISC" instruction that you have found??? > > My choice would be the rather innocuous VALC (Value Call) instruction on > the Burroughs/Unisys Large Series computers. > > This is 16-bit instruction, that interprets its low-order 14 bits as an > address and pushes the value at that location onto the stack. > > Sounds pretty tame, right? Well, let's look a little closer. [major snip] JAYZUS! If that instruction ran amok, how would anybody ever debug the program without a hardware trace? > > The overwhelming majority of the time, the VALC instruction does only what > its name implies, simply loading a value. But, when needed, it provides > hardware support for ALGOL's call-by-name semantics, where a parameter > being passed to a subroutine is actually an expression that needs to be > re-evaluated on every access. The caller simply passes an SIRW pointing to > the PCW for a subroutine that evaluates the expression. The VALC > instruction does the rest. I'm guessing that you're talking about the "thunks" that I recall from Gries' et al compiler books? And furthermore, this instruction would have been found in the B6500, right? ###### From: "Rob Peglar" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> <9aat66$556@gap.cco.caltech.edu> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 43 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Message-ID: Date: Wed, 04 Apr 2001 11:39:12 GMT NNTP-Posting-Host: 24.217.57.96 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 986384352 24.217.57.96 (Wed, 04 Apr 2001 04:39:12 PDT) NNTP-Posting-Date: Wed, 04 Apr 2001 04:39:12 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!newsfeeds.belnet.be!news.belnet.be!cyclone2.usenetserver.com!news-out.usenetserver.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78034 "glen herrmannsfeldt" wrote in message news:9aat66$556@gap.cco.caltech.edu... > "George R. Gonzalez" writes: > > >The most complex instruction I can think of was in the CDC Star 100: > > >Invert matrix !! That's just not true. There is no opcode in the Star-100 for 'invert matrix'. There is an opcode for transpose/move vector. Inversion could be done in a two instruction loop. There was also a code for transmit reverse. > > >(only handled up to size 8x8 IIRC ) The Star-100 handled vectors up to 65,535 elements long. > > Not to mention, I believe that the STAR-100 also had decimal floating > point, including square root. Would it invert a matrix in decimal float, > also? No decimal floating point. The decimal instructions were actually performed by the string unit. For example, one could multiply a 10,000 digit decimal number by another 10,000 digit decimal number. Same for binary. You could also vector convert decimal<->binary and vice versa. > I always mention this machine when a question comes up regarding > rounding in binary floating point machines. (why 0.1*10 is not 1.0). The Star-100 had a 16-bit exponent and 48-bit mantissa floating format. You could also use the half-word format; 8-bit exponent and 24-bit mantissa. Came in handy. Rob ###### From: jeffj@panix.com (Jeff Jonas) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 4 Apr 2001 13:24:08 -0400 Organization: Jeff's House of Electronic Parts Lines: 45 Message-ID: <9aflbo$809$1@panix6.panix.com> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a7gta$15e@obygden.liss.pp.se> NNTP-Posting-Host: panix6.panix.com X-Trace: news.panix.com 986405048 28424 166.84.0.231 (4 Apr 2001 17:24:08 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: 4 Apr 2001 17:24:08 GMT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!howland.erols.net!panix!news.panix.com!panix6.panix.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78039 >>What is the most "CISC" instruction that you have found??? Well, the IBM system 38 was microprogrammed so every instruction did different things depending on the data type. I think it was called "2 dimensional microcode". The data "tag" of the operands determined what microcode was used for any particular instruction. My guess is that "add" would just automatically adjust for binary, long, floating point or packed-decimal since they all had different tags. AT&T made several interesting CPUs. - The WE32000 series was popular in the 1980s, used internally for most of the 3b series of computers (3b2, 3b5, etc) [exceptions: the 3b1 was just a Convergent Unix PC re-named, the 3b20s used 29000s if I recall corectly]. The WeCo 32xxx were CISC, probably had some unusual instructions intended for phone switch or Unix use. [I greatly treasure my manual for the 32000 based VME card since it documented EVERYTHING since it was intended for integration into customer's dedicated applications and hardware. It documents the old Unix bootstrap code and other "undocumented" things such as "magic mode" to which the bootstrap replied "poof", and other Adventure/Wumpus references] - the "crisp cpu": a C RISC chip, probably microprogrammed to optimize C calling conventions and such. I saw one at AT&T's Summit NJ facility, but only a few were prototyped. Concurrent Computer Corporation's high end machines were microcoded for an instruction set remarkably similar to IBM 360/370 in format (I'm unsure if binary compatibility was attempted). Since they were used for real time simulators, strange requirements probably dictated interesting instructions to boost performance of particular applications. (I wish I had databooks to back up that feeling). Just because the microcode is made visible doesn't make the machine non-CISC, it's just opening up the magic box that was there all along! -- Jeffrey Jonas jeffj@panix(dot)com The original Dr. JCL and Mr .hide ###### From: "Rob Peglar" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> <9aat66$556@gap.cco.caltech.edu> <9ag35j$8jc$1@laurel.tc.umn.edu> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 35 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Message-ID: Date: Wed, 04 Apr 2001 22:11:20 GMT NNTP-Posting-Host: 24.217.57.96 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 986422280 24.217.57.96 (Wed, 04 Apr 2001 15:11:20 PDT) NNTP-Posting-Date: Wed, 04 Apr 2001 15:11:20 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78133 I worked at CDC starting in the 1980 on the Star-100 and its successor machines, the Cyber 203 and 205 (and ETA-10, too). I actually do have the manual. The Star-100 Hardware Instant, dated 1975. The entire opcode set is described in the glorious engineering-heaven CDC detail. Sorry, no 'invert matrix' instruction. Transpose vector, yes; invert matrix, no. Rob "George R. Gonzalez" wrote in message news:9ag35j$8jc$1@laurel.tc.umn.edu... > > > > >The most complex instruction I can think of was in the CDC Star 100: > > > > > > >Invert matrix !! > > > > That's just not true. There is no opcode in the Star-100 for 'invert > > matrix'. > > I swear I saw this in a Star-100 manual (which burned up last January at my > parent's house fire. My father worked for CDC at the time, so this may have > been more of a design document than an actual finished manual. Maybe > somebody else out there knows for sure? > > > > > > ###### From: "George R. Gonzalez" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Wed, 4 Apr 2001 17:13:04 -0500 Organization: University of Minnesota, Twin Cities Campus Lines: 17 Message-ID: <9ag35j$8jc$1@laurel.tc.umn.edu> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> <9aat66$556@gap.cco.caltech.edu> X-Trace: laurel.tc.umn.edu 986419188 8812 160.94.124.99 (4 Apr 2001 21:19:48 GMT) X-Complaints-To: usenet@laurel.tc.umn.edu X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!news.maxwell.syr.edu!upp1.onvoy!msc1.onvoy!onvoy.com!hardy.tc.umn.edu!laurel.tc.umn.edu!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78141 > > >The most complex instruction I can think of was in the CDC Star 100: > > > > >Invert matrix !! > > That's just not true. There is no opcode in the Star-100 for 'invert > matrix'. I swear I saw this in a Star-100 manual (which burned up last January at my parent's house fire. My father worked for CDC at the time, so this may have been more of a design document than an actual finished manual. Maybe somebody else out there knows for sure? ###### From: bhk@dsl.co.uk (Brian {Hamilton Kelly}) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Wed, 04 Apr 2001 23:18:20 GMT Organization: Dragonhill Systems Ltd Message-ID: <986426300snz@dsl.co.uk> References: X-Trace: mail2news.demon.co.uk 986429053 mail2news:9174 mail2news mail2news.demon.co.uk X-Complaints-To: abuse@demon.net X-Mail2News-Path: news.demon.net!dsl.demon.co.uk X-Newsreader: Demon Internet Simple News v1.31 Lines: 44 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-fra.pop.de!fr.clara.net!heighliner.fr.clara.net!grolier!dispose.news.demon.net!news.demon.co.uk!demon!mail2news.demon.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78196 [Post rearranged into conventional order, with quoted material ABOVE the relevant response] In article peglarr@earthlink.net "Rob Peglar" writes: > "George R. Gonzalez" wrote in message > news:9ag35j$8jc$1@laurel.tc.umn.edu... > > > > > > >The most complex instruction I can think of was in the CDC Star 100: > > > > > > > > >Invert matrix !! > > > > > > That's just not true. There is no opcode in the Star-100 for 'invert > > > matrix'. > > > > I swear I saw this in a Star-100 manual (which burned up last January at > my > > parent's house fire. My father worked for CDC at the time, so this may > have > > been more of a design document than an actual finished manual. Maybe > > somebody else out there knows for sure? > > > I worked at CDC starting in the 1980 on the Star-100 and its successor > machines, the Cyber 203 and 205 (and ETA-10, too). > > I actually do have the manual. The Star-100 Hardware Instant, dated > 1975. The entire opcode set is described in the glorious engineering-heaven > CDC detail. Sorry, no 'invert matrix' instruction. Transpose vector, yes; > invert > matrix, no. Are we sure that this was a *CDC* Star? ISTR a manufacturer called Star Computers that made Cray-like massively-parallel systems; nearly ended up working for them at Newbury, Berkshire. [I don't know whether they were anything to do with CDC or note, but had hitherto imagined them to be independent.] -- Brian {Hamilton Kelly} bhk@dsl.co.uk "We have gone from a world of concentrated knowledge and wisdom to one of distributed ignorance. And we know and understand less while being incr- easingly capable." Prof. Peter Cochrane, formerly of BT Labs ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 5 Apr 2001 00:19:01 GMT Organization: The National Capital FreeNet Lines: 14 Message-ID: <9agdll$g6p$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> <9aat66$556@gap.cco.caltech.edu> <9ag35j$8jc$1@laurel.tc.umn.edu> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986429941 16601 134.117.136.30 (5 Apr 2001 00:19:01 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 5 Apr 2001 00:19:01 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!newscore.univie.ac.at!europa.netcrusader.net!209.130.129.214!nntp.frontiernet.net!nntp.gblx.net!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:78168 "Rob Peglar" (peglarr@earthlink.net) writes: > ... > I actually do have the manual. The Star-100 Hardware Instant, dated > 1975. The entire opcode set is described in the glorious engineering-heaven > CDC detail. Sorry, no 'invert matrix' instruction. Transpose vector, yes; > invert > matrix, no. Possibly the author was thinking of APL, (with its one symbol invert instruction). Transpose vector? Perhaps transpose matrix? At the start of the 70's G. Weinberg showed how to transpose a matrix in zero CPU time in PL/1: use Isub defining. ('PL/I Programming: A Manual of Style') ###### From: "GRIMBLE GRUMBLE" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Thu, 5 Apr 2001 11:52:56 +0100 Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <986426300snz@dsl.co.uk> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Complaints-To: newsabuse@supernews.com Lines: 16 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!logbridge.uoregon.edu!sn-xit-03!sn-uk-post-01!supernews.com!corp.supernews.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78180 What a silly attitude to adopt on an International network, where ALL human experience is relevant. If you look at the RFC, it suggests that the WHOLE article should be posted at the top, or else selective quotes may be embedded within, which legalises totally the top poster. In fact, the one habit that is not legalised is that of BHK, where what he "quotes" is not what was posted at all. Brian {Hamilton Kelly} wrote in message news:986426300snz@dsl.co.uk... > [Post rearranged into conventional order, with quoted material ABOVE the > relevant response] ###### From: Philip Newton Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Thu, 05 Apr 2001 14:17:27 +0200 Organization: very little Lines: 13 Message-ID: References: <986426300snz@dsl.co.uk> Reply-To: "Philip 'Yes, that's my address' Newton" NNTP-Posting-Host: 212.12.62.7 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: fu-berlin.de 986473048 5580173 212.12.62.7 (16 [11583]) X-Newsreader: Forte Agent 1.8/32.548 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!fu-berlin.de!uni-berlin.de!212.12.62.7!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78193 On Thu, 5 Apr 2001 11:52:56 +0100, "GRIMBLE GRUMBLE" wrote: > If you look at the RFC, Which of the couple thousand? Cheers, Philip -- Philip Newton Yes, that really is my address; no need to remove anything to reply. If you're not part of the solution, you're part of the precipitate. ###### From: "Rob Peglar" Newsgroups: alt.folklore.computers References: <986426300snz@dsl.co.uk> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 17 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Message-ID: Date: Thu, 05 Apr 2001 12:56:55 GMT NNTP-Posting-Host: 24.217.57.96 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 986475415 24.217.57.96 (Thu, 05 Apr 2001 05:56:55 PDT) NNTP-Posting-Date: Thu, 05 Apr 2001 05:56:55 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!newshub2.rdc1.sfba.home.com!news.home.com!sjc1.nntp.concentric.net!newsfeed.concentric.net!newsfeed1.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78135 "Brian {Hamilton Kelly}" wrote in message news:986426300snz@dsl.co.uk... > > Are we sure that this was a *CDC* Star? ISTR a manufacturer called Star > Computers that made Cray-like massively-parallel systems; nearly ended up > working for them at Newbury, Berkshire. [I don't know whether they were > anything to do with CDC or note, but had hitherto imagined them to be > independent.] Yes, "we" are sure. The CDC Star-100. Rob ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 5 Apr 2001 17:21:14 GMT Organization: California Institute of Technology, Pasadena Lines: 17 Message-ID: <9ai9ia$r6d@gap.cco.caltech.edu> References: <986426300snz@dsl.co.uk> NNTP-Posting-Host: seniti.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!canoe.uoregon.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.folklore.computers:78149 "GRIMBLE GRUMBLE" writes: >What a silly attitude to adopt on an International network, where >ALL human experience is relevant. If you look at the RFC, it >suggests that the WHOLE article should be posted at the top, >or else selective quotes may be embedded within, which >legalises totally the top poster. In fact, the one habit that is >not legalised is that of BHK, where what he "quotes" is not >what was posted at all. Personally, I hate paging down through hundreds of lines of quoted material to find one line of new material. In that case, I would rather have it at the top. I prefer to fit the quoted material and my follow-up on one 24 line page, if possible. A little snip can make the whole thing a lot more readable sometimes. -- glen ###### From: jmaynard@thebrain.conmicro.cx (Jay Maynard) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 5 Apr 2001 17:24:00 GMT Organization: Neosoft (using Airnews.net!) Lines: 14 Message-ID: <836309BEB6D44AC9.ABCADA92352A407F.FCE460F0AFDB48E8@lp.airnews.net> X-Orig-Message-ID: References: <986426300snz@dsl.co.uk> <9ai9ia$r6d@gap.cco.caltech.edu> Reply-To: jmaynard@conmicro.cx Abuse-Reports-To: abuse at airmail.net to report improper postings NNTP-Proxy-Relay: library1-aux.airnews.net NNTP-Posting-Time: Thu Apr 5 12:24:00 2001 NNTP-Posting-Host: !b:C=1k-Wj#@"R\ (Encoded at Airnews!) User-Agent: slrn/0.9.5.4 (UNIX) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!news.stealth.net!news-east.rr.com!cyclone-west.rr.com!news.rr.com!news-west.rr.com!cabal10.airnews.net!news.airnews.net!cabal2.airnews.net!news-f.iadfw.net!jmaynard Xref: chonsp.franklin.ch alt.folklore.computers:78131 On 5 Apr 2001 17:21:14 GMT, glen herrmannsfeldt wrote: >Personally, I hate paging down through hundreds of lines of quoted >material to find one line of new material. In that case, I would >rather have it at the top. I'd rather not have it at all... > I prefer to fit the quoted material and >my follow-up on one 24 line page, if possible. A little snip can make >the whole thing a lot more readable sometimes. Absolutely. Trim out content you're not replying to, and put what you're saying directly after what you're replying to. That makes Usenet much mor readable. ###### From: "George R. Gonzalez" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Thu, 5 Apr 2001 14:44:28 -0500 Organization: University of Minnesota, Twin Cities Campus Lines: 48 Message-ID: <9aier8$iim$1@laurel.tc.umn.edu> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9a8tl3$9va$1@raewyn.paradise.net.nz> <9aalrt$feg$1@laurel.tc.umn.edu> <9aat66$556@gap.cco.caltech.edu> <9ag35j$8jc$1@laurel.tc.umn.edu> X-Trace: laurel.tc.umn.edu 986496680 19030 160.94.124.99 (5 Apr 2001 18:51:20 GMT) X-Complaints-To: usenet@laurel.tc.umn.edu X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-lei1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!upp1.onvoy!msc1.onvoy!onvoy.com!hardy.tc.umn.edu!laurel.tc.umn.edu!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78243 ----- Original Message ----- From: "Rob Peglar" Newsgroups: alt.folklore.computers Sent: Wednesday, April 04, 2001 5:11 PM Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) > I actually do have the manual. The Star-100 Hardware Instant, dated > 1975. The entire opcode set is described in the glorious engineering-heaven > CDC detail. Sorry, no 'invert matrix' instruction. Transpose vector, yes; > invert > matrix, no. > > Rob Repeating and amplifying on what I previously wrote, which was glossed over: What I read IIRC was a weak xerox copy of some document, not typeset, I think it was in CDC's funny Remington-Rand typeball font. This was around 1971. I don't recall the title page but I clearly recall seeing "Invert Matrix, limit 8x8". (perhaps to fit in a temp sword?) You may not know that there were two quite different Star designs. The first one was found to have horrible interrupt context-saving problems. They had to redesign 30% of the logic to fix this. I wouldnt be surprised if "Invert Matrix" got dropped at that point. You have to wonder how they could save state in the middle of THAT instruction! Anecdote: I was at a closed-circuit lecture by some CDC engineering manager where he was discussing CDC products. Somebody out in TV-land came on the intercom and this big loud and echoing voice asked "WHEN IS THE STAR-100 GOING TO BE DONE". He blanched: "Oh, I thought that was the voice of God, or worse yet, Seymour Cray". Regards, George ###### From: dochawk@psu.edu Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 6 Apr 2001 20:49:59 GMT Organization: Penn State University, Center for Academic Computing Lines: 14 Message-ID: <9ala5n$st2@r02n01.cac.psu.edu> References: <986426300snz@dsl.co.uk> NNTP-Posting-Host: fac13.ds.psu.edu Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!logbridge.uoregon.edu!newsfeed.stanford.edu!news.ems.psu.edu!news3.cac.psu.edu!usenet Xref: chonsp.franklin.ch alt.folklore.computers:78329 In article , Philip Newton wrote: >On Thu, 5 Apr 2001 11:52:56 +0100, "GRIMBLE GRUMBLE" > wrote: >> If you look at the RFC, >Which of the couple thousand? Yikes. Was there really a RFC that dates usenet standard usage? I'd always assumed it was a couple of cobbled together hacks that spread . . . hawk ###### From: hnsngr@sirius.com (Ron Hunsinger) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Organization: ErsteSoft Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit X-Newsreader: Yet Another NewsWatcher 2.3.1 Lines: 71 Date: Sat, 07 Apr 2001 02:53:01 -0700 NNTP-Posting-Host: 216.103.86.8 X-Complaints-To: abuse@pacbell.net X-Trace: nnrp5-w.sbc.net 986637163 216.103.86.8 (Sat, 07 Apr 2001 02:52:43 PDT) NNTP-Posting-Date: Sat, 07 Apr 2001 02:52:43 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!kanja.arnes.si!news-hub.siol.net!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!cyclone-sf.pbi.net!206.13.28.183!nnrp5-w.sbc.net.POSTED!hnsngr Xref: chonsp.franklin.ch alt.folklore.computers:78383 In article <9ae4bb$17h$1@freenet9.carleton.ca>, ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) wrote: > Ron Hunsinger (hnsngr@sirius.com) writes: > > In article <3AC71C18.B9F2235C@ev1.net>, richmond@ev1.net wrote: > > > >> What is the most "CISC" instruction that you have found??? > > > > My choice would be the rather innocuous VALC (Value Call) instruction on > > the Burroughs/Unisys Large Series computers. > > > > This is 16-bit instruction, that interprets its low-order 14 bits as an > > address and pushes the value at that location onto the stack. > > > > Sounds pretty tame, right? Well, let's look a little closer. > [major snip] > > JAYZUS! If that instruction ran amok, how would anybody ever debug > the program without a hardware trace? You wouldn't. The more I got to know of the instruction set on that computer, the more I understood why there was no assembler for it. There were just too many ways to crash the machine in assembler. For that matter, memory protection was practically non-existent. All array references (and ultimately, all memory references were array references) were bounds-checked by the hardware, with no way to turn that bounds checking off, but that was the extent of the runtime checking. (Actually, there was one other level of runtime checking, but that was for just in case: the hardware knew the difference between code and data, and would not let you modify code or execute data.) All other memory protection was handled under the rule of: if you can't say it, you can't do it. No high level language gives you a way to say that you want to reference some other program's data. Therefore, if all programs are written in high level languages, and the compilers are bug-free, then there cannot be any such references at run time. (There's also no high-level language way to say you want to execute data, so there was no way to do that even if the hardware didn't check for it.) Programming is a form of magic. As in all forms of magic, knowing the name of something gives you power over it. You have no power over anything you do not know the name of, and that includes other program's data (or even your own data if it's not currently in scope). System-level calls were simple subroutine calls. You (or rather your compiler) knew the entry points to the read/write/open/close/allocate/deallocate/etc. routines in the OS, and could call them directly. Neither you nor your compiler knew the locations of OS-specific data, and therefore there was no way to express a desire to alter it or even access it directly. Burroughs considered the operating system (MCP) and the compilers to be equally responsible for the proper function of the machine. > I'm guessing that you're talking about the "thunks" that I recall from > Gries' et al compiler books? > > And furthermore, this instruction would have been found in the B6500, > right? Yes. The notion of a "thunk" as a way to implement call-by-name semantics was discussed in the literature before the B6500 was designed. The VALC instruction in the B6500 and successors works the way it does precisely to make thunks efficient. [Or at least "efficient" in the CISC mindset. Whether moving complexity into the instruction set is really efficient is at the heart of the CISC/RISC debate.] -Ron Hunsinger ###### From: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 7 Apr 2001 13:49:49 GMT Organization: The National Capital FreeNet Lines: 19 Message-ID: <9an5tt$or7$1@freenet9.carleton.ca> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Reply-To: ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) NNTP-Posting-Host: freenet10 X-Trace: freenet9.carleton.ca 986651389 25447 134.117.136.30 (7 Apr 2001 13:49:49 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 7 Apr 2001 13:49:49 GMT X-Given-Sender: ab528@freenet10.carleton.ca (Heinz W. Wiggeshoff) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!kanja.arnes.si!news-hub.siol.net!news-out.cwix.com!newsfeed.cwix.com!europa.netcrusader.net!209.130.129.214!nntp.frontiernet.net!nntp.gblx.net!xcski.com!freenet-news!FreeNet.Carleton.CA!ab528 Xref: chonsp.franklin.ch alt.folklore.computers:78369 Ron Hunsinger (hnsngr@sirius.com) writes: > In article <9ae4bb$17h$1@freenet9.carleton.ca>, ab528@FreeNet.Carleton.CA > (Heinz W. Wiggeshoff) wrote: >> JAYZUS! If that instruction ran amok, how would anybody ever debug >> the program without a hardware trace? > > You wouldn't. I once tried to design a 'bounds-checking' architecture. One sticking point was unrestricted pointer values, a la PL/I or assmbler. Never got to the wire-wrap stage. ... > Therefore, if all programs are > written in high level languages, and the compilers are bug-free, then there > cannot be any such references at run time. ^^^^^^^^^^^^^^^^^^^^ ... And that, folks, is the crux of the matter. ###### From: "The Bakers" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 31 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: Date: Sat, 07 Apr 2001 19:05:08 GMT NNTP-Posting-Host: 12.79.177.230 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc05-news.ops.worldnet.att.net 986670308 12.79.177.230 (Sat, 07 Apr 2001 19:05:08 GMT) NNTP-Posting-Date: Sat, 07 Apr 2001 19:05:08 GMT Organization: AT&T Worldnet Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!europa.netcrusader.net!204.127.161.3!wn3feed!worldnet.att.net!135.173.83.71!wnfilter1!worldnet-localpost!bgtnsc05-news.ops.worldnet.att.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78354 "Ron Hunsinger" wrote in message news:hnsngr-ya023180000704010253010001@news.pacbell.net... > > (...snip) > > No high level language gives you a way to say that you > want to reference some other program's data. This comment caught my attention. I think I agree with the general sentiment of your remarks, but nonetheless I 'lingered' over this sentence a little longer than the others. Some could contend that the COMMON statement (named or unlabelled) in "classic" FORTRAN provides just such a mechanism but IIRC that was intended for use between and amongst subprograms and the 'main' program with which they were link/loaded. On the other hand there is the concept of "shared memory" in UNIX; once the necessary system calls have been completed (shmget, shmat, etc.) then the high-level language (typically C in this context) can access data 'belonging' to another program like it does for any other data ...... via pointers [if lexically equipped]. Maybe you should have substituted "specifically indicate" for "say", and add "native" in front of "way", when making your original statement (or similar wordsmithing) ? But one thing is obvious...that old Burroughs systems with the MCP-based architecture were one hell of design (particularly given the timeframe in which they were originally introduced). ###### Message-ID: <3AD1FEF2.5A728A5C@allegro.com> From: Stan Sieler X-Mailer: Mozilla 4.7 [en] (Win98; U) X-Accept-Language: en,pdf MIME-Version: 1.0 Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 111 Date: Mon, 09 Apr 2001 11:26:58 -0700 NNTP-Posting-Host: 209.10.39.2 X-Complaints-To: news@globix.net X-Trace: news.sjc.globix.net 986840979 209.10.39.2 (Mon, 09 Apr 2001 11:29:39 PDT) NNTP-Posting-Date: Mon, 09 Apr 2001 11:29:39 PDT Organization: Globix Corp. Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!isdnet!howland.erols.net!news.maxwell.syr.edu!sn-xit-03!supernews.com!cyclone-sf.pbi.net!209.10.34.151!newsfeed.sjc.globix.net!news.sjc.globix.net!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78497 Re: > The more I got to know of the instruction set on that computer, the more I [B6700/B700/etc.] > understood why there was no assembler for it. There were just too many ways > to crash the machine in assembler. Yes...in the early 1970s, there were two assemblers that I was aware of... one from U.C. Davis (I'm sure of that one) and one (possibly) from U.C San Diego. (I was at UCSD, but I can't recall for *sure* that we had our own). > All other memory protection was handled under the rule of: if you can't say > it, you can't do it. No high level language gives you a way to say that you Yep...they eventually sort of fixed that problem, I think, in later models (ASN systems?), but that was after I left the platform :) > written in high level languages, and the compilers are bug-free, then there > cannot be any such references at run time. (There's also no high-level > language way to say you want to execute data, so there was no way to do yes...that's why it was difficult to port Wirth's Pascal compiler to the Burroughs. Jim Madden (UCSD) first tried it in the mid 1970s (circa 1976?), and ran into the problem with tagless variants. Pascal lets you do: type int_ptr_type = ^ integer; fake_type = record case integer of 0: (ptr : int_ptr_type); 1: (int48 : integer); end; var foo : fake_type; ... foo.int48 := ..some arbitrary integer value that we know is an address... foo.ptr^ := ...some value. Plus, IIRC, Wirth's implementation of tagged variants didn't check that the tag value matched the case you were accessing. (I could be wrong here.) (I also seem to recall some Wirth writing saying that it would be *Real Nice* if the compiler implementor allocated some hidden storage for tagless variants, to record which case was in use, and prevent access to the other cases ... and that he didn't think anyone would implement that :) > Burroughs considered the operating system (MCP) and the compilers to be > equally responsible for the proper function of the machine. Although it worked fine, sometimes coming at MCP with a different mindset let you find holes. I left the platform in 1979 (after working for UCSD, Burroughs, and Remote Computing Corporation), for the HP 3000 (a machine sometimes called a "baby Burroughs" ... and a machine I'm still on!). Within a couple of months, after learning how the HP 3000 hardware security worked, I was able to design a successful attack on the Burroughs security (involving passing a too-short buffer to an intrinsic that I knew called RCCGETPRIVILEGED). I told RCC about it, and they patched the hole easily, but my point was that exposure to different ways of thinking can sometimes reveal holes that you might otherwise miss. Back to MCP and compilers. For the curious, if you opened an program file with "write access", MCP immediately changed the file type to "data" (from "executable".) You couldn't mark a file as "executable", only a compiler could. Thus, apparent security ... until you either wrote your own compiler (it took a special command from the operator console to mark an executable program as a compiler), or until you read in a backup tape, modified the data, and re-wrote a new backup tape with the modified executable ...and then restored it from tape :) At UCSD or RCC, we spent a bit of time thinking about that backup hole... we realized we could patch the OS such that when you closed a tape that you had write access to, we could peek at the front and see if it now looked like a backup tape ... and alert the operator. But, that wouldn't prevent doctored backup tapes being brought from other systems, so we dropped it. > Yes. The notion of a "thunk" as a way to implement call-by-name semantics > was discussed in the literature before the B6500 was designed. The VALC > instruction in the B6500 and successors works the way it does precisely to > make thunks efficient. [Or at least "efficient" in the CISC mindset. Remember the "accidental entry PCW" message from the ALGOL compiler? And no one even mentioned the linked-list loop instruction :) Stan Sieler sieler@allegro.com ###### From: timothy.mccaffrey@spam2filter.unisys.com.takethisoff (Tim McCaffrey) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 9 Apr 2001 19:31:19 GMT Organization: A series networking Lines: 17 Message-ID: <9at2m7$rtq$1@mail.pl.unisys.com> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> NNTP-Posting-Host: 192.63.212.206 X-Newsreader: WinVN 0.99.9 (Released Version) (x86 32bit) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!eanews1.unisys.com!plnews.pl.unisys.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78524 In article , The Bakers says... > >But one thing is obvious...that old Burroughs systems with the MCP-based >architecture were one hell of design (particularly given the timeframe in >which they were originally introduced). > They are still around and being sold (aka. A-series aka Clearpath NX (LX is the emulation on the NT platform). While I won't claim to be an A series arch expert, I do know the ASD architecture changes fixed quite a few security holes. - Tim NOT speaking for Unisys. ###### From: rsteiner@isis.visi.com (Richard C. Steiner) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> Organization: Vector Internet Services, Inc. Message-ID: User-Agent: slrn/0.9.5.4 (UNIX) Lines: 29 Date: Mon, 09 Apr 2001 21:30:26 GMT NNTP-Posting-Host: 209.98.98.8 X-Complaints-To: abuse@visi.com X-Trace: ruti.visi.com 986851826 209.98.98.8 (Mon, 09 Apr 2001 16:30:26 CDT) NNTP-Posting-Date: Mon, 09 Apr 2001 16:30:26 CDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-lei1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-out.visi.com!hermes.visi.com!ruti.visi.com!rsteiner Xref: chonsp.franklin.ch alt.folklore.computers:78623 In article <3AC71C18.B9F2235C@ev1.net>, Charles Richmond wrote: >What is the most "CISC" instruction that you have found??? How about the EDIT instruction found on the Sperry UNIVAC 1110, 1100/40, and 1100/80? The description in the old AIM I have here says: "This instruction transfers bytes from a source string SJ0 to a receiving string SJ1 under the control of a control string SJ2. The instruction is design to duplicate all of the functions of the PICTURE clause defined by the COBOL language (e.g., blanking out the leading zeroes of a numeric string, inserting a '$' character or the appropriate sign code, inserting commas or a decimal point within a number, or appending description characters such as 'CR' or 'DB')." Setup for the instruction required the creation of a relatively complex control string to define the instruction's behavior, and it also required setting up a bunch (six) of R registers (J0-J2, SR1-SR3) to store counts, fill characters, and so on. Q: Did any of the UNIVAC COBOL compilers actually use this instruction? -- -Rich Steiner >>>---> rsteiner@visi.com >>>---> Eden Prairie, MN Written online using slrn 0.9.5.4! The Theorem Theorem: If If, Then Then. ###### From: hnsngr@sirius.com (Ron Hunsinger) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <9an5tt$or7$1@freenet9.carleton.ca> Organization: ErsteSoft Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit X-Newsreader: Yet Another NewsWatcher 2.3.1 Lines: 55 Date: Wed, 11 Apr 2001 04:40:24 -0700 NNTP-Posting-Host: 216.103.86.8 X-Complaints-To: abuse@pacbell.net X-Trace: nnrp5-w.sbc.net 986989198 216.103.86.8 (Wed, 11 Apr 2001 04:39:58 PDT) NNTP-Posting-Date: Wed, 11 Apr 2001 04:39:58 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeeds.belnet.be!news.belnet.be!feed2.onemain.com!feed1.onemain.com!cyclone-sf.pbi.net!206.13.28.183!nnrp5-w.sbc.net.POSTED!hnsngr Xref: chonsp.franklin.ch alt.folklore.computers:78686 In article <9an5tt$or7$1@freenet9.carleton.ca>, ab528@FreeNet.Carleton.CA (Heinz W. Wiggeshoff) wrote: > Ron Hunsinger (hnsngr@sirius.com) writes: > > In article <9ae4bb$17h$1@freenet9.carleton.ca>, ab528@FreeNet.Carleton.CA > > (Heinz W. Wiggeshoff) wrote: > > >> JAYZUS! If that instruction ran amok, how would anybody ever debug > >> the program without a hardware trace? > > > > You wouldn't. > > I once tried to design a 'bounds-checking' architecture. One sticking > point was unrestricted pointer values, a la PL/I or assmbler. Never > got to the wire-wrap stage. The Burroughs PL/I compiler got around the problem of pointer arithmetic by allocating a huge block of memory, and pretending that was the flat memory that the PL/I model assumed the target computer would have. PL/I pointers basically became just integer indices into that area. The hardware bounds-checking couldn't be turned off, but it could be weakened to this extent -- the index still had to be within the bounds of this huge array, so while you could accidentally step on your own data, you couldn't accidentally step on the data belonging to another application, or on your own code. The same trick could have been used for Pascal or C. > > Therefore, if all programs are > > written in high level languages, and the compilers are bug-free, then there > > cannot be any such references at run time. ^^^^^^^^^^^^^^^^^^^^ > ... > > And that, folks, is the crux of the matter. On any system, you're already depending on the OS being bug-free. Otherwise, it could accidentally map your virtual memory onto the same physical memory as some other process' virtual memory. It's just that Burroughs considered the compilers to be part of the system software, and took compiler bugs every bit as seriously as OS bugs. Since you also (until mid-80s or so) got source for everything, you could patch the compilers or OS to your heart's content. If you did, of course, you were responsible for the consequences. Likewise if you had the temerity to use a third-party compiler. You had to trust whomever that compiler came from. What you bought for trusting your compilers was increased efficiency, since your compiled programs didn't have to make kernel calls, with their attendent expensive context switches, to do routine tasks. They just made ordinary subroutine calls to the OS. -Ron Hunsinger ###### From: hnsngr@sirius.com (Ron Hunsinger) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Organization: ErsteSoft Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit X-Newsreader: Yet Another NewsWatcher 2.3.1 Lines: 64 Date: Wed, 11 Apr 2001 05:27:11 -0700 NNTP-Posting-Host: 216.103.86.8 X-Complaints-To: abuse@pacbell.net X-Trace: nnrp5-w.sbc.net 986992006 216.103.86.8 (Wed, 11 Apr 2001 05:26:46 PDT) NNTP-Posting-Date: Wed, 11 Apr 2001 05:26:46 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!nntp-relay.ihug.net!ihug.co.nz!feeder.via.net!cyclone-sf.pbi.net!206.13.28.183!nnrp5-w.sbc.net.POSTED!hnsngr Xref: chonsp.franklin.ch alt.folklore.computers:78687 In article , "The Bakers" wrote: > This comment caught my attention. I think I agree with the general > sentiment of your remarks, but nonetheless I 'lingered' over this sentence a > little longer than the others. > > Some could contend that the COMMON statement (named or unlabelled) in > "classic" FORTRAN provides just such a mechanism but IIRC that was intended > for use between and amongst subprograms and the 'main' program with which > they were link/loaded. On the other hand there is the concept of "shared > memory" in UNIX; once the necessary system calls have been completed > (shmget, shmat, etc.) then the high-level language (typically C in this > context) can access data 'belonging' to another program like it does for any > other data ...... via pointers [if lexically equipped]. Maybe you should > have substituted "specifically indicate" for "say", and add "native" in > front of "way", when making your original statement (or similar > wordsmithing) ? Well, if it's shared memory, then it is yours. It's also some other process' memory, but the point remains as stated. You only have power over memory you can name. There is no other way to generate an address than according to the rules of the language. A safe language will not let you generate unsafe names. In particular, although it was possible in Algol to convert a POINTER to a REAL (equivalent to casting a C pointer to an int), there was no way to go the other way. You could not, for example, walk a pointer through all of memory looking for something interesting. (And even the POINTER to REAL conversion became disallowed in anticipation of the switchover to ASD machines, which had a slightly different format for pointers that would have confused applications that thought they knew how to interpret that REAL value. Notice that it became disallowed by virtue of the fact that the compilers stopped accepting it. If you can't say it, you can't do it. And before you ask, the OS knew which version of the compiler had compiled the code, and simply refused to execute programs compiled with old compilers.) Algol actually had very rich sharing semantics. You could fire off as a separate process any subroutine call. That other process would still see everything that was global to that subroutine. Since you could see it too (because if you couldn't you wouldn't have been able to see the subroutine), it was all shared. Not just data, but subroutines too. The other process used as much of your stack as was needed for the shared stuff, plus its own stack for its own private data. Popping your own stack below the shared part automatically killed the other process. When you fired off the other process, you could pass that subroutine parameters. If one of those parameters was itself a subroutine, that subroutine would see whatever was global to its own declaration. It was on this machine that it was driven home to me that a subroutine is not merely a block of code. It's also the context in which that code runs, and sometimes the reason you pass a subroutine as a parameter is not so much to pass the code as to pass the context. You could use this to give another process controlled access to your data. It can access your data, but only by calling your subroutine. Since you write the subroutine, you can trust that the shared data is accessed correctly, even if you don't trust the other process. (In this case, you'd probably fire off the process from another codefile, rather than from one of your own subroutines. In that case, the processes wouldn't share any stack, but the subroutine you pass it as a parameter still carries one of your stack frames as its context.) -Ron Hunsinger ###### From: "The Bakers" Newsgroups: alt.folklore.computers References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Lines: 79 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: Date: Wed, 11 Apr 2001 23:35:03 GMT NNTP-Posting-Host: 12.79.176.164 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc06-news.ops.worldnet.att.net 987032103 12.79.176.164 (Wed, 11 Apr 2001 23:35:03 GMT) NNTP-Posting-Date: Wed, 11 Apr 2001 23:35:03 GMT Organization: AT&T Worldnet Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.bme.hu!andromeda.datanet.hu!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.skycache.com!Cidera!europa.netcrusader.net!204.127.161.3!wn3feed!worldnet.att.net!135.173.83.71!wnfilter1!worldnet-localpost!bgtnsc06-news.ops.worldnet.att.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78733 Thanks, Ron, for taking time to write up such an interesting clarification on what you meant. "Ron Hunsinger" wrote in message news:hnsngr-ya023180001104010527110001@news.pacbell.net... > In article , > "The Bakers" wrote: > > > This comment caught my attention. I think I agree with the general > > sentiment of your remarks, but nonetheless I 'lingered' over this sentence a > > little longer than the others. > > > > Some could contend that the COMMON statement (named or unlabelled) in > > "classic" FORTRAN provides just such a mechanism but IIRC that was intended > > for use between and amongst subprograms and the 'main' program with which > > they were link/loaded. On the other hand there is the concept of "shared > > memory" in UNIX; once the necessary system calls have been completed > > (shmget, shmat, etc.) then the high-level language (typically C in this > > context) can access data 'belonging' to another program like it does for any > > other data ...... via pointers [if lexically equipped]. Maybe you should > > have substituted "specifically indicate" for "say", and add "native" in > > front of "way", when making your original statement (or similar > > wordsmithing) ? > > Well, if it's shared memory, then it is yours. It's also some other > process' memory, but the point remains as stated. You only have power over > memory you can name. There is no other way to generate an address than > according to the rules of the language. A safe language will not let you > generate unsafe names. > > In particular, although it was possible in Algol to convert a POINTER to a > REAL (equivalent to casting a C pointer to an int), there was no way to go > the other way. You could not, for example, walk a pointer through all of > memory looking for something interesting. (And even the POINTER to REAL > conversion became disallowed in anticipation of the switchover to ASD > machines, which had a slightly different format for pointers that would > have confused applications that thought they knew how to interpret that > REAL value. Notice that it became disallowed by virtue of the fact that the > compilers stopped accepting it. If you can't say it, you can't do it. And > before you ask, the OS knew which version of the compiler had compiled the > code, and simply refused to execute programs compiled with old compilers.) > > Algol actually had very rich sharing semantics. You could fire off as a > separate process any subroutine call. That other process would still see > everything that was global to that subroutine. Since you could see it too > (because if you couldn't you wouldn't have been able to see the > subroutine), it was all shared. Not just data, but subroutines too. The > other process used as much of your stack as was needed for the shared > stuff, plus its own stack for its own private data. Popping your own stack > below the shared part automatically killed the other process. > > When you fired off the other process, you could pass that subroutine > parameters. If one of those parameters was itself a subroutine, that > subroutine would see whatever was global to its own declaration. It was on > this machine that it was driven home to me that a subroutine is not merely > a block of code. It's also the context in which that code runs, and > sometimes the reason you pass a subroutine as a parameter is not so much to > pass the code as to pass the context. > > You could use this to give another process controlled access to your data. > It can access your data, but only by calling your subroutine. Since you > write the subroutine, you can trust that the shared data is accessed > correctly, even if you don't trust the other process. (In this case, you'd > probably fire off the process from another codefile, rather than from one > of your own subroutines. In that case, the processes wouldn't share any > stack, but the subroutine you pass it as a parameter still carries one of > your stack frames as its context.) > > -Ron Hunsinger ###### From: "Kevin G. Rhoads" Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> Message-ID: <01c0c2e7$e5c99080$acd8173f@stupidwin95> X-Newsreader: Microsoft Internet News 4.70.1161 Newsgroups: alt.folklore.computers Date: Thu, 12 Apr 2001 14:34:31 -0700 NNTP-Posting-Host: 1cust61.tnt2.andover.ma.da.uu.net 63.23.216.61 Lines: 29 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!isdnet!newsfeed.cwix.com!cpmsnbbsb04!cpmsnbbsa09 Xref: chonsp.franklin.ch alt.folklore.computers:78752 > (There's also no high-level >language way to say you want to execute data, so there was no way to do >that even if the hardware didn't check for it.) Yoda-ism: Thinking outside of box, you are not. Year: 1969 Hardware: IBM 360/65 Software: WatFor (Fortran IV a.k.a. Fortran 66) Context: anyone at university is permitted one run/day using WatFor Person: Yours truly, froshling Exploit: Fill integer array with hand assembled code, call subroutine expecting a routine reference as argument with integer array. Voila! Execute data. [Q.E.D.] (Details: Hand assembled code merely gets into supervisor mode and then DivChecks so PSW is dumped. Do you think that data center officials are happy to have security hole exposed in non-destructive manner? If so, I have a wonderful bridge to sell you, metro NYC area . . .) Summary: Most 3GLs have ways of saying "execute data", you just have to read between the lines in the manual to find it. Don't expect it to be called an "execute data" command. -- Kevin G. Rhoads, Ph.D. (The Cheshire Cat for official Internet mascot.) kgrhoads@NO_SPAM.alum.mit.edu ###### From: jeffj@panix.com (Jeff Jonas) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 13 Apr 2001 13:07:23 -0400 Organization: Jeff's House of Electronic Parts Lines: 70 Message-ID: <9b7bob$4e0$1@panix2.panix.com> References: <3AC3B992.76B9EF81@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <01c0c2e7$e5c99080$acd8173f@stupidwin95> NNTP-Posting-Host: panix2.panix.com X-Trace: news.panix.com 987181649 27951 166.84.0.227 (13 Apr 2001 17:07:29 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: 13 Apr 2001 17:07:29 GMT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!newshub2.home.com!news.home.com!howland.erols.net!panix!news.panix.com!panix2.panix.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78726 In article <01c0c2e7$e5c99080$acd8173f@stupidwin95>, Kevin G. Rhoads wrote: >> (There's also no high-level >> language way to say you want to execute data >Yoda-ism: Thinking outside of box, you are not. Agreed: there are many lovely instructions that compilers cannot generate, such as test-and-set (I needed several times for semaphores), etc. To the topic at hand, I recall a friend's program that generated code on the fly into the stack and then jumped into the stack. It was probably in "C". It was very appropriate for what he was doing: generating optimized and specific code for the search/query, on the fly. How does one transfer control to data in a high level language? many ways: 1) use a .asm and jump/call to the desired address 2) use stupid linker tricks, stupid pointer tricks or stupid call tricks. There are ways to confuse any strict typecasting enough to allow transfer of control to data areas. ex: in C: typecast the char* to pointer to function and call it Other languages: give a function/subroutine the address of the array with the code, and the subroutine calls the code (often an external library will help since the linker won't check or enforce the arg types). This won't work in architectures where data pointers and instruction pointers are different sizes or in different address spaces or where the data memory map doesn't allow execute permission. >Year: 1969 >Hardware: IBM 360/65 >Software: WatFor (Fortran IV a.k.a. Fortran 66) >Context: anyone at university is permitted one run/day using WatFor >Person: Yours truly, froshling > >Exploit: Fill integer array with hand assembled code, >call subroutine expecting a routine reference as argument >with integer array. Voila! Execute data. [Q.E.D.] > >(Details: Hand assembled code merely gets into supervisor >mode and then DivChecks so PSW is dumped. Do you >think that data center officials are happy to have security >hole exposed in non-destructive manner? If so, I have a >wonderful bridge to sell you, metro NYC area . . .) Oy, I wanted to do that so long ago! If I'm not mistaken, weren't all disks listed by physical address, so it was rather easy to raw read the disks? >Summary: Most 3GLs have ways of saying "execute data", >you just have to read between the lines in the manual to >find it. Don't expect it to be called an "execute data" >command. Yipes! >Kevin G. Rhoads, Ph.D. > (The Cheshire Cat for official Internet mascot.) I agree with that! Just like the cat, it sometimes vanishes. -- Jeffrey Jonas jeffj@panix(dot)com The original Dr. JCL and Mr .hide ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 13 Apr 2001 18:12:50 GMT Organization: California Institute of Technology, Pasadena Lines: 28 Message-ID: <9b7fj2$9gg@gap.cco.caltech.edu> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <01c0c2e7$e5c99080$acd8173f@stupidwin95> NNTP-Posting-Host: seniti.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.dplanet.ch!news-ge.switch.ch!news-fra1.dfn.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!canoe.uoregon.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.folklore.computers:78736 "Kevin G. Rhoads" writes: >> (There's also no high-level >>language way to say you want to execute data, so there was no way to do >>that even if the hardware didn't check for it.) (snip) >Exploit: Fill integer array with hand assembled code, >call subroutine expecting a routine reference as argument >with integer array. Voila! Execute data. [Q.E.D.] (snip details) All fortran compilers I know of will do this, though WATFOR is supposed to check anything that it can figure out how to check. Fortran allows one to pass the address of a subroutine or function as a argument to another subroutine or function. If, in a subroutine or function, an argument is used without being declared as an array, such as in a DIMENSION statement, but is used with parenthesis after it, it is assumed that a function address is being passed instead of an array! I used to watch at least half the beginning fortran programmers do this, assuming that if the array was dimensioned in main that should be good enough for the subroutine, too. -- glen ###### From: hnsngr@sirius.com (Ron Hunsinger) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <01c0c2e7$e5c99080$acd8173f@stupidwin95> <9b7bob$4e0$1@panix2.panix.com> Organization: ErsteSoft Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit X-Newsreader: Yet Another NewsWatcher 2.3.1 Lines: 61 Date: Sat, 14 Apr 2001 07:23:26 -0700 NNTP-Posting-Host: 216.103.86.8 X-Complaints-To: abuse@pacbell.net X-Trace: news.pacbell.net 987258172 216.103.86.8 (Sat, 14 Apr 2001 07:22:52 PDT) NNTP-Posting-Date: Sat, 14 Apr 2001 07:22:52 PDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!feed2.news.luth.se!luth.se!feed2.onemain.com!feed1.onemain.com!cyclone-sf.pbi.net!206.13.28.33!news.pacbell.net.POSTED!hnsngr Xref: chonsp.franklin.ch alt.folklore.computers:78859 In article <9b7bob$4e0$1@panix2.panix.com>, jeffj@panix.com (Jeff Jonas) wrote: > In article <01c0c2e7$e5c99080$acd8173f@stupidwin95>, > Kevin G. Rhoads wrote: > >> (There's also no high-level > >> language way to say you want to execute data > > >Yoda-ism: Thinking outside of box, you are not. > > Agreed: there are many lovely instructions that compilers cannot generate, > such as test-and-set (I needed several times for semaphores), etc. > > To the topic at hand, I recall a friend's program that > generated code on the fly into the stack and then jumped into the stack. > It was probably in "C". > It was very appropriate for what he was doing: generating optimized > and specific code for the search/query, on the fly. > > How does one transfer control to data in a high level language? > many ways: > > 1) use a .asm and jump/call to the desired address > > 2) use stupid linker tricks, stupid pointer tricks or stupid call tricks. > There are ways to confuse any strict typecasting enough to allow > transfer of control to data areas. .asm and "stupid linker tricks" are not high level languages. Languages that permit typecasting or other "type unsafety" are, to that extent, not high level. Maybe I should have been clearer. Security on the Burroughs Large Systems relied partly on the fact that (almost) none of the compilers AVAILABLE ON THAT MACHINE would allow you to play the kind of address trickery needed to say you wanted to execute data. Because type safety was so important on this machine, all of the compilers enforced it to a much greater degree than is customary with other compilers on other machines. I did not mean to imply any limitation on what other, more careless systems would let you get away with. I only meant that, on this system, any of the usual tricks to execute data (or access data that wasn't yours) would be detected and rejected by the compiler. (The operating system itself was written in a variant of Algol. Initially, this was a language called ESPOL, but that was eventually superceded by NEWP, another algol-ish language with a strong flavor of Modula. The NEWP and ESPOL compilers would, indeed, let you perform arbitrary manipulation of anything. If needed, you could hand-build your own descriptor describing anything any way you wanted. After all, the OS needed to be able to read programs from disk into memory and mark them as code, and when the code was no longer needed use the memory for something else, perhaps even data. And the virtual memory implementation had to be able to move anything anywhere and mutate pointers in arbitray ways. (The catch, though, was that programs written in ESPOL or NEWP were not considered executable. The only thing you could do with such a program was bootstrap from it (or link it to the OS as an intrinsics library). Only the system operator or a superuser could do either of those things, and neither could be done surreptitiously.) -Ron Hunsinger ###### From: "Kevin G. Rhoads" Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <01c0c2e7$e5c99080$acd8173f@stupidwin95> <9b7bob$4e0$1@panix2.panix.com> Message-ID: <01c0c510$4be94020$0100007f@stupidwin95> X-Newsreader: Microsoft Internet News 4.70.1161 Newsgroups: alt.folklore.computers Date: Sat, 14 Apr 2001 11:54:54 -0700 NNTP-Posting-Host: 1cust229.tnt1.andover.ma.da.uu.net 63.23.215.229 Lines: 30 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news.tele.dk!204.71.34.15!news-out.cwix.com!newsfeed.cwix.com!cpmsnbbsb04!cpmsnbbsa09 Xref: chonsp.franklin.ch alt.folklore.computers:78845 >Maybe I should have been clearer. Security on the Burroughs Large Systems >relied partly on the fact that (almost) none of the compilers AVAILABLE ON >THAT MACHINE would allow you to play the kind of address trickery needed to >say you wanted to execute data. You were clear enough, and noone disagreed that for compilers available on such machines you cannot try to execute data. All Harvard architectures share that trait to some extent. However, all von Neumann architectures support execution of data, and 3GL compilers on such architectures usually allow you to say "execute data" even though the way(s) to do so may not be labelled as such. The comparison of the merits vs. problems of various architectures of hardware and software, however, is almost as prone to generate into religious tirades as is discussion of GOTOs. Other architectural issues that can be considered in the asm vs. HLL light include jump tables -- easy enough to construct in asm, difficult to construct *explicitly* in most HLLs. -- Kevin G. Rhoads, Ph.D. (The Cheshire Cat for official Internet mascot.) kgrhoads@NO_SPAM.alum.mit.edu ###### From: David E. Fox Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Sun, 15 Apr 2001 11:44:38 -0700 Organization: Dave's Really krad linux box Message-ID: Reply-To: dfox@m206-157.dsl.tsoft.com References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> User-Agent: KNode/0.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: newsabuse@supernews.com Lines: 37 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!logbridge.uoregon.edu!hammer.uoregon.edu!feed.textport.net!sn-xit-04!sn-post-01!supernews.com!corp.supernews.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78873 Neil Franklin wrote: > If complex varied calls are fair game, this reminds me of the Intel > 286 and later FAR JMP/JSR/RET instructions, when in protected mode. If micros are to be allowed, my vote for a really 'cisky' instruction would be the 8088 (and later) decimal instructions like AAA and AAD (Ascii adjust for addition & division respectively). I recall that on the early 8088s, these instructions took >60 clocks, far and above the norm for most user-space instructions. PM instructions on 386s took a long time to execute compared to other instructions, so things like far calls or jumps through such a task or call gate could be called very 'cisky' unless we are restricting to only usermode instructions. My gut feeling is that the AAA/AAD (there was also AAM & AAS) weren't all that heavily used, but Intel was able to significantly reduce the number of clocks these instructions used in subsequent generations of the 8088 processor. > The same chip can also force the 286 A20 address line to 0 to simulate > the exact real mode addressing behaviour of the 8088. This is called > the A20 Gate. Also exploited was the use of the additional bit of address to give an extra 64K of "high" memory (loadhigh in config.sys). One tidbit that I don't know for sure is that the A20 gate actually went to the keyboard. > Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ > Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer -- ------------------------------------------------------------------------ David E. Fox Thanks for letting me dfox@tsoft.com change magnetic patterns dfox@m206-157.dsl.tsoft.com on your hard disk. ----------------------------------------------------------------------- ###### Path: chonsp.franklin.ch!not-for-mail From: Neil Franklin Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 16 Apr 2001 00:05:02 +0200 Organization: My own Private Self Lines: 51 Message-ID: <6uhezp95v5.fsf@chonsp.franklin.ch> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> NNTP-Posting-Host: chonsp.franklin.ch X-Trace: chonsp.franklin.ch 987372302 1520 10.0.3.2 (15 Apr 2001 22:05:02 GMT) X-Complaints-To: news@chonsp.franklin.ch NNTP-Posting-Date: 15 Apr 2001 22:05:02 GMT X-Newsreader: Gnus v5.7/Emacs 20.4 Xref: chonsp.franklin.ch alt.folklore.computers:78881 David E. Fox writes: > Neil Franklin wrote: > > > If complex varied calls are fair game, this reminds me of the Intel > > 286 and later FAR JMP/JSR/RET instructions, when in protected mode. > > If micros are to be allowed, General rule on a.f.c is older than 10 years. 80286 is over 15. 8086/88 over 20. > user-space instructions. PM instructions on 386s took a long time to > execute compared to other instructions, so things like far calls or jumps > through such a task or call gate could be called very 'cisky' unless we are > restricting to only usermode instructions. The Burroughs stuff seems to be an machine that does not even have an user/system mode distinction. > > The same chip can also force the 286 A20 address line to 0 to simulate > > the exact real mode addressing behaviour of the 8088. This is called > > the A20 Gate. > > Also exploited was the use of the additional bit of address to give an > extra 64K of "high" memory Which required above A20 gate to be switched on. The A20 was there to (per default) switch this possibility off, to precisely emulate 8088. > (loadhigh in config.sys). After addind device=himes.sys in config.sys, which did the A20 switch. We once had to exchange an motherboard because himen.sys did not correctly auto-select one of its 8 methods to do so. We were using swappabe HDs, one per User, use any computer. > One tidbit that I > don't know for sure is that the A20 gate actually went to the keyboard. Not to the keyboard. To the keyboard interface chip (on the motherboard). -- Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer - Intellectual Property is Intellectual Robbery ###### From: ard@p850ug1.demon.co.uk (Tony Duell) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 15 Apr 2001 22:34:55 +0100 Organization: P850 User Group Message-ID: <9bd45v$124@p850ug1.demon.co.uk> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> NNTP-Posting-Host: p850ug1.demon.co.uk X-NNTP-Posting-Host: p850ug1.demon.co.uk:158.152.97.199 X-Trace: news.demon.co.uk 987372625 nnrp-14:18537 NO-IDENT p850ug1.demon.co.uk:158.152.97.199 X-Complaints-To: abuse@demon.net X-Newsreader: TIN [version 1.2 PL2] Lines: 29 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news-lei1.dfn.de!newsfeed.freenet.de!newsfeed.easynews.net!easynews.net!easynet-tele!easynet.net!dispose.news.demon.net!news.demon.co.uk!demon!p850ug1.demon.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78884 David E. Fox (dfox@m206-157.dsl.tsoft.com) wrote: : Also exploited was the use of the additional bit of address to give an : extra 64K of "high" memory (loadhigh in config.sys). One tidbit that I : don't know for sure is that the A20 gate actually went to the keyboard. No, it doesn't. On the original IBM PC/AT[1] it did go to the keyboard controller, though. [1] It may well do so in many clones as well, but I don't have schematics of anything but the original IBMs here. Let me explain. The PC/AT keyboard contains a microcontroller (an 8048, normally) that communicates via a synchronous serial link with another microcontroller on the PC/AT motherboard. This second microcontroller, an 8042, is linked to the main system bus. The 80286 CPU (or whatever) can read keystroke codes from the 8042, and can send commands to the 8042 to do things like set the states of the LEDs on the keyboard, etc. There were some spare I/O lines on the 8042. Rather than waste them, IBM used them to control or monitor various low-speed signals on the motherboard. Things like reading the state of the keylock switch. And the display adapter type switch. And controlling the A20 gate line. That's the only connection between A20gate and the keyboard. It happens to be controlled by a spare I/O port line on the keyboard interface microcontroller. -tony ###### From: ard@p850ug1.demon.co.uk (Tony Duell) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 15 Apr 2001 22:55:53 +0100 Organization: P850 User Group Message-ID: <9bd5d9$142@p850ug1.demon.co.uk> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> NNTP-Posting-Host: p850ug1.demon.co.uk X-NNTP-Posting-Host: p850ug1.demon.co.uk:158.152.97.199 X-Trace: news.demon.co.uk 987372626 nnrp-14:18537 NO-IDENT p850ug1.demon.co.uk:158.152.97.199 X-Complaints-To: abuse@demon.net X-Newsreader: TIN [version 1.2 PL2] Lines: 37 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeeds.belnet.be!news.belnet.be!newsfeed.icl.net!dispose.news.demon.net!news.demon.co.uk!demon!p850ug1.demon.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78883 Neil Franklin (neil@franklin.ch.remove) wrote: : PC Trivia: 286 (unlike 386 and later) can switch from non-protected : 8=real) mode to protected mode, but can't switch back (deliberate : decision on part of Intel). Reset starts in real mode. : Guess how 8088/MS-DOS software that temporarily used 286 for RAM : above 1MByte (VDISK.SYS, RAMDRIVE.SYS, SMARTDRV.SYS) gets back home? : Set GDT to new segment with 0 length. Do any segment load, it fails, : exeption faills, Double Fault fails, Tripple, Reset, real mode. Just : needs the PC BIOS to test an "do not boot" Flag and return to the : waiting real mode code. : Interestingly IBM did not know this trick when making the PC/AT. They Didn't they? Then what is U84b (74ALS27) (on either version board) for? According to the Intel 80286 data sheet, if it gets a tripple fault, the processor goes into shutdown state. This is indictated by the status lines being in the following states : S0/ = 0, S1/ = 0, M/IO = 1, A1 = 0. It does not automatically reset at this point, though. In the PC/AT (I have the schematics in front of me, I will give component references for the later version board with 256K DRAMs, but the earlier version is the same in concept), U84b detects S1/=1, S0/=1 and A1=1. This combination clocks the state of the M/IO line into U105b (74ALS74, a D-type flip-flop). If M/!O is 1, then this flip-flop setsm and, via a couple more D-types, generates a reset signal to the CPU. _That's_ why the CPU resets on a tripple fault -- logic that IBM put on the motherboard. And the reset-CPU output from the 8042 keyboard controller? It asserts the set direct input of U105b, and causes a reset to be generated that way. -tony ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <9ae4bb$17h$1@freenet9.carleton.ca> <3AD1FEF2.5A728A5C@allegro.com> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 42 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 16 Apr 2001 15:04:24 GMT NNTP-Posting-Host: 199.174.229.61 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 987433464 199.174.229.61 (Mon, 16 Apr 2001 08:04:24 PDT) NNTP-Posting-Date: Mon, 16 Apr 2001 08:04:24 PDT X-Received-Date: Mon, 16 Apr 2001 08:03:05 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!lsanca1-snf1!news.gtei.net!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78891 Stan Sieler writes: > sometimes called a "baby Burroughs" ... and a machine I'm still on!). > Within a couple of months, after learning how the HP 3000 hardware > security > worked, I was able to design a successful attack on the Burroughs > security (involving passing a too-short buffer to an intrinsic that I > knew called RCCGETPRIVILEGED). I told RCC about it, and they patched > the > hole easily, but my point was that exposure to different ways of > thinking > can sometimes reveal holes that you might otherwise miss. after having written operating system, debugged operating system, been 1st, 2nd, 3rd level support for operating system, and having developed a number of debugging and problem analysis tools .... there were a couple of frequent problems, dangling pointers and (frequently associated) asyncronous activities. i had some experience with string & buffer length problems but not in significant numbers. when doing analysis of unix & C language in the '80s for high availability product, C language convention of implicit lengths was identified as possibly increasing buffer problems (& exploits) by a couple orders of magnitude (at least to what we were familiar with). reference to assurance panel discussion i was on at Intel Developer's conference: http://www.garlic.com/~lynn/aadsm5.htm#asrn4 random refs: http://www.garlic.com/~lynn/ansiepay.htm#theory Security breach raises questions about Internet shopping http://www.garlic.com/~lynn/99.html#44 Internet and/or ARPANET? http://www.garlic.com/~lynn/99.html#219 Study says "buffer overflow" is most common security bug http://www.garlic.com/~lynn/2000.html#25 Computer of the century http://www.garlic.com/~lynn/2000.html#30 Computer of the century http://www.garlic.com/~lynn/2000b.html#17 ooh, a real flamewar :) http://www.garlic.com/~lynn/2001b.html#58 Checkpoint better than PIX or vice versa??? http://www.garlic.com/~lynn/2001c.html#32 How Commercial-Off-The-Shelf Systems make society vulnerable http://www.garlic.com/~lynn/2001c.html#38 How Commercial-Off-The-Shelf Systems make society vulnerable http://www.garlic.com/~lynn/2001c.html#66 KI-10 vs. IBM at Rutgers -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Path: chonsp.franklin.ch!not-for-mail From: Neil Franklin Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 16 Apr 2001 21:50:41 +0200 Organization: My own Private Self Lines: 72 Message-ID: <6uzodgr5da.fsf@chonsp.franklin.ch> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> <9bd5d9$142@p850ug1.demon.co.uk> NNTP-Posting-Host: chonsp.franklin.ch X-Trace: chonsp.franklin.ch 987450642 621 10.0.3.2 (16 Apr 2001 19:50:42 GMT) X-Complaints-To: news@chonsp.franklin.ch NNTP-Posting-Date: 16 Apr 2001 19:50:42 GMT X-Newsreader: Gnus v5.7/Emacs 20.4 Xref: chonsp.franklin.ch alt.folklore.computers:78921 ard@p850ug1.demon.co.uk (Tony Duell) writes: > Neil Franklin (neil@franklin.ch.remove) wrote: > : PC Trivia: 286 (unlike 386 and later) can switch from non-protected > : 8=real) mode to protected mode, but can't switch back (deliberate > : decision on part of Intel). Reset starts in real mode. > > : Guess how 8088/MS-DOS software that temporarily used 286 for RAM > : above 1MByte (VDISK.SYS, RAMDRIVE.SYS, SMARTDRV.SYS) gets back home? > : Set GDT to new segment with 0 length. Do any segment load, it fails, > : exeption faills, Double Fault fails, Tripple, Reset, real mode. Just > : needs the PC BIOS to test an "do not boot" Flag and return to the > : waiting real mode code. > > : Interestingly IBM did not know this trick when making the PC/AT. They > > Didn't they? Then what is U84b (74ALS27) (on either version board) for? Some helpfull person who thought "what should I go when this tripple fault is signalled?" must have decided that reset is the most sensible thing to do. And it turned out to be an valuable feature that was deliberately used. IBM overengineering at its best. > According to the Intel 80286 data sheet, if it gets a tripple fault, the > processor goes into shutdown state. > > It does not automatically reset at this point, though. > couple more D-types, generates a reset signal to the CPU. _That's_ why > the CPU resets on a tripple fault -- logic that IBM put on the motherboard. Exactly. That is why IBM had to wire this state to do an reset. As I wrote and you snipped (did not see it?): ------- exists an "Double Fault" exeption and if that faills an "Tripple Fault" state which simply halts the processor and asserts an error pin. On the IBM PC/AT this pin is hardwired to Reset. ------- OK, "error pin" should be error state. > And the reset-CPU output from the 8042 keyboard controller? It asserts > the set direct input of U105b, and causes a reset to be generated that way. And that was my point: this must be in there, because IBM did not think of using the already existing tripple fault detector to trigger reset (or the tripple fault detector was added later and no one noticed that the 8042 reset is now superflouos). The technique of deliberately tripple faulting for reset seems to have only been discovered later (at least after specifying the 8042 reset). And tripple fault is also superseded today. There exist an 286-only undocumented "test processor" instruction, which loads the entire registers, inclusive mode bit, from an fixed low RAM address. MS-DOS 5.0 actually has an patch of zero bytes there to allow this to be used. And its SMARTDRV.SYS uses it. IIRC, it was an 2 byte instruction. The 386 has an other 386-only test instruction with different base address and different data format. But no one needs it, as the 386 can do protected->real mode the obvious way (reset mode flag). -- Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer - Intellectual Property is Intellectual Robbery ###### From: J Ahlstrom Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 17 Apr 2001 14:10:13 -0700 Organization: Cisco Systems Inc. Message-ID: <3ADCB135.7F10CD71@cisco.com> X-Mailer: Mozilla 4.76 [en]C-CCK-MCD (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> <6uhezp95v5.fsf@chonsp.franklin.ch> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cache-Post-Path: sj-nntpcache-5!unknown@dhcp-171-68-135-147.cisco.com X-Cache: nntpcache 2.4.0b2 (see http://www.nntpcache.org/) X-Complaints-To: newsabuse@supernews.com Lines: 24 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!newshub2.rdc1.sfba.home.com!news.home.com!sn-xit-01!sn-post-01!supernews.com!corp.supernews.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:78923 Neil Franklin wrote: > > The Burroughs stuff seems to be an machine that does not even have an > user/system mode distinction. > > -- > Neil Franklin, neil@franklin.ch.remove http://neil.franklin.ch/ > Hacker, Unix Guru, El Eng HTL/BSc, Sysadmin, Archer, Roleplayer > - Intellectual Property is Intellectual Robbery I believe the B5000 was the first machine with user/supervisor mode difference. Its immediate military predecessor D-825 may have had it. JKA -- If you can't design out the vibration, throw another shock absorber at the problem. C Bedard ###### From: Henrik Jacobsen <120011012945@post.tele.dk> Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Wed, 18 Apr 2001 23:16:01 +0200 Organization: Posted through some European Outpost of TDC Internet A/S Lines: 24 Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <6u66glaftr.fsf@chonsp.franklin.ch> <9bd5d9$142@p850ug1.demon.co.uk> <6uzodgr5da.fsf@chonsp.franklin.ch> Reply-To: hj@pip.dknet.dk NNTP-Posting-Host: ip39.albnxr7.ras.tele.dk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.inet.tele.dk 987628581 14111 195.41.168.39 X-Complaints-To: the appropriate department of the poster's provider X-Newsreader: Forte Agent 1.6/32.525 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news.tele.dk!TDC-Europe.POSTED!ip39.albnxr7.ras.tele.dk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:79047 Neil Franklin wrote: >And tripple fault is also superseded today. There exist an 286-only >undocumented "test processor" instruction, which loads the entire >registers, inclusive mode bit, from an fixed low RAM address. MS-DOS >5.0 actually has an patch of zero bytes there to allow this to be >used. And its SMARTDRV.SYS uses it. IIRC, it was an 2 byte instruction. > >The 386 has an other 386-only test instruction with different base >address and different data format. But no one needs it, as the 386 can >do protected->real mode the obvious way (reset mode flag). Guess you are refering to the LOADALL instruction? It's nifty, because it makes it possible to load the "shadow" base/limit registers related to the segment registers directly, thereby making it possible to reach the address space beyond 1 MB *without* entering Protected Mode. The instruction (opcode 0F 05) is used in the RAMDRIVE.SYS virtual disk driver supplied with some versions of DOS. Best regards Henrik Jacobsen ###### From: artie Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 14 Aug 2001 20:41:10 -0700 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <140820012041109367%artie@nospam.netgate.net> References: <3AC3B992.76B9EF81@ev1.net> <9a0r96$epu$1@freenet9.carleton.ca> <3AC57B7C.C24A8DAC@ev1.net> <9a3r94$4mh$1@freenet9.carleton.ca> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 8bit Mail-Copies-To: nobody User-Agent: YA-NewsWatcher/5.0.1 X-Complaints-To: newsabuse@supernews.com Lines: 19 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news-fra1.dfn.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!newsfeed.stanford.edu!sn-xit-01!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!artie Xref: chonsp.franklin.ch alt.folklore.computers:87535 >What is the most "CISC" instruction that you have found??? On the VAX, along with the already mentioned POLY and CRC instructions, there were various flavors of MOVC (move character) instructions, up to MOVC5 which did editing on the fly, and was a microcode nightmare -- think of the bounds checking which had to be done, for example. For really high instruction complexity to use ratio though, two VAX instructions win the prize: Load process context, and save process context. IIRC, each is used *twice* in the entire operating system, initiating the large amount of work needed to switch process contexts. These two instructions were also very architecture (implementation) dependant. For example, on the original 11/780, if the optional floating point accelerator was present, those registers became part of the process context. namaste-- ###### From: Howard Siegel Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 15 Aug 2001 07:37:37 GMT Organization: Gallifrey Beach Club Lines: 48 Message-ID: <9ld8s0$4m9$1@news.panix.com> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> Reply-To: not.interested@nospam.invalid NNTP-Posting-Host: panix2.panix.com X-Trace: news.panix.com 997861057 4809 166.84.1.2 (15 Aug 2001 07:37:37 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: 15 Aug 2001 07:37:37 GMT X-Newsreader: trn 4.0-test74 (May 26, 2000) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsxfer.eecs.umich.edu!panix!news.panix.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87465 artie@nospam.netgate.net writes: > > >What is the most "CISC" instruction that you have found??? > > On the VAX, along with the already mentioned POLY and CRC instructions, > there were various flavors of MOVC (move character) instructions, up to > MOVC5 which did editing on the fly, MOVC5 did not do editting on the fly. The format of this instruction was MOVC5 srclen, srcaddr, fillval, destlen, destaddr The operation was move the "string" specified by the srclen and srcaddr operands is copied to the destination "string" specified by the destlen and destaddr operands. If the src string was smaller than the dest string (srclen < destlen), the remainder of the dest string is filled with the fillval operand. The instruction that did the editting on the fly was the MOVTC (move translated characters) instruction, which was similar to MOVC5. MOVTC was thus: MOVTC srclen, srcaddr, fillval, tbladdr, destlen, destaddr Basically it worked just like MOVC5 (especially as regards the lengths and the fill value), but instead of moving the source bytes directly to the destination, they were used to index in to the translation table located at tbladdr. > and was a microcode nightmare -- > think of the bounds checking which had to be done, for example. MOVTUC (move translated until character) was even more of a nightmare as were SCANC, SKPC, and SPANC! All the more so because MOVC family of instructions was mircrocoded so that they always worked correctly even if the source and destination strings overlapped! - howard -- -- Netcom Class of '93, RIP Netcom! <*> hsiegel<->at<->pobox<->dot<->com ###### Mime-Version: 1.0 X-Newsreader: knews 1.0b.1 Organization: I do not speak for anyone but myself, and barely that. References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> From: dg@pearl.tao.co.uk (David Given) Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Newsgroups: alt.folklore.computers Content-Type: text/plain; charset=us-ascii Message-ID: Lines: 18 Date: Wed, 15 Aug 2001 14:27:50 +0100 NNTP-Posting-Host: 62.255.240.131 X-Complaints-To: abuse@ntlworld.com X-Trace: news6-win.server.ntlworld.com 997889129 62.255.240.131 (Wed, 15 Aug 2001 16:25:29 BST) NNTP-Posting-Date: Wed, 15 Aug 2001 16:25:29 BST Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.tele.dk!small.news.tele.dk!195.54.122.107!newsfeed1.bredband.com!bredband!diablo.netcom.net.uk!netcom.net.uk!btnet-peer!btnet-peer0!btnet!news5-gui.server.ntli.net!ntli.net!news6-win.server.ntlworld.com.POSTED!127.0.0.1!nobody Xref: chonsp.franklin.ch alt.folklore.computers:87545 In article <9ld8s0$4m9$1@news.panix.com>, Howard Siegel writes: [...] > All the more so because MOVC family of instructions was mircrocoded > so that they always worked correctly even if the source and destination > strings overlapped! You know, I've heard a lot about microcode recently; old 370 processors, VAXen, Pentiums, Crusoe, etc. I even heard about an APL interpreter microcoded into an IBM mainframe! So what does microcode actually look like? I imagine it as a kind of very low-level assembly language, but I'm sure there's some microcode experts here willing to enlighten me... -- +- David Given --------McQ-+ "Est brilgum: toui slimici | Work: dg@tao-group.com | In uabo tererotitant | Play: dg@cowlark.com | Brogoui sunt macresculi +- http://www.cowlark.com -+ Momi rasti strugitant." --- Anonymous ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 48 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 15 Aug 2001 16:24:31 GMT NNTP-Posting-Host: 199.174.230.87 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 997892671 199.174.230.87 (Wed, 15 Aug 2001 09:24:31 PDT) NNTP-Posting-Date: Wed, 15 Aug 2001 09:24:31 PDT X-Received-Date: Wed, 15 Aug 2001 09:21:19 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.online.be!64.154.60.72.MISMATCH!cyclone2.usenetserver.com!usenetserver.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87492 dg@pearl.tao.co.uk (David Given) writes: > > You know, I've heard a lot about microcode recently; old 370 processors, > VAXen, Pentiums, Crusoe, etc. I even heard about an APL interpreter > microcoded into an IBM mainframe! So what does microcode actually look > like? I imagine it as a kind of very low-level assembly language, but I'm > sure there's some microcode experts here willing to enlighten me... depends on the machine ... lots of it the low-end 370s ... the processing engine looked a lot like 16-bit minicomputer in the late '70s, there was a project called fort knox to converge all the low-end machines to an 801 engine (in part because just about every model used a different processor engine; fort knoxalso was going to be applied to some of the non-370 processor products also). fort knox got axed (i help the author of the report that axe'd it). To be competitive, state-of-the-art had to start moving instructions directly into the processor hardware and get better than the 10:1 370 emulation thruput that the low-end microprocessor engines had been getting up until that point; aka a 370/125 at about 100kips needed about a 1mip microprocessor engine. in the above respect ... the low-end "microcode" wasn't to unsimilar from the various 370/390 emulators currently available on intel platform. for high end machines ... and controllers like the 3830 ... it was horizontal microcode with one instruction per machine cycle ... i.e. wide instructions that had lots of bits for doing things like start load into some working register ... and then you are suppose to know that some number of machine instructions/cycles later .. the value was available to work on. The high-end machines rather than measuring efficiency as avg. microprocessor instructions per 370 instruction (in the vertical microprocessor engines), the horizontal microprocessor machines tended to measure efficiency in avg. machine cycles per instruction (in part because a single vliw instruction might be operating on multiple 370 instructions concurrently). For instance optimization of the microcode help drop the avg. cycle per instruction on the 370/165 at 2.1cycls/instr to about 1.6cycles/instr for the 370/168. random refs: http://www.garlic.com/~lynn/subtopic.html#mcode -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### From: "Geoffrey G. Rochat" Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Wed, 15 Aug 2001 13:38:49 -0400 Organization: WWW.US.INTER.NET Lines: 22 Message-ID: <9lebit$4g8$1@news-central.tiac.net> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> NNTP-Posting-Host: 204.180.74.40 X-Trace: news-central.tiac.net 997896606 4616 204.180.74.40 (15 Aug 2001 17:30:06 GMT) X-Complaints-To: abuse@us.inter.net NNTP-Posting-Date: Wed, 15 Aug 2001 17:30:06 +0000 (UTC) X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!news-lei1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-peer1.tiac.net!posterchild2.tiac.net!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87510 >You know, I've heard a lot about microcode recently; old 370 processors, >VAXen, Pentiums, Crusoe, etc. I even heard about an APL interpreter >microcoded into an IBM mainframe! So what does microcode actually look >like? I imagine it as a kind of very low-level assembly language, but I'm >sure there's some microcode experts here willing to enlighten me... Go snag yourself a copy of "Bit-Slice Microprocessor Design" by John Mick and James Brick, published by McGraw-Hill in 1980, ISBN 0-07-041781-4. Mick and Brick were AMD engineers who edited a long series of AMD apps notes together into this book, and it tells you more than you ever wanted to know - more, indeed, than you every imagined there was to know - about designing with and microcoding 2901 bit-slice machines. As examples it also gives the complete designs for two bit-sliced minicomputers, the HEX-29 and the Super Sixteen, both roughly comparable to early mid-range Nova or PDP-11 class machines. It's a superb book for anyone reading this newsgroup who wants to see how it was done 25-30 years ago. ###### From: bhk@dsl.co.uk (Brian {Hamilton Kelly}) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Wed, 15 Aug 2001 23:35:16 GMT Organization: Dragonhill Systems Ltd Message-ID: <997918516snz@dsl.co.uk> References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> X-Trace: mail2news.demon.co.uk 997924532 mail2news:1936 mail2news mail2news.demon.co.uk X-Complaints-To: abuse@demon.net X-Mail2News-Path: news.demon.net!dsl.demon.co.uk X-Newsreader: Demon Internet Simple News v1.31 Lines: 22 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!210452!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!howland.erols.net!dispose.news.demon.net!news.demon.co.uk!demon!mail2news.demon.co.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87639 In article lynn@garlic.com writes: > for high end machines ... and controllers like the 3830 ... it was > horizontal microcode with one instruction per machine cycle > ... i.e. wide instructions that had lots of bits for doing things like > start load into some working register ... and then you are suppose to > know that some number of machine instructions/cycles later .. the > value was available to work on. Ooohh! Rather like writing for the DEUCE, or the 402, or any of those other machines where the next instruction's address was in the previous one, and one would allow for the drum to have rotated by the right number of words so as to be ready to pick that up after the mill had finished executing the divide instruction. (About half-a-revolution, in the case of the DEUCE.) -- Brian {Hamilton Kelly} bhk@dsl.co.uk "We have gone from a world of concentrated knowledge and wisdom to one of distributed ignorance. And we know and understand less while being incr- easingly capable." Prof. Peter Cochrane, formerly of BT Labs ###### From: pmaydell@chiark.greenend.org.uk (Peter Maydell) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 18 Aug 2001 00:49:04 +0100 (BST) Organization: University of Cambridge, England Lines: 62 Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> NNTP-Posting-Host: rapun.sel.cam.ac.uk User-Agent: slrn/0.9.7.1 (Linux) Originator: root@news.chiark.greenend.org.uk ([127.0.0.1]) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.stanford.edu!paloalto-snf1.gtei.net!paloalto-snh1.gtei.net!news.gtei.net!pln-w!extra.newsguy.com!lotsanews.com!peernews.mcc.ac.uk!daresbury!pegasus.csx.cam.ac.uk!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87774 David Given wrote: > You know, I've heard a lot about microcode recently; old 370 processors, > VAXen, Pentiums, Crusoe, etc. I even heard about an APL interpreter > microcoded into an IBM mainframe! So what does microcode actually look > like? I imagine it as a kind of very low-level assembly language, but I'm > sure there's some microcode experts here willing to enlighten me... As others have noted, it's very machine-specific -- you're usually directly controlling the CPU hardware, after all. The PERQ was user-microcodable, so the microcode is pretty well documented. [For brevity, I'm going to abbreviate "microcode instruction" as "uinsn".] A uinsn is 48 bits wide, and the various bits in the instruction all map more-or-less directly onto control lines in the CPU. (Some fields are used for different things depending on the instruction). So a uinsn can do several things at once, if they use different bits of the CPU: Reg := Reg + 4, Fetch4, call(sub) is a single uinsn which does a register addition, initiates a memory operation and calls a microcode subroutine. Microcode is read from the microcode store, which is 4 or 16 Kwords of on-CPU-board RAM. This is totally separate from the main memory in which is kept user data and user programs -- that's on a separate memory board. In the PERQ, one uinsn is executed per CPU clock cycle, but memory access is multiple clock cycles. This means you start a memory access in one uinsn, and the data becomes available some time later. If your microcode doesn't pull the data off the main memory bus at the right time you'll lose it. Also, most instructions have a field giving the address to read the next uinsn from (in some that field is used for another purpose). So you get a for-free goto most of the time. The PERQ microcode assembler makes use of this: you write microcode vaguely like normal assembly, with implicit drop-through-to-next-insn and only a few instructions given explicitly set address labels, but the assembler will then scramble the statements to fit in available memory by filling in the next-insn field in the uinsn. So this sort of thing works: Loc(114) ; this says 'put next insn at address 114' Loc(118) Which is important, because user bytecode is executed via a hardware 256-way branch to + * 4, and hand-coding the gotos necessary to get code for each case out of the way of the next one would be tedious. Also, at the microcode level interrupts aren't automatic. The microcode has to explicitly check an 'interrupt pending' flag every so often and branch off to handle it. http://www.chiark.greenend.org.uk/~pmaydell/PERQ/rot13.mic.html has an untested routine I wrote to implement a hypothetical ROT13 user-level instruction, plus links to ARD12's introduction to microcode programming. [David, I'll probably bring the "Modifying the Microcode" manual into work for you to have a look at.] -- PMM ###### Mime-Version: 1.0 X-Newsreader: knews 1.0b.1 Organization: I do not speak for anyone but myself, and barely that. References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> From: dg@pearl.tao.co.uk (David Given) Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Newsgroups: alt.folklore.computers Content-Type: text/plain; charset=us-ascii Message-ID: Lines: 24 Date: Mon, 20 Aug 2001 15:14:05 +0100 NNTP-Posting-Host: 62.255.240.131 X-Complaints-To: abuse@ntlworld.com X-Trace: news6-win.server.ntlworld.com 998326484 62.255.240.131 (Mon, 20 Aug 2001 17:54:44 BST) NNTP-Posting-Date: Mon, 20 Aug 2001 17:54:44 BST Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeeds.belnet.be!news.belnet.be!colt.net!newspeer.highwayone.net!newspeer.clara.net!news.clara.net!news5-gui.server.ntli.net!ntli.net!news6-win.server.ntlworld.com.POSTED!127.0.0.1!nobody Xref: chonsp.franklin.ch alt.folklore.computers:87838 In article , pmaydell@chiark.greenend.org.uk (Peter Maydell) writes: [...] > http://www.chiark.greenend.org.uk/~pmaydell/PERQ/rot13.mic.html > has an untested routine I wrote to implement a hypothetical ROT13 > user-level instruction, plus links to ARD12's introduction to microcode > programming. > > [David, I'll probably bring the "Modifying the Microcode" manual > into work for you to have a look at.] YKYBHTLW it's easier for the guy sitting across the room from you to talk to you by posting a message to Usenet than it is to get up and walk. Thanks, Peter. ...every so often I have this strange idea about getting an old Perq or VAX or something and rewriting the microcode to turn it into a Spectrum. But then I usually get better... -- +- David Given --------McQ-+ "Why should we put ourselves out of our way to | Work: dg@tao-group.com | serve posterity? For what has posterity ever done | Play: dg@cowlark.com | for us?" --- Sir Boyle Roche +- http://www.cowlark.com -+ ###### From: Bruce Tomlin Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 21 Aug 2001 19:08:25 -0500 Organization: Jump.Net, Inc. Lines: 11 Message-ID: References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> NNTP-Posting-Host: 207.8.42.24 X-Trace: news.jump.net 998438921 8482 207.8.42.24 (22 Aug 2001 00:08:41 GMT) X-Complaints-To: abuse@jump.net NNTP-Posting-Date: Wed, 22 Aug 2001 00:08:41 +0000 (UTC) User-Agent: MT-NewsWatcher/3.1 (PPC) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-koe1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-feeds.jump.net!news.jump.net!bruceNS+usenet8 Xref: chonsp.franklin.ch alt.folklore.computers:88078 In article , dg@pearl.tao.co.uk (David Given) wrote: > ...every so often I have this strange idea about getting an old Perq or > VAX or something and rewriting the microcode to turn it into a Spectrum. > But then I usually get better... Well, the reverse has sort of been done. IBM once implemented the 370 (or was it the 360?) instruction set in microcode on a pair of 68K CPU core chips (the second CPU chip was for the more CISCy instructions that wouldn't fit in the microcode store of the first one). IIRC, it was called the PC/370 and was sold as a card inside an otherwise bog-standard PC/AT. ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 40 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 22 Aug 2001 02:15:20 GMT NNTP-Posting-Host: 199.174.229.70 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 998446520 199.174.229.70 (Tue, 21 Aug 2001 19:15:20 PDT) NNTP-Posting-Date: Tue, 21 Aug 2001 19:15:20 PDT X-Received-Date: Tue, 21 Aug 2001 19:12:39 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!skynet.be!skynet.be!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!netnews.com!xfer02.netnews.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87943 Bruce Tomlin writes: > Well, the reverse has sort of been done. IBM once implemented the 370 (or > was it the 360?) instruction set in microcode on a pair of 68K CPU core chips > (the second CPU chip was for the more CISCy instructions that wouldn't fit in > the microcode store of the first one). IIRC, it was called the PC/370 and > was sold as a card inside an otherwise bog-standard PC/AT. the first one was called XT/370 ... it was hard fitting into a couple 20mbyte hard disks with something like 140ms access time (i may have an early performance document around someplace, disk was 100+ms plus latency passing I/O requests back & forth between the 370 processing and cp/88 running on the XT's 8088). I got accused of delaying "washington" first customer ship (FCS) by six months when I benchmarked early versions and pointed out the difficulty of fitting VM/CMS & applications into 384kbytes (370 storage). They reworked the board to get an extra 128kbytes memory so the thing eventually shipped with 512kbyte (370 storage) and some of my performance enhancements for constrained storage. improvement later was the a74 with 4mbytes of memory. random refs: http://www.garlic.com/~lynn/94.html#46 Rethinking Virtual Memory http://www.garlic.com/~lynn/96.html#23 Old IBM's http://www.garlic.com/~lynn/99.html#120 atomic History http://www.garlic.com/~lynn/2000.html#5 IBM XT/370 and AT/370 (was Re: Computer of the century) http://www.garlic.com/~lynn/2000.html#29 Operating systems, guest and actual http://www.garlic.com/~lynn/2000.html#75 Mainframe operating systems http://www.garlic.com/~lynn/2000e.html#52 Why not an IBM zSeries workstation? http://www.garlic.com/~lynn/2000e.html#55 Why not an IBM zSeries workstation? http://www.garlic.com/~lynn/2000e.html#56 Why not an IBM zSeries workstation? http://www.garlic.com/~lynn/2001c.html#89 database (or b-tree) page sizes http://www.garlic.com/~lynn/2001d.html#43 Economic Factors on Automation http://www.garlic.com/~lynn/2001f.html#28 IBM's "VM for the PC" c.1984?? http://www.garlic.com/~lynn/2001g.html#53 S/370 PC board -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 102 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 22 Aug 2001 02:34:33 GMT NNTP-Posting-Host: 199.174.229.70 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 998447673 199.174.229.70 (Tue, 21 Aug 2001 19:34:33 PDT) NNTP-Posting-Date: Tue, 21 Aug 2001 19:34:33 PDT X-Received-Date: Tue, 21 Aug 2001 19:31:13 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!feed2.news.rcn.net!rcn!newsfeed1.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87942 Anne & Lynn Wheeler writes: > 20mbyte hard disks with something like 140ms access time (i may have > an early performance document around someplace, disk was 100+ms plus something that I happened to trip across (from an old letter i wrote) .. washington was the "pre-relase" product name for xt/370: Washington Performance In discussions with people that are currently actively working on the Washington project, it is obvious that there is a severe lack of real storage for CMS to execute in. The situation is very similar to the small VM work I did in the early to mid-70s. One of the things that came out of that activity was the 1.5 bit page replacement algorithm which would consistently outperform the normal VM algorithm. It was especially beneficial in core constrained environments. Furthermore, in detailed simulation studies of page replacement algorithms, the 1.5 bit algorithm was able to outperform a true LRU algorithm (i.e. exact Least Recently Used algorithm implemented used a full instruction trace). Other activity from that era which should be beneficial to Washington is the use of VS/Repack for doing module rearrangement to minimize page faults. Both the CMS nucleus and most commonly used application programs would benefit from using VS/Repack. During the 73-74 time period, I invented the precursor to what is now called Discontiguous Shared Segments. The majority of the CMS code was used directly as is by the development group. Unfortunately, the CP group only implemented a subset of the function resulting in the current limited application of Discontiguous Shared Segments. At the same time, I also developed a paged access method (PAM) for CMS. PAM contains numerous performance advantages over the conventional file system. One of the more obvious advantages is the ability to support asynchronous DASD I/O activity. A standard feature of PAM is to immediately begin program execution after initiation of program loading. Page faults will occur to synchronize execution activity when references are made to program pages that are not currently resident. PAM and the full shared segment implementation are standard features of the production San Jose Research VM system (which is also available as the IBM San Jose Common VM system). Adapting the PAM support to the Washington implementation would appear to offer significant performance advantages. For more discussion on the related performance issues of the changes there are a couple of research reports. It would appear that Washington performance would gain extensive benefits from the PAM/Shared segment changes (in addition to any page replacement and/or VS/Repack activity). ===================================================================== ===================================================================== .... something from a recent email (regards vs/repack product) a similar ... but different project that i worked in the early '70s was the data capture part of something that was released as a product called "vs/repack". basically it captured storage traces and attempted to do program re-organization for virtual memory efficiency. part of the output was a storage use map plotted against instructions. for proper display, it required a special TN train that had some bar characters. A typical configuration was 2000 instructions per column of 132character print width with storage running down the page. Would typically try and configure storage so that it fit in about six foot length of printer paper. At various times, halls of 4th floor 545 tech. sq had walls nearly completed paper with such output. Take each six foot strip and hang it from the top of the wall ... and you could walk down the hall corresponding to the program executing and watch the program reference memory (storage use was both instruction fetch as well as data store/fetch). It was used early on to rewrite the garbage collection of APL for virtual memory environment. It was also used by a number of IBM product groups for execution hot-spot detection ... independent of storage use/organization optimization. D. Hatfield & J. Gerald, Program Restructuring for Virtual Memory, IBM Systems Journal, v10n3, 1971 random other refs: http://www.garlic.com/~lynn/93.html#4 360/67, was Re: IBM's Project F/S ? http://www.garlic.com/~lynn/93.html#5 360/67, was Re: IBM's Project F/S ? http://www.garlic.com/~lynn/94.html#7 IBM 7090 (360s, 370s, apl, etc) http://www.garlic.com/~lynn/97.html#4 Mythical beasts (was IBM... mainframe) http://www.garlic.com/~lynn/99.html#20 APL/360. http://www.garlic.com/~lynn/99.html#68 The Melissa Virus or War on Microsoft? http://www.garlic.com/~lynn/2000g.html#30 Could CDR-coding be on the way back? http://www.garlic.com/~lynn/2001b.html#83 Z/90, S/390, 370/ESA (slightly off topic) http://www.garlic.com/~lynn/2001c.html#10 Memory management - Page replacement http://www.garlic.com/~lynn/2001c.html#31 database (or b-tree) page sizes http://www.garlic.com/~lynn/2001c.html#33 database (or b-tree) page sizes http://www.garlic.com/~lynn/2001d.html#18 Drawing entities -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) References: <3AC3B992.76B9EF81@ev1.net> <1457.490T1309T6754830@sky.bus.com> <3AC71C18.B9F2235C@ev1.net> <140820012041109367%artie@nospam.netgate.net> <9ld8s0$4m9$1@news.panix.com> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Message-ID: Organization: Wheeler&Wheeler Lines: 15 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 22 Aug 2001 15:47:21 GMT NNTP-Posting-Host: 199.174.228.46 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.prod.itd.earthlink.net 998495241 199.174.228.46 (Wed, 22 Aug 2001 08:47:21 PDT) NNTP-Posting-Date: Wed, 22 Aug 2001 08:47:21 PDT X-Received-Date: Wed, 22 Aug 2001 08:43:59 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!netnews.com!xfer02.netnews.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread2.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:87928 Anne & Lynn Wheeler writes: > part of the output was a storage use map plotted against > instructions. for proper display, it required a special TN train that > had some bar characters. A typical configuration was 2000 instructions > per column of 132character print width with storage running down the > page. Would typically try and configure storage so that it fit in the "bar" characters on this particular TN train were also used by chip design groups to print large wall-size chip layout images (not as good quality as wide-plotters can do, but gives some idea of the structure). -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/ ###### From: hawk@fac13.ds.psu.edu (Prof. Richard E. Hawkins) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Supersedes: <9m180k$1rl4@r02n01.cac.psu.edu> Date: 22 Aug 2001 21:31:51 GMT Organization: Penn State University, Center for Academic Computing Lines: 34 Message-ID: <9m18c7$1rl4@r02n01.cac.psu.edu> References: <3AC3B992.76B9EF81@ev1.net> NNTP-Posting-Host: fac13.ds.psu.edu X-Newsreader: trn 4.0-test76 (Apr 2, 2001) Originator: hawk@fac13.ds.psu.edu (Prof. Richard E. Hawkins) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.stanford.edu!news.ems.psu.edu!news3.cac.psu.edu!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:88096 In article , David Given wrote: >In article , > pmaydell@chiark.greenend.org.uk (Peter Maydell) writes: >YKYBHTLW it's easier for the guy sitting across the room from you to talk >to you by posting a message to Usenet than it is to get up and walk. >Thanks, Peter. See http://www.userfriendly.org/cartoons/archives/99nov/uf001270.gif and particularly http://www.userfriendly.org/cartoons/archives/99nov/uf001272.gif :) >...every so often I have this strange idea about getting an old Perq or >VAX or something and rewriting the microcode to turn it into a Spectrum. >But then I usually get better... What happens the other times? [or do we want to know??? :) ] hawk -- Prof. Richard E. Hawkins, Esq. /"\ ASCII ribbon campaign dochawk@psu.edu Smeal 178 (814) 375-4700 \ / against HTML mail These opinions will not be those of X and postings Penn State until it pays my retainer. / \ -- Prof. Richard E. Hawkins, Esq. /"\ ASCII ribbon campaign dochawk@psu.edu Smeal 178 (814) 375-4700 \ / against HTML mail These opinions will not be those of X and postings Penn State until it pays my retainer. / \ ###### From: never+mail@panics.com.invalid (Michael Roach) Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: 23 Aug 2001 15:02:00 GMT Organization: A small notepad underneath my in box Lines: 19 Message-ID: <9m35t8$bip$1@news.panix.com> References: <3AC3B992.76B9EF81@ev1.net> NNTP-Posting-Host: panix1.panix.com X-Trace: news.panix.com 998578920 11865 166.84.1.1 (23 Aug 2001 15:02:00 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: 23 Aug 2001 15:02:00 GMT X-Newsreader: trn 4.0-test74 (May 26, 2000) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news-stu1.dfn.de!news-mue1.dfn.de!news-was.dfn.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!news.gtei.net!yellow.newsread.com!bad-news.newsread.com!netaxs.com!newsread.com!panix!news.panix.com!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:88093 In article , David Given wrote: >YKYBHTLW it's easier for the guy sitting across the room from you to talk >to you by posting a message to Usenet than it is to get up and walk. >Thanks, Peter. At a PPOE we used a user's group bbs to ask and answer questions from users across the country (we were in Florida, the bbs was in Colorado.) Once I answered a question of a co-worker who was seated in the cubicle behind mine. I had only been there a couple of days and he didn't know my knowledge level yet. After all, what could a programmer possibly know about rs-232? (I had just come from a job as the only employee of a computer dealer, and prior to that, did some OS and driver work for a manufacturer.) -- TAURUS (Apr 20 - May 20) You are practical and persistent. You have a dogged determination and work like hell. Most people think you are stubborn and bull headed. You are a Communist. ###### Mime-Version: 1.0 X-Newsreader: knews 1.0b.1 Organization: I do not speak for anyone but myself, and barely that. References: <3AC3B992.76B9EF81@ev1.net> <9m35t8$bip$1@news.panix.com> From: dg@pearl.tao.co.uk (David Given) Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Newsgroups: alt.folklore.computers Content-Type: text/plain; charset=us-ascii Message-ID: <1ha5m9.cgh.ln@127.0.0.1> Lines: 31 Date: Fri, 24 Aug 2001 11:33:05 +0100 NNTP-Posting-Host: 62.255.240.131 X-Complaints-To: abuse@ntlworld.com X-Trace: news6-win.server.ntlworld.com 998654271 62.255.240.131 (Fri, 24 Aug 2001 12:57:51 BST) NNTP-Posting-Date: Fri, 24 Aug 2001 12:57:51 BST Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!newshunter!cosy.sbg.ac.at!newsfeed.Austria.EU.net!newsfeed.kpnqwest.at!newscore.univie.ac.at!194.74.65.73.MISMATCH!btnet-peer0!btnet!news5-gui.server.ntli.net!ntli.net!news6-win.server.ntlworld.com.POSTED!127.0.0.1!nobody Xref: chonsp.franklin.ch alt.folklore.computers:88365 In article <9m35t8$bip$1@news.panix.com>, never+mail@panics.com.invalid (Michael Roach) writes: [...] > At a PPOE we used a user's group bbs to ask and answer questions from > users across the country (we were in Florida, the bbs was in Colorado.) > Once I answered a question of a co-worker who was seated in the cubicle > behind mine. I had only been there a couple of days and he didn't know > my knowledge level yet. After all, what could a programmer possibly > know about rs-232? (I had just come from a job as the only employee of > a computer dealer, and prior to that, did some OS and driver work for a > manufacturer.) I think my most embarassing experience was when in the computing lab at University, receiving a talk request from . I happened to be RL chatting to someone at the time, and made a couple of comments like, "Oh god, it's him again." Of course, turned out to be sitting just across the room from me. Eeeearrgh. (Have you noticed how talk and talkd seem to have dropped from favour these days? We used to use them all the time only a few years ago, and now I was actually surprised to see talkd in the Debian package list...) -- +- David Given --------McQ-+ "Est brilgum: toui slimici | Work: dg@tao-group.com | In uabo tererotitant | Play: dg@cowlark.com | Brogoui sunt macresculi +- http://www.cowlark.com -+ Momi rasti strugitant." --- Anonymous ###### From: Brian Inglis Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Tue, 04 Sep 2001 01:32:36 -0600 Organization: Systematic Software Lines: 40 Message-ID: <79a6pt87j3r9p1o5hseq6043ajuo8jtsv2@4ax.com> References: <3AC3B992.76B9EF81@ev1.net> <9m35t8$bip$1@news.panix.com> <1ha5m9.cgh.ln@127.0.0.1> Reply-To: Brian.dot.Inglis@SystematicSw.ab.ca NNTP-Posting-Host: h-207-148-144-178.dial.cadvision.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news3.cadvision.com 999588757 22584 207.148.144.178 (4 Sep 2001 07:32:37 GMT) X-Complaints-To: news@cadvision.com NNTP-Posting-Date: Tue, 4 Sep 2001 07:32:37 +0000 (UTC) X-Newsreader: Forte Agent 1.8/32.548 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!nntp.abs.net!nntp.cadvision.com!207.228.64.17.MISMATCH!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:89512 On Fri, 24 Aug 2001 11:33:05 +0100, dg@pearl.tao.co.uk (David Given) wrote: >In article <9m35t8$bip$1@news.panix.com>, > never+mail@panics.com.invalid (Michael Roach) writes: >[...] >> At a PPOE we used a user's group bbs to ask and answer questions from >> users across the country (we were in Florida, the bbs was in Colorado.) >> Once I answered a question of a co-worker who was seated in the cubicle >> behind mine. I had only been there a couple of days and he didn't know >> my knowledge level yet. After all, what could a programmer possibly >> know about rs-232? (I had just come from a job as the only employee of >> a computer dealer, and prior to that, did some OS and driver work for a >> manufacturer.) > >I think my most embarassing experience was when in the computing lab at >University, receiving a talk request from . I happened to >be RL chatting to someone at the time, and made a couple of comments like, >"Oh god, it's him again." > >Of course, turned out to be sitting just across the room >from me. > >Eeeearrgh. > >(Have you noticed how talk and talkd seem to have dropped from favour >these days? We used to use them all the time only a few years ago, and now >I was actually surprised to see talkd in the Debian package list...) At a Vancouver DECUS (during beer strike -- only US beer available), my manager got up and asked a question, I got up and responded, the chair suggested we get together after the session, manager admitted I worked for him, room erupted in laughter! Thanks. Take care, Brian Inglis Calgary, Alberta, Canada -- Brian.Inglis@CSi.com (Brian dot Inglis at SystematicSw dot ab dot ca) fake address use address above to reply tosspam@aol.com abuse@aol.com abuse@yahoo.com abuse@hotmail.com abuse@msn.com abuse@sprint.com abuse@earthlink.com abuse@cadvision.com abuse@ibsystems.com uce@ftc.gov spam traps ###### From: jmfbahciv@aol.com Newsgroups: alt.folklore.computers Subject: Re: Very CISC Instuctions (Was: why the machine word size ...) Date: Thu, 06 Sep 01 08:51:57 GMT Organization: UltraNet Communications, Inc. Lines: 14 Message-ID: <9n7na5$8p$8@bob.news.rcn.net> References: <3AC3B992.76B9EF81@ev1.net> <9m35t8$bip$1@news.panix.com> <1ha5m9.cgh.ln@127.0.0.1> <79a6pt87j3r9p1o5hseq6043ajuo8jtsv2@4ax.com> X-Trace: UmFuZG9tSVYbDAnNuI9pbgLwiTo1gHAHkRGVtTQyJf6g3nnc35eO9UNLIAkge1/n X-Complaints-To: abuse@rcn.com NNTP-Posting-Date: 6 Sep 2001 11:39:49 GMT X-Newsreader: News Xpress Version 1.0 Beta #4 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!newscore.gigabell.net!newsfeed.germany.net!newsfeed.icl.net!netnews.com!feed2.news.rcn.net!feed1.news.rcn.net!rcn!207-172-102-46 Xref: chonsp.franklin.ch alt.folklore.computers:89701 In article <79a6pt87j3r9p1o5hseq6043ajuo8jtsv2@4ax.com>, Brian Inglis wrote: >At a Vancouver DECUS (during beer strike -- only US beer >available), my manager got up and asked a question, I got up and >responded, the chair suggested we get together after the session, >manager admitted I worked for him, room erupted in laughter! So did our group when the story made its way back to DEC. /BAH Subtract a hundred and four for e-mail.