ehj@mordor.UUCP (Eric H Jensen) (01/01/70)
In article <1683@peora.UUCP> you write: >> And with a tagged memory system, you must read a memory word before >> doing a write (to see if the tag allows writing). This causes alot of >> extra memory accesses and thus detracts from the performance achievable. > >No, it only makes it more expensive. There are always* RAM parts available >that are faster than those used for the main memory; it's just a question >of whether you want to incur the extra cost. ... This discussion has me a bit confused ... I don't understand why anyone would want to use tags for read/write protection. Whether you can read/write a memory location is either determined by your page table entry for the current virtual space or by some capability you possess. The above is not related to the current unitialized data debate because once a location is *written* it is, by definition, initialized. Tags are usually used to identify the type of data they are associated with or the type of data the associated pointer points to (i.e. integer, flonum, cons cell, gate, initialized, uninitialized, etc...). It makes no sense to me to put protection information in a tag - unless of course it's in the tag of a pointer and refers to the protection of the data being pointed to - but thats capabilities revisited. -- eric h. jensen (S1 Project @ Lawrence Livermore National Laboratory) Phone: (415) 423-0229 USMail: LLNL, P.O. Box 5503, L-276, Livermore, Ca., 94550 ARPA: ehj@angband UUCP: ...!decvax!decwrl!mordor!angband!ehj
dick@ucsfcca.UUCP (Dick Karpinski) (09/21/85)
In article <2384@uvacs.UUCP> mac@uvacs.UUCP (Alex Colvin) writes: > >I'm still looking for a machine that will trap references to uninitialized >data. Arthur Sale (of Pascal Validation Suite fame) wrote a paper about the proper use of Tag-6 in the Burroughs (sp?) 5500 and successors. That flavor of tag (among 8) allows the item to be passed to a subroutine but not used in expressions. Only assignment to it is permitted. Tagged architectures are very tidy, and with the ever decreasing cost of memory, they become even more attractive. A few bits and a little support with comparators in silicon lets you catch very many otherwise obscure bugs in quite conventional programs. Compilers get involved but in many ways, the tags help in avoiding other kinds of run time tests. In silicon and in parallel means the cost is reduced to a few square microns and a few micro-watts. Given support by the compiler, even arrays of Booleans can be spread out into words for checkout purposes to make use of the tags. I have neve seen this done. Dick -- Dick Karpinski Manager of Unix Services, UCSF Computer Center UUCP: ...!ucbvax!ucsfcgl!cca.ucsf!dick (415) 666-4529 (12-7) BITNET: dick@ucsfcca Compuserve: 70215,1277 Telemail: RKarpinski USPS: U-76 UCSF, San Francisco, CA 94143
jvz@loral.UUCP (John Van Zandt) (09/23/85)
Tagged architectures are nice from a software point of view, but they are usually poor performers. One article pointed out that because memory and silicon are cheap, tagged architectures are now viable. The performance of a tagged memory architecture (as with all architectures), is hinged on the number of memory accesses that must be performed (among other things). And with a tagged memory system, you must read a memory word before doing a write (to see if the tag allows writing). This causes alot of extra memory accesses and thus detracts from the performance achievable. John Van Zandt Loral Instrumentation uucp: ...sdcsvax!jvz arpa: jvz@UCSD
jer@peora.UUCP (J. Eric Roskos) (09/27/85)
> And with a tagged memory system, you must read a memory word before > doing a write (to see if the tag allows writing). This causes alot of > extra memory accesses and thus detracts from the performance achievable. No, it only makes it more expensive. There are always* RAM parts available that are faster than those used for the main memory; it's just a question of whether you want to incur the extra cost. (For some kinds of tag bits, if you can manufacture your own parts, it's also possible to implement unconventional RAMs that reduce the number of accesses required; e.g., RAMs that can sense a bit transition when you write to them can be used to implement particular kinds of test & set-style tags.) *Well, unless you have memory cycle times in the ones of nanoseconds. -- Shyy-Anzr: J. Eric Roskos UUCP: Ofc: ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer Home: ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer US Mail: MS 795; Perkin-Elmer SDC; 2486 Sand Lake Road, Orlando, FL 32809-7642
jer@peora.UUCP (J. Eric Roskos) (10/07/85)
> I don't understand why anyone would want to use tags for read/write > protection. Whether you can read/write a memory location is either > determined by your page table entry for the current virtual space or > by some capability you possess. For one thing, because you can then "read/write protect" memory in much smaller units... but the tags are for other things than that, also, e.g., to show the type of the datum, perhaps; or to show whether it is "present"; or the access level required in order to be able to read or write it; etc. A "capability" in this sense could be thought of as just a set of tags off somewhere else in memory, along with a pointer to the object the tags are for... -- Shyy-Anzr: J. Eric Roskos UUCP: Ofc: ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer Home: ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer US Mail: MS 795; Perkin-Elmer SDC; 2486 Sand Lake Road, Orlando, FL 32809-7642