Cool PC Stuff

UNIX and Linux stuff was moved here
Computer & Electronics stuff can be found here
VMS on VAX, OpenVMS Alpha and Itanium can be found here

Vector Processing

Traditionally, processor technology was defined like this:
Then CISC and RISC vendors began to add vector processing instructions to their processor chips which blurred everything
  1. Minicomputer / Workstation
    1. 1989: DEC adds vector processing capabilities to their Rigel microprocessor for VAX and uVAX
    2. 1989: DEC adds optional vector processing to VAX-6000 model 400 (called VAXvector)
      • http://deathrow.vistech.net/~cvisors/DEC94MDS/60vaaom1.pdf (VAX 6000 Series - Vector Processor Owner’s Manual)
    3. 1994: VIS 1 (Visual Instruction Set) was introduced into UltraSPARC processors by SUN
    4. 1996: MDMX (MIPS Digital Media eXtension) is released by MIPS
    5. 1997: MVI (Motion Video Extension) was implemented on Alpha 21164PC from DEC/Compaq. MVI appears again in Alpha 21264 and Alpha 21364.
  2. Microcomputer / Desktop
    1. 1997: MMX was implemented on P55C (a.k.a. Pentium 1) from Intel
      • the first Intel offering involved 57 MMX instructions
    2. 1998: 3DNow! was implemented on AMD K-2
    3. 1999: AltiVec (also called "VMX" by IBM and "Velocity Engine" by Apple) was implemented on PowerPC 4 from Motorola
    4. 1999: SSE (Streaming SIMD Extensions) was implemented on Pentium 3 "Katmai" from Intel.
      1. this technology employs 128-bit instructions
      2. SSE was Intel's reply to AMD's 3DNow!
      3. SSE replaces MMX (both are SIMD but SSE uses its own floating point registers)
    5. 2001: SSE2 was implemented on Pentium 4 from Intel
    6. 2004: SSE3 was implemented on Pentium 4 Prescott on from Intel
    7. 2006: SSE4 was implemented on Intel Core and AMD K10
    8. 2008: AVX (Advanced Vector Instructions) proposed by Intel + AMD but not seen until 2011
      1. this technology employs 256-bit instructions
Putting hyper threading aside for a moment, we first see true SMP on desktop PCs in 2005 with Intel's dual-core Pentium-D. Since then, the number of cores from all vendors has only gone up.
 
But GPU (graphics programming units) take vector processing to a whole new level. Why? A $200.00 graphics card now equip your system with 1500-2000 streaming processors and 2-4 GB of additional high speed memory. According to the 2013 book "CUDA Programming", the author provides evidence why any modern high-powered PC equipped with one (or more, if you mobo supports it) graphics cards can outperform any supercomputer listed 12 years ago on www.top500.org I've been in the computer hardware-software business for a while now but can confirm that computers have only started to get real interesting again this side of 2007 with the releases of CUDA, OpenCL, etc.

Mostly Windows - PC Stuff

HP-Recovery Disks and Window-7 (problems)

caveat: this problem may also apply to recovery disks from other vendors

I purchased two PCs in 2010 (one for my wife and one for myself). They were both HP-e9270f and sported Window-7 running on the following hardware: Intel Core-i7 quad CPU, 8-GB memory, 1-TB hard disk, Blu-ray player, RW-DVD and Radeon HD4650 Graphics Card. These machines are fantastic AND are never turned off since they work on distributed science projects (folding-at-home and BOINC) when not used by us. Since we use these machines a bit harder than most families I suppose a few problems were to be expected.

Fixing problems in Windows-Vista

I have no idea why everyone seems to hate Microsoft's Windows-Vista. The major complaint seems to be "Vista is a lot slower than Windows-XP" but remember that the first release of Windows-XP seemed slow (compared to Windows-2000) and wasn't acceptable to most users until XP-SP1 (Service Pack 1). While it is true that Vista is now at SP2 and we still haven't see speed ups like XP-SP1, Windows-Vista is not a lost cause.

Here are some things that are wrong (IMHO) with Vista

  1. Minimum hardware requirements were set too low (probably to tempt XP customers to purchase an upgrade).

    Microsoft published these minimum requirements for Windows Vista:
     
    1. Windows Vista Home Basic
      • 800-megahertz (MHz) 32-bit (x86) processor or 800-MHz 64-bit (x64) processor
      • 512 megabytes (MB) of system memory
        Note On system configurations that use system memory as graphics memory, at least 448 MB of system memory must be available to the operating system after some memory is allocated for graphics.
      • DirectX 9-class graphics card
      • 32 MB of graphics memory
      • 20-gigabyte (GB) hard disk that has 15 GB of free hard disk space
    2. Windows Vista Home Premium, Windows Vista Business, Windows Vista Enterprise, and Windows Vista Ultimate
      • 1-gigahertz (GHz) 32-bit (x86) processor or 1-GHz 64-bit (x64) processor
      • 1 GB of system memory
      • Windows Aero-capable graphics card
        Note This includes a DirectX 9-class graphics card that supports the following:
        • A WDDM driver
        • Pixel Shader 2.0 in hardware
        • 32 bits per pixel
      • 128 MB of graphics memory (minimum)
      • 40-GB hard disk that has 15 GB of free hard disk space (the 15GB of free space provides room for temporary file storage during the install or upgrade.)

    Problems with Microsoft's spec:

    1. Processor clock speeds are virtually meaningless:
      1. Due to differences in processor architecture (10-12 stage pipeline in AMD chips vs. 30-31 stages in Pentium-4), AMD chips have always been able to do more with slower clocks. Long pipeline chips from Intel always did better when running static benchmarks but this is not the environment you find in a real world OS were processes are interrupting each other. (BTW, Intel is quietly reverted to shorter pipelines starting with Core and Core2 processors)
      2. Here is a sampling of PC MARK 2005 - CPU diagnostics published in 2008 by Tom's Hardware where I only searched for the phrase "3200" in the clocking spec:
        Chip Clock Benchmark
        Intel Pentium-4 640 3.2 GHz 4037
        Intel Pentium D 840 3.2 GHz 5300
        AMD Athlon 64 X2 6400+ 3.2 GHz 6576
        Intel Core 2 Extreme QX9770 3.2 GHz 10310
      3. In this sampling of PC MARK 2005 - CPU diagnostics published in 2006 by Tom's Hardware, I located two neighboring processors with ridiculously different clock speeds but similar benchmark results:
        Chip Clock Benchmark
        AMD Athlon 64 FX-70 2600 MHz 6598
        Intel Pentium EE 965 3733 MHz 6341
    2. Why didn't Microsoft ever mention memory transfer rates? There are huge differences between DDR and DDR2 memory chips. It seems to me that Windows-XP is tuned in such a way as to be okay with DDR but Windows-Vista seems to be more chatty with memory so would really require DDR2.
    3. Microsoft seems to be relying upon the hardware boost provided by good graphics cards, but in the real world, I have found that only techies and gamers ever buy them. So if you don't have a good graphics card then you will need more hardware horsepower.
    4. While the minimum hardware spec will allow Vista to boot, you will have problems running apps like Windows Media Player, Microsoft Office, or Personal Oracle.

    My Recommendations:

    1. Don't bother with Vista unless your processor has at least two cores.
      1. Any dual core chip from AMD should be OK.
      2. Any Core2 chip from Intel should be OK.
      3. Only the extreme editions of Intel's Pentium-D CPU (which was released before Core and Core2) are worth taking a chance with Windows-Vista
    2. Windows-Vista systems need at least 1 GB of DDR2 memory but 2 GB is better. If your system only has DDR memory then it is a better idea to stick with Windows-XP.
    3. You need at least 100 GB of hard disk space just to make the system useable. Remember that a hard drive is not only required for Windows binaries and your data storage, the OS requires a big chunk too for other stuff (pagefile.sys, hiberfil.sys, rollback database, etc.)
    4. A good external graphics card can be counted upon to unload nitty-natty tasks from your CPU (embedded graphics chip sets usually do not have their own memory or can't do 3-d acceleration)
       
  2. Vista screens have been hijacked by artsy marketing people at Microsoft to make Vista look different from XP (probably to justify charging triple-digit dollars to upgrade to something that is only 10% changed). There is way too much screen animation and other crap stealing resources from your system. Click vista-fix-1 for steps to change this.
     
  3. Many logically located Windows-XP panels have been moved to illogically located positions in Windows-Vista. For example, it is almost impossible to find the panel with your Ethernet network adapter settings. Why was "Add Remove Programs" in XP changed to "Programs and Features" in Vista? These changes are OK for techies but the non-technical and geriatric members of my family are totally confused by the Vista changes (so they call me to be their tech support guy for every nitty-natty thing).
     
  4. Vista takes too much time to boot-up because too many unnecessary services are enabled. Click vista-fix-2 for steps to change this.

Some Vista Fixes

Fix Attempt #1 (make Vista look and act a little more like XP while reducing memory usage and CPU overhead )

  1. Consider totally disabling Windows Side-bar (right click on it to see how). It looks neat but adds too much overhead.
     
  2. Right-click on the Task Bar then select properties
    1. click the Start Menu tab then select Classic Start menu button.
    2. uncheck both Privacy checkbox items (then click the Apply button)
    3. now click the Customize button. Enable all Advanced Start check boxes but disable "Use personalized menus" then click the OK button
    4. click the Notification Area tab then check all System icons but uncheck Hide inactive icons (then click the apply button)
    5. click the Toolbars tab then unclick all check boxes except for Quick launch and Windows Media Player (then click the Apply button)
    6. now click OK and close this stuff
       
  3. Computer and Network icons should now be found on the desktop.
    1. right click on Computer then select Properties.
    2. Now click on Advanced system settings then click on Settings button found in the Performance panel (top third).
    3. Now click on the radio-button located Adjust for best performance then click the Apply button.
    4. Now click the OK buttons closing all this stuff.
       
  4. Right-click anywhere on the desktop background the click on Personalize.
    1. Now click on Window Color and Appearance. Make sure your color scheme is either Windows Standard or Windows Classic (looks like Windows NT 4.0). Never use Windows Aero unless certain Microsoft apps request it. If you previously had a black background color like me then you've probably just messed it up. Click on the Advanced button to change it to whatever you wish.
       
  5. Double click on Computer
    1. Go to the View menu changing from Icons to Details.
    2. Now go to the Tools menu and select Folder Options
      1. now click the General Tab
        1. select Windows Classic folders
        2. select Open each folder in its own window
        3. select Double-click to open an item
        4. click Apply
      2. Now go to the View tab
        1. Click everything starting with Display ...
        2. Unclick everything starting with Hide ... (we're all adults here, right?)
        3. Click Apply
      3. Now go to the Search tab
        1. Click Always search filenames only
        2. Click Apply then OK
      4. Double click on Drive C
        1. Make sure the View is set to Details
        2. Fiddle with the view until it looks the way you want (right-click on any column to add remove other columns)
        3. Click: Tools menu -> Folder options item -> View tab -> Apply to Folders button

Fix Attempt #2 (make Vista boot faster by tweaking with msconfig)

 Caveat: This paragraph is for experts only.

  1. Start ->  Settings -> Control Panel -> Administrative Tools -> Services
    Locate the entry named Server then right click on it and select Properties
    Now change Startup Type to either Delayed Start or Manual

    Note: Server was previously known as LanManager which will never be used by most non-technical users
     
  2. Start -> Run -> msconfig -> services tab -> hide all microsoft services -> uncheck these if they exist:

    xaudio, vongo, stllsvr, roxmediad89, installdriver table manager, cyberlink background, cyberlink task, Nero BackItUp Scheduler, NMIndexingService, DQLWinService, HP Health Check Service (if you no longer want it), LightScribeService Direct Disc Labeling Service (if you don't intend to ever use these disks)

    ...and anything else you think shouldn't be there. Check each one with Google making sure you don't disable anything related to your anti-virus software. Some stuff might have been installed by other apps. For example, roxmediad89 is sometimes installed by Blackberry Desktop Manager so be careful. Click http://www.asktheadmin.com/2008/01/my-vista-machine-is-slow-what-can-i-do.html if you need more help before proceeding.
     

  3. Removing some Microsoft services
    Start -> Run -> msconfig -> services tab -> uncheck Hide Microsoft Services -> uncheck these services if they exist:
    SuperPrefetch, ReadyBoost, Print Spooler (if you are like me and don't own any printers), Windows Firewall (if you were not using it anyway; I use a LinkSys firewall since a hardware solution is always better than software), Windows Defender (if you were not using it anyway; I use "CA Security Center")

    http://en.wikipedia.org/wiki/Windows_Vista_I/O_technologies
     
  4. Note: you will see the following msconfig suggestion everywhere on the net but it will NOT speed up your boot.

    Start -> Run -> msconfig -> boot tab -> advanced options button:
    check number of processors -> max=2 -> check maximum memory <<<--- this whole line does nothing

    These settings are used to reduce the number of cores and/or memory used when booting. When the checkboxes are unchecked, your system will use the maximum number of processors and memory available. Click here for more information:

    http://www.withinwindows.com/2008/08/09/tweaking-myth-increase-boot-performance-for-multi-core-users-with-msconfig/ 

Bad Capacitors on Dell OptiPlex GX-270

The other day (2012-11-14) I decided to take a look at a bunch of bad PC's stacked up in our equipment room. Three of them were Dell model GX-270 all sporting Pentium4 CPUs which means I should have sent them to our e-waste group, but I was curious. All three machines sported 3 aluminum electrolytic capacitors with very slight bulges on their top end (they are supposed to be perfectly flat; the little "X" is a strain relief to prevent a defective capacitor from exploding). All three boards were manufactured in China by FoxConn and all the questionable caps are black plastic with gold lettering manufactured by Nichicon.

Scams

2000 Hardware Scam (modems)

The previous 1995-2002 scam:

Before DSL and cable-modems were popular, most people connected to the internet via a 56K (V.90 compatible) analog modem connected to a phone line. These modems were available in four basic configurations:

  Modem Technology DSP
Chip
 
1 External appliance connected to your PC via a serial communications cable Y Good
2 Modem card plugged into an ISA (or EISA) slot of your PC Y Good
3 Modem card plugged into a PCI slot of your PC N Bad
4 Small match-box size external appliance connected to your PC via a USB cable Y Good

El-cheapo PCI models were truly evil because they did not contain any DSP hardware. In order for them to do their jobs, they robbed resources from your Pentium processor by tapping into the SIMD (MMX + SSE) extensions. The other three models didn't have fast parallel access to the CPU so required their own DSP chips.

So the bottom line was that "people in the know" had to resort to older ISA internal modems (if you had an available slot) or USB-based external modems.

2008 Hardware Scam (wireless NICs)

The current 2005-2008 scam:

Have you ever wondered why some PCI-based wireless cards (a.k.a. wireless RF modems) can be sold for $19.00 while USB-based wireless adapters like WUSB11B from LinkSys cost twice as much? Same scam as the analog modems described above. Some PCI-based cards only contain 2 small chips (small = 1.5 x 1.5 cm : large = 2.7 x 2.0 cm) and no onboard DSP. To get the job done, the device driver is used to  bridge PCI-based hardware with SIMD (MMX + SSE + SSE2) extensions in your CPU. Notice that this time I added SSE2 to the list. If you attempt to install one of these 2-chip PCI-based wireless cards into a Pentium-3 or earlier with no SSE2 present, the installation will usually fail with some strange error which never mentions that a Pentium-4 processor or SSE2 was a minimum requirement. On top of this, if the card does install properly in your Pentium-4, constant network chatter will rob your system of valuable CPU resources which could affect other activities like folding@home

Theses two cards mysteriously (no relevant error messages) failed during the installation on my Pentium-3 but installed properly on my Pentium-4:

ZONET - WES1605
which is based upon the Libertas 802.11g/b Wireless chipset (W8335) from Marvell Semiconductor, Inc.
Notice that this is only a half-height PCI card. 
Cyber Station - NW-5411
which is based upon the RTL8185 54M Wireless LAN Network Adapter from Realtek
For some reason, this picture has a piece of gray tape over the larger chip. 

BTW, I'm not trashing these these companies or their products; just be aware that there is a reason why these half-height PCI cards cost $19.

This PCI card worked properly on all my computers (VERY HIGH QUALITY):

Netgear - WN311B
Supports: 802.11n as well as 802.11b/g
Note: purchased for $29 at a technology liquidator

Theses two USB products worked properly on all my computers:

LinkSys WUSB11 (v4)
Supports: 802.11b
Note: purchased for $25 at a liquidator because it has been discontinued
Cyber Station NW-5419
is based upon WN-G54/BB from I-O DATA DEVICE, Inc.
Note:
This is an 802.11 g/b pocket tool I picked for $19
(although I hated the setup software which was only presented in Kanji. Thankfully I was able to fumble through it) 

2010 Hardware Scam (sort of)

Odds 'n Ends

Poorly Documented Hardware

Siemens SpeedStream 6520

My gripes about PC hardware

Memory 'Error Checking' in PCs

a call to arms: Engineering must overcome Marketing...

Introduction:

Observations:

Summary:

Parity checking:

Final Thoughts:

PC Power Supplies: Elephant in the room

Okay so it is 2012 so why can my BIOS access every aspect of my PC hardware except the power supply? Let's say I want to add a high-power graphics card to my system which already contains a 450 Watt power supply. It would really be nice to know how much power is already flowing through the power supply so I would know if I need to upgrade the supply (or not). On top of this, how hard would it be to measure:
Most servers have been able to do this for more than a decade. Okay, so the additional components might add a dollar or two to every power supply. Why do we always need to be so damned cheap? 

Hardware Links

Software Links

DLL Examples for novice Windows programmers

What is a DLL? Many Windows applications, and Windows itself, are built built as a collection of callable DLLs (Dynamically Linked Libraries) rather than static executable binaries. For examples of this, check out the size of MS-Internet Explorer (IEXPLORE.EXE) which is only 89K, or the size of MS-Outlook Express (MSIMN.EXE) which is only 56K, yet both programs call the same "HTML rendering engine" which is implemented in the system DLLs. When you've got Outlook Express running at the same time as three instances of IE, there is only one set of DLLs loaded which definitely saves memory.

DLL Examples Description Development Platform
dll demo 1: empty project two small C++ functions without DllMain() Visual C++ version 6.0
Visual C++ version 7.1 (a.k.a. ".NET 2003")
dll demo 2: simple project two small C++ functions with DllMain() Visual C++ version 6.0
dll demo 3: example application DiskFree.cpp Visual C++ version 6.0

Note: As most C++ programmers already know, C++ parameters are type-enforced by name mangling. While this causes no problems if C++ applications are calling C++ DLL routines, applications written in other languages will not be able to call a DLL written in C++. In order to get around this obstacle you must disable name mangling of exported names by surrounding the whole C++ source in a "C" wrapper like so:

extern "C" {
    [ ... whole c++ DLL source goes here ... ]
}

Alternatively, you could write your DLLs in "C" but this may not always be possible.

Drivers

Anti-Virus Info

Spyware + Adware Info + Removal Tools

Diagnostics

PC Development Tools + Miscellaneous  Cool Stuff


Click for the latest reality check from our hero
Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.