Article View: comp.arch
Article #11692Re: endian etc
From: abaum Allen Baum
Date: Mon, 20 May 1991 11:01
Date: Mon, 20 May 1991 11:01
62 lines
3347 bytes
3347 bytes
In article <199@titccy.cc.titech.ac.jp> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes:
>In article <173@armltd.uucp> abaum (Allen Baum) writes:
>
>>>>As a sweeping generalization, the path from cache to registers/forwarding
>>>>path is THE critical path
>
>First, I have noticed that R3000 has LWL and LWR instruction which means
>MUX of arbitrary flipping of bytes already exists on your "THE ciritical
>path".
I agree. They do. They can't be avoided if you have load_byte instructions.
That was my point. On the other hand you shouldn't do anything to make them
worse either.
>>>No. THE critical path is on register/ALU loop, which determines the maximuum
>>>clock speed (see Jouppi).
>>So, another way of saying what I meant to say is: if both ALU and Cache access
>>are going to fit into a cycle, the cache access will be the limiting case.
>I think cache access is much slower than ALU operation.
That is my point!!!!!!!
>>Perhaps not true with a trivial cache, but true for sizes that are useful.
>Are you sure?
>Don't you know that access time increases with the size increase of cache?
Of course I know! Again, that was my pint!!!
>It should also be noted that for a large cache to be useful (fast context
>switch etc.), it should be tagged with physical address. So, you must also
>do TLB lookup.
>For example, on R4000, an ALU operation takes only 1 internal cycle
>(10ns) but cache access takes three internal cycle including tag check.
Which proves my point (and yours, I guess)
>>Again, assuming that you intend everything to run in a single cycle, anything
>>that you put into that path will therefore lengthen your minimum cycle time.
>>Which was the point I was trying to make about sign extension.
>With todays technology, it is a bad idea to access cache in a single cycle.
^^^ ^^^ ^^^^^^ ^^^^ ^^^^^^ ^^^^^
Ah, now this is a very interesting position, and not one that I can dismiss out
of hand, either. All my arguments were based on single cycle cache access
(not including address formation, so most of todays RISCs have 2 internal cycle
cache access, by your definition).
In order for this approach (taken by the R4000) to be effective,
you have to be able to schedule loads sufficiently far in advance so they
don't stall. In a 'N'cycle cache access, you need to schedule N-1 cycles in
advance. So, there is a law of diminishing returns there. Furthermore, you
can't block on a cache access in progress, so your cache has to be pipelined.
None of this is impossible- witness the R4000; they did it. They feel that the
gain in cycle time outweighs the extra stalls, and the extra design complexity.
So its probably time for a new thread - costs of multi-cycle cache access in
design complexity and number of stalls vs. the benefits. Any takers?
Technical Details
Message-ID:
<178@armltd.uucp>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!ukc!acorn!armltd!abaumReferences:
<199@titccy.cc.titech.ac.jp>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!ukc!acorn!armltd!abaum From: abaum (Allen Baum) Newsgroups: comp.arch Subject: Re: endian etc Message-ID: <178@armltd.uucp> Date: 20 May 91 11:01:23 GMT References: <199@titccy.cc.titech.ac.jp> Sender: abaum@armltd.uucp Distribution: comp Organization: A.R.M. Ltd, Swaffham Bulbeck, Cambs, UK Lines: 62