Dan's Data letters #189Publication date: 22 August 2007.
Last modified 03-Dec-2011.
I read your article "What's with the 3GB memory barrier?", and ended with a question.
Will 32-bit Windows fully use both memory channels of a dual channel CPU, such as an Athlon 64, if some of the memory is unusable?
For example, the Dell machine you mention in your article "...with WinXP, 4Gb of RAM, and a pair of Nvidia's oddball 1Gb GeForce 7950 GX2 cards. Result: 56.25% of the installed memory absent without leave. You might as well have only bought 2Gb."
That computer has 4Gb, with only about 2Gb available. Will that be 2 channels at 1Gb each or 1 channel at 2Gb, resulting in a performance loss? I know that both channels are still there, but if the lower 2Gb address range is allocated entirely to the first channel then Windows would effectively only use one channel, right?
I see what you're saying, here. If the memory map is filled up with installed physical RAM in blocks, so a computer with four 1Gb modules will have its first gigabyte of memory map "covered" by the first memory module, the second by the second, and so on, then loss of the whole fourth gigabyte to a dual-graphics-card memory hole would make it impossible for dual channel mode to deliver any benefit for memory accesses in that fourth gigabyte.
(This isn't actually a "Windows" issue, by the way - memory architecture is a low-level hardware feature that affects all operating systems.)
Of course, such an arrangement would also make dual channel mode useless for most memory accesses, unless the physical memory allocated to each process was spread out in little pieces across the memory map.
Accordingly, and based on no research, I don't think it works that way. The memory map is, I think, made up of interleaved parcels of memory from each installed memory module in turn. So dual channel mode should work fine no matter how many memory holes there are.
The reason why I've cavalierly failed to look into this in any great detail is that, in the final analysis, dual channel mode actually doesn't matter much. PC tasks are not generally very memory-intensive. Which is good, because memory access in a PC is one of its biggest theoretical performance bottlenecks. I talk about this in more detail in my old piece here.
(See also the start of this column.)
As I mention in this column, the difference between "pure" dual channel mode and the Dual Channel Asymmetric mode that most-to-all current motherboards support if the physical memory configuration contains some RAM that doesn't have anything to match it on the other access channel is insignificantly small. The difference between dual channel and pure single channel is not a lot larger. It's possible to do stuff with a PC that's RAM-speed limited and which therefore shows a big difference if your RAM is faster, but virtually no desktop computer tasks are significantly RAM-speed limited most of the time.
I've had issues before with more than 3Gb of RAM, and I knew there were good reasons for staying at or below 3Gb, but never knew exactly why. Your article has a clear explanation.
Question, though: I have an ongoing debate on this very subject. A friend of mine claims the following:
"You can definitely get and use up to 4Gb - the "barrier" is that no SINGLE PROGRAM can allocate more than 3Gb (2Gb actually, normally). However, you can have four programs each using 1Gb and use your 4Gb just fine. Just no running a game that wants to use 3.5GB of your memory all for itself - that's not allowed in 32-bit Windows."
After reading your article, it seems to me that he is dead wrong. That 4th program would not have the RAM available in 32-bit Windows.
Your friend is confusing the Windows virtual address space with the physical RAM accessible to the system.
Windows provides every program with what looks like a flat 4Gb of memory, usually split into 2Gb of RAM the program can directly access and 2Gb for Windows itself to use. If you're running four applications on a Windows computer, each of those four applications will therefore think it's got 2Gb of memory to play with (which you can increase to 3Gb, but probably shouldn't). It doesn't matter how much memory is actually installed in the computer - 1Gb, 4Gb, 128Mb, whatever.
When applications actually ask for some of the memory that's available to them, Windows, like every other modern operating system, figures out how best to split that memory allocation between the swap file and the physical memory in the computer. The more physical memory there is, the less often the system will need to hit the slow hard-disk swap file.
The 3Gb "barrier" affects the amount of physical memory the system can access, not the amount of virtual memory Windows provides to applications. If you have four applications that're each actually doing stuff with 1Gb of memory (ignoring Windows' own memory allocations for a moment), then a "4Gb" PC will not actually have enough usable physical RAM for them all to do that stuff at the same time without hitting the swap file.
(Fortunately, programs often use much less memory than they allocate. If a program allocates 1Gb but only actually does stuff with 100Mb, then Windows will try to put the in-use 100Mb in physical RAM, and leave the rest of the allocated memory sitting peacefully in the swap file.)
I am ready to get another computer for video and photo editing. I know that video likes speed and Photoshop likes RAM. I have a friend who is heavily into photo stuff - RAW files and lots of manipulation. He just had a computer built with 64-bit WinXP and 8Gb of RAM.
Is that overkill or it is justified?
It's overkill, for Photoshop.
8Gb of RAM won't make Photoshop work much better than it would on a "4Gb" 32-bit computer (with three-point-something gigabytes of available memory), primarily because there is, as of CS3, still no 64-bit version of Photoshop.
On a 32-bit system, the best Photoshop can get is its own two or three gigabyte share of a 4Gb block of addresses within the 8Gb available. On a 64-bit system, things are somewhat better, because since the CS2 version, Photoshop has been "large address aware". That means it can get a whole 4Gb to itself when running on a 64-bit system with enough RAM, though opinions differ on how well it uses it (Photoshop's got its own internal virtual memory system, with its own scratch-disk "swap files").
In any case, 4Gb is the absolute limit to the physical memory current Photoshop versions will ever be able to use. Any further memory will help keep load off the swap file if you're running lots of other programs, but will not do you any other good.
Fortunately, for the vast majority of photo editing tasks, even if you're working with ten-megapixel-plus 16-bit files, a two or three gigabyte computer is more than enough.
Photoshop can, however, make an ordinary photo into an arbitrarily large file if you keep piling on the layers. If you normally work with files that have numerous adjustment and edit layers, or if you work with very large images (which probably means negative scans, unless you've paid the price of a Bentley for your digital camera), then a single Photoshop file can end up needing gigabytes of storage. Open multiple files at once and things get even worse.
If you're doing that, then there's some further justification for a 64-bit computer, provided of course that you can actually get 64-bit drivers for all of the hardware that you want to use. But you still won't be able to make more than 4Gb of the RAM available to Photoshop until Adobe makes a 64-bit version of the program, which they have not yet done.
After seeing the incorrect usage of this in two of your previous articles/reviews and now in letters #187, I can't take it anymore!
There's actually no true correct usage for upper- and lower-case "b" as short for "bit" or "byte". I addressed this back in the very first Dan's Data letters column.
Note that IEEE 1541 does indeed recommend B for bytes. But it also tells you to stop calling 1,048,576 bytes a megabyte, or MB, or Mb.
It'd be great if everybody used the kibi-mebi-gibi-tebi prefixes - if nothing else, it'd stop people from being disappointed by how big their hard drives actually turn out to be. But that's not going to happen any time soon - no major operating system even uses those prefixes yet.
In the meantime, people have to educate themselves about the differences, and try to work out what writers mean from context when the writer doesn't define the terms him/herself.
The same goes for bits and bytes, no matter what abbreviation is used.
I bought some 2300 mAh AA NiMH rechargeables a while back and although they don't get much use, I think they might be cactus.
What sort of shelf-life-per-charge can I expect when not in use? It seems no sooner have I charged them than they are dead the next time I go to use them. How long should they hold a charge?
Time to invest in new ones perhaps. Are no-names as good?
NiMH self-discharge rates vary widely, and I've not been able to detect any strong relationship between brand (or lack thereof) and rate.
I've got some plain-shrink-wrap cells that're pretty good, and some more expensive Sanyos that only seem to need about a fortnight to lose almost all of their charge.
There's now, thankfully, a whole new category of low self-discharge NiMH cells, also known as "ready to use", because they're charged at the factory and will still have almost all of that charge when you buy them. They have lower nominal capacity than cheaper ordinary NiMHs, but they're supposed to retain 70% of their initial charge after TWO YEARS, if stored at 20 degrees C.
The most famous brand of low self-discharge cell is Sanyo's "Eneloop", but there are now plenty of others.
It's hard to find Eneloops for less than about $AU25 for four, which is too rich for my blood. The GP ReCyko+ versions, however ("Gold Peak" are a major Chinese battery company, not some weird fly-by-night brand), are easy to find on eBay and significantly cheaper. I've bought three sets of ReCykos to use in my three photo flashes, and they seem to perform as advertised.
I bought a small SD card reader which is supposed to be USB2. However, whenever I plug it into my machine I get a warning from Windows saying that the device would perform better if it were plugged into a USB2 port.
The confusing part is that it is plugged into a USB2 port. Please see the attached image for the messages that appear when the device is used.
I have also tried the device on multiple Windows XP machines and they all give me the same error. I don't understand why the computers refuse to use USB2 even when using the correct port. Do you think I have a malfunctioning Flash reader?
Maybe it's broken. Or it may really just be a USB 1 device, and it's working as designed.
USB compatibility problems with cheap gadgets like card readers are very common. They're more common with certain computers (like, any Dell), but it's easy to find cheap USB gadgets that don't work right with all sorts of computers.
If no computer sees the reader as a USB 2 device, though, and if it works at USB 1 speed on them (try copying a good-sized file back and forth and see if you get errors or corruption), then it seems pretty definite to me that the fault lies not with the computers or Windows. The reader really is just a USB 1 device.
I've heard allegations that it's possible for WinXP, at least, to screw itself up such that you get this error for every USB 2 device you plug in, the only solution being an OS reinstall. I can't pin down a reliable source for this, though, and it's obviously not the problem you're having, if other USB 2 devices work fine.
Note that the quick and not very expensive fix for a lot of USB annoyances is to add a USB 2 controller card to your computer, and use that for the troublesome devices. Four-port PCI USB cards for desktop PCs are cheap (and safe to buy on eBay); PCMCIA USB cards for laptops aren't greatly more expensive. Factor one in to the price of any Dell laptop you intend to buy.
UPDATE: Tim got back to me. Yes, his "USB 2" card reader really is, for all practical purposes, just a USB 1 device, sold to him by liars.
Well, that's the executive summary, anyway. As another reader pointed out, a genuine USB 1 device shouldn't give the "this device can perform faster" error message, because Windows is smart enough to detect that a USB 1 device definitely cannot perform faster, no matter what kind of USB port you plug it into.
Just this minute I confirmed this for myself, by plugging the battered old Datafab CompactFlash card reader from this 2001 comparison into my current PC. No error.
One reader suggested that devices that have this problem, therefore, are just unable to communicate properly with the computer at high speed, or just unable to send the signal that tells the USB controller to click into high speed mode. Bad connectors, bad cables, bad internal components or even bad circuit board design can all do it. Sometimes you've just got to plug 'em in right; sometimes, as in this case, they never seem to work.
Conceivably, there's some computer somewhere in the world on which all of these devices actually do manage to work in high speed mode. I'm not at all sure that even the people who made Tim's SD reader were able to get it to perform as advertised, though.
A couple of readers have also mentioned the old "Hi-Speed"/"Full Speed" problem. "Hi-Speed" is the 480 megabit per second speed (theoretically, at least - no USB 2 device actually manages to move more than about 240 megabits per second) that people think of when they see "USB 2" on a sticker.
"Full Speed" is the old 12 megabit per second speed that was the most USB 1 could manage. So someone who's trying to rip people off could make a label that says "USB 2 Full Speed!" or something and kinda-sorta be telling the truth. It's perfectly possible to have a device that's fully compliant with the USB 2.0 spec, but which doesn't use Hi-Speed mode. Usually, that's because the device has no need for Hi-Speed, because it's a mouse or a keyboard or a USB "sound card" or something.
This is a technical quibble, though. If you see "USB 2" on the label of a storage device, you should obviously expect it to be able to transfer data faster than a USB 1 device could, just as you should expect a car sold as having a turbocharger to have that turbocharger actually plumbed into the engine.
I am sure you have seen this video clip, but in case you missed it, considering the fact that you are a super genius with a special interest in cameras, I thought I would send it along.
I hadn't seen that clip specifically. It's certainly a great example of the phenomenon!
As some of the brilliant commenters figured out, you'll see effects like this with all sorts of rotating objects when two conditions are satisfied:
1: The rotating object has to be in the same position each time the camera shutter opens (video cameras don't have a mechanical shutter, but the principle is the same). A helicopter with only two blades has only two points in each full rotation of the blades when they appear to be in the same place; a five-bladed chopper like this one has five possible points.
2: The camera shutter speed has to be fast enough that it actually "stops" the motion of the blades, and doesn't just show them as a blur.
Fast shutter speeds used to only be possible with film cameras, but now there are lots of video cameras that can manage it too. Fast shutter speeds are undesirable for a lot of general videography, as the super-sharp look of moving objects can be fatiguing. But sports events are usually shot that way now.
My wife just asked me, "Hey, do they make big LED light bulbs?"
My answer, "Of course! They cost around $20-$40 a pop... they come with a standard socket, and are wicked-awesome efficient!"
So she says, "But what about running them off a 9 volt battery?"
The reason behind her question: She runs a massive "Haunted Forest" event featuring various performances around the woods in the middle of the night. Right now, they run massive, noisy generators and quarter-mile extension cords to power a series of big outdoor 100 watt flood bulbs ("Philips PAR38 4/34", to be specific... they come in a variety of colors).
She dreams of no more generators, no more miles and miles of muddy extension cords... if she could just find the perfect battery- powered solution. It would have to stay on easily for 10 hours without concerns of replacement or constantly dealing with dead batteries, and ideally be somewhat freezing rain-proof, too.
What say you, ye-master-of-all-things-light?
If you need coloured lighting, it should be noted that incandescent, while cheap, is a dreadful solution, and LED may indeed work surprisingly better. Incandescent lamps naturally throw yellow-white light; you make them coloured by putting filters over them that block everything other than the desired colour, and that drops the lamp efficiency to something really awful. Compare and contrast a normal 40-watt bulb and the common 40-watt coloured bulbs to see what I'm talking about.
Coloured LEDs, on the other hand, now have lumens-per-watt efficacy up there with fluorescents - they've improved significantly since the last time I wrote about this stuff. It's not at all unreasonable to expect a coloured LED light to give you ten times the light per watt of a filtered incandescent, if not more.
This makes coloured LED accent lighting considerably less stupid than white LED general purpose lighting.
As a low-cost test, I suggest you grab a few 12-volt LED lamps. They're commonly sold these days for use in cars for brake/indicator/driving light replacement, and you can get blue and green ones as well that're aimed at people who want their car to look like a Christmas tree. You can run all of those from any 12V source, so you can try them out in the garden and see what you think.
Low voltage lighting is also, of course, better suited to amateur operations, since it's harder for people to kill themselves with it, and you can use commodity batteries for installations in odd places without running long cables.
You can also get LED lamps that fit standard "downlight" dichroic lamp fittings, and also run from 12V. They come in lots of different colours, and may have a better beam profile than the automotive ones.
There are also more and more fluorescent lamp options these days, but it's difficult to get a focussed beam out of them, such as is normal for sealed PAR (Parabolic Aluminium Reflector) lamps (LED lamps generally give you a moderately focussed beam).
That said, though, you certainly can considerably reduce the power demands for many small outdoor lighting situations (like, anything smaller than parking lot lighting) by using fluoros. It'll be easy to find Compact Fluorescent Lamps (CFLs) that screw into existing PAR fittings, but they'll need to have some kind of reflector behind them to work at all well, and may need better weatherproofing too. PAR lamps are naturally well-sealed units, but CFLs typically aren't.
One other disadvantage to all of these alternative lighting ideas, including other high efficiency lighting options like metal halide lamps, is that the lamps are quite valuable. Not many people bother stealing PARs, but fancier lamps disappear quite often if inadequately protected. It is of course also a bigger financial deal if some screw-up or other results in a bunch of expensive lamps being wrecked.
But wait - there's more! Click here to go to page 2 of this letters column!