On Tue, 4 Jun 2002, Gleb O. Raiko wrote:
> Basically, the patch logically allows combination of a CPU with internal
> write-buffer and an external wb chip. It's impossible if hw designers
> don't smoke hard. :-)
Well, I believe it might be useful -- if a CPU uses a higher clock for
its pipeline and a lower one for its external bus, it might be useful to
buffer a few words internally to avoid stalls at two consecutive writes.
Then you may have an additional buffer externally to lower the number of
stalls on memory or I/O (generally the rest of a system) accesses.
Essentially a buffer every time you cross a frequency domains' border,
leaving the faster one. You need at least a single-word buffer at each
such border anyway if you don't want to stall the whole system for any
cycle accessing slower domains.
Consider it a complement of a hierarchical cache organization -- I've
seen (and actually used) systems with up to three levels of caches.
> In fact, CONFIG_CPU_HAS_WB means !CONFIG_CPU_HAS_WB, i.e. CPU don't have
> built-in write-buffer logic and there is an external write-buffer chip
> somewhere in the box.
> ("Somewhere" means a place on the path from the local bus to a memory
> controller.)
That's a bit awkward possibly, but "has" has a wide meaning and does not
necessarily state "contains". It might mean "owns" as well. For R[23]k
CPUs the option originally corresponded to external R2020 and R3220 chips
(just like floating point units may be external but still be considered a
part of a CPU) that were treated as a part of coprocessor 0 (with "bc0f"
or "bc0t" instructions testing their state).
Besides, who says discrete CPUs are forbidden? ;-)
> Then, __fast_iob just flushes internal wb while wbflush flushes an
> external wb.
Well, that's used by __wbflush internally if it knows there is no
external buffer that needs explicit handling (for the DECstation, at least
-- other systems might make use of it as well). That's unused in this
patch but is needed in the other one -- well, I had to split these patches
logically somehow and this one only contains system-independent code.
> That's why I call it "unusual terms from hw POV".
Hopefully, I clarified the terms a bit.
Maciej
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +