SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Politics : Formerly About Advanced Micro Devices -- Ignore unavailable to you. Want to Upgrade?


To: Tenchusatsu who wrote (55653)4/16/1999 4:40:00 PM
From: Ali Chen  Read Replies (1) | Respond to of 1578177
 
Ten, <Well ... er ... YES. >

Sounds like the fact of tripled data stream surprised you.
First time ever thought about it?

<Except that this isn't some uneducated idiot's idea.>
<Rather, this is called Direct Memory Access.
What you are arguing for is the old way of doing things,
which is writing data directly from the CPU to the devices.
This requires constant CPU attention,..>

Unfortunately, this IS an "uneducated idiot's" area.
DMA was good in old times (you probably don't remember)
when memory systems had no caches. Then the DMA
idea become a bad idea when CPU speeds surpassed
capabilities of frozen Intel' 8259 controller.
After that, with invention of PCI and "busmastering",
it suddenly become again "a good idea", but without
any understanding of new multilevel memories.

<..mainly because CPU-to-PCI transactions are
painfully slow compared to CPU-to-memory transactions>

Your thinking is narrow. As I said, in many major
classes of applications the data needs to be processed
in some or other way. Any modern processor contains
write-combining buffers, so from the CPU viewpoint
this write operation cost nothing. Therefore, with proper
code rearrangement and dual buffering the cost of
PCI transaction can be totally overlapped with
processing time.

<It's much better for the CPU to write the data to memory,
then let the PCI or AGP device access that data directly
from memory.>

Let me re-formulate the concept in more correct way:
It is much better for Microsoft to write a couple
of general-purpose API considering the memory as
an abstract entity. Then a bunch of programmers need
no education to write windows apps thus reducing
drastically the cost of software development and
time to market. How about that?

<This requires less CPU resources than the method
you suggest. In other words, the CPU is free to
do other stuff while the PCI and AGP devices do
their thing. This Direct Memory Access model is
in use today, from RAID SCSI hard drive controllers,
to AGP graphics cards accessing textures from DRAM,
to Gigabit Ethernet controllers which need
a constant stream of data coming from the SDRAM.>

Again, all your examples concern cases where the
data are barely touched by CPU, headers only -
in your servers/routers. Your "constant stream
of data" from Gigabit NICs eventually ends up in
another NIC with exactly the same data, so why
to use the RAM at all? Aha, Microsoft and Intel
do not support direct PCI-to-PCI transactions?
Textures are much more efficient when placed
in areas where they belongs to - video cards.
Etc., Etc. As I said, narrow thinking.

When you have a real-time application like
"alien mutant blasting" or 3-D CAD, or sound
processing, or... there always is the way
to overlap data transactions with data
processing, with usual speed-up of a factor
of 3, it just need a little of education.
I am not suggesting anything new or old, just
making observations.

Let me reiterate my point: better K7 bandwidth
is beneficial for correctly written applications
as compared to Pentium memory-matched bandwidth.
For dumbly-written apps there is little difference.
Therefore, on average, K7 will perform better.

Any more objections?