Electronics & Computer Technology

Prototype CPU Mattrix (5x3x2=30 CPUs) designed by Myles Dyson for Syknet (from sci-fi movie Terminator 2) Thinking Machines CM-2 (this is real)

This entire sub-domain is a private effort of free information.
There are no cookies, no advertisements, and nothing is for sale.

Quick Navigation Menu

My (Neil Rieck) Commercial Embedded Work (on this same page)
Visit my (Neil Rieck) Computing Bio
Visit my (Neil Rieck) Regular Bio
My Windows/PC stuff has been moved here
My OpenVMS (VAX, Alpha, and Itanium) can be found here

Current Items of Interest (most recent first; occasionally pruned)

  1. 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
      2. 1989: DEC adds optional vector processing to VAX-6000 model 400 (called VAXvector)
      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 the desktop 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.
    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.
  2. Excerpt from NPR's "Science Friday" program 2007-11-16: I hate my cell phone. I have to admit it's not easy to use. I hate my cell phone carrier because it locks me into a system: It doesn't let me choose the cell phone I would like to use. It doesn't physically play nicely with my computer's calendar or its address book or my other tools that, ideally, would make my life easier. And if I want to change my situation, you know what that's like, if I want to move to another carrier I have to buy a new phone because that phone doesn't fit the next carrier. I have to get a new service with the limitations that are all there. It’s basically like having to start all over again in many cases. And it makes you wonder why can't they make a cell phone that lets me do what I want to do? Let me choose a provider I want to pick. The cell phone I want to pick. Wouldn't you like that too? Well we may be getting closer to that day because first Apple introduced the iPhone that basically puts a small computer in your pocket and that gives you a lot more flexibility. You're still locked into that one carrier so that's not so great. And you're still locked into the goodies that Apple wants to give you and lets you have on their [your] iPhone but last week Google, the search engine king, brought us a step closer dipping its toe into the cell phone world. And not with a full fledged gPhone as they've been calling it, but by helping to develop a set of software tools call Android that can run on many different hand sets with interchangeable parts. And that could allow more flexibility for consumers.
  3. University of Michigan electrical engineer builds chip composed of 1 kilobit nanoscale memristors
    http://www.physorg.com/news156526733.html

    How We (HP Labs) Found the Missing Memristor
    http://spectrum.ieee.org/dec08/7024
    IEEE claims "this is the greatest electronics invention of the last 25 years"

    Logic circuits that program themselves: memristors in action
    http://arstechnica.com/hardware/news/2009/01/logic-circuits-that-program-themselves-memristors-in-action.ars

    Every electronics student knows about resistors, capacitors and inductors, but HP Labs has just developed a fourth fundamental device called a memristor which is expected to revolutionize memory circuits and neural-net computers.
  4. The Software Developer's Rule:
              "Faster, Better, Cheaper." Pick any two but you can never have all three.
     
  5. Seven Mistakes Made All the Time by Most Software Development Organizations from http://www.kbcafe.com
    references Bell-Sygma (official IS/IT provider for some large corporations in the 1990s which later morphed into CGI)
     
  6. The 2004-05 issue of Scientific American claims there are 205 million PCs in the USA incorporating switching power supplies with an efficiency of only 60-70% (so 30-40% of the power is converted to waste heat; Not so bad in the winter but contributes to overloading cooling systems in the summer). By changing power supply design from forced commutation to resonance based, the electronics industry hopes to push efficiency to 80-90%. Now if we could only get rid of those pesky linear (non-switching) power adapter cubes (wall warts).
     
  7. HyperTransport is the biggest thing in computer technology since the invention of the PCI bus. Intel went their own way with Quick Path Interconnect (QPI). Both these technologies were derived from a technology named Common System Interface (CSI) which was developed by DEC engineers for the never-released Alpha 21464 (EV8). The Intel technology can be found in their Xeon processors (starting in 2008) and Core i7 processors.

Don Lancaster

David L Jones (EE Video Blog)

Chip Info & Embedded Development Tools

Note: many site links on this page have been replaced with WebRing links

HC11 WebRing '68HCxx' WebRing
[ Join Ring | Ring Hub | Random | << Previous Site | Next Site >> | List All Sites ]
In 2004, Motorola spun off their semiconductor division
which is now known as Freescale Semiconductor
'Embedded Technology' WebRing
[ Join Ring | Ring Hub | Random | << Previous Site | Next Site >> | List All Sites ]
'Electronics Engineering' WebRing
 [ Join Ring | Hub | Random | << Previous Site | Next Site >> | List ]
'Electronics' WebRing
[ Join Ring | Ring Hub | Random | << Previous Site | Next Site >> | List All Sites ]

About My (Neil Rieck) Commercial Embedded Work:

Visit my (Neil Rieck) Computing Bio
Visit my (Neil Rieck) Regular Bio
I designed the electronics and programmed the firmware for three different "ground-source heat-pump applications" for two Canadian companies no longer in business (fortunately for my ego, the demise of these companies had nothing to do with me or my technological contributions).

(mostly) Software Links

(mostly) Hardware Links

Unix - Linux

SUN Solaris-11 for x86-64 (2007-04-xx) Installation Tips

Note:
1) Sun was acquired by Oracle in Jan-2010 so much information is now outdated but a few tidbits may still be of some use.
2) Click here to jump to my 2012 installation notes

  1. Click www.solaris.com to freely download Solaris-10 for the following platforms: SPARC, x86, x86-64
  2. As of 2007-04-xx you can get Solaris-11 (a.k.a. SunOS-5.11) by first navigating through this "Indiana Jones" style game...
    http://www.sun.com/playtempleofthesun (Play Temple of the Sun)
    ...while answering six "C/C++ programming questions" at the various wall consoles. If you are successful, SUN will mail you a free DVD containing "Solaris Express, Developer Edition" containing Solaris-11 along with Sun Studio 11 which is their IDE (Integrated Development Environment). It looks similar to Microsoft's IDE called Visual Studio and comes with compilers for: C, C++, and Fortran. Sun Studio 11 can invoke either Sun or GNU compilers. It is able to generate code for three hardware platforms (SPARC, x86, x86-64) running either Solaris or Linux.
  3. As of 2008-01-xx you only need to click here...
    http://www.sun.com/software/solaris/solaris-express/get.jsp
    ...then do a free download -or- request a DVD be mailed for $10.00
  4. boot the DVD then install everything on a spare drive in your PC
    1. I used a Compaq Presario SR2044NX with:
      1. 1 GB of RAM
      2. 2.8 GHz Pentium-D (two cores)
      3. 200 GB SATA Drive
      4. DVD-RW
    2. Solaris-11 has enabled both cores. Yipee!
  5. Yikes! It's only been 8 weeks and now (2007-06-06) SUN has just announced that Sun Studio 12 is available for  download.
  6. As is the case with almost every flavor of UNIX on a PC, your sound card will probably not work. So go to one of these web sites:
    1. http://www.opensound.com/download.cgi (Open Sound System is now free for personal and non-commercial use and comes with a license key that will allow you to run OSS. The license key is valid for up to 6 months at a time after which you will need to download and install OSS again. There are no time limitations or restricted functionality during the licensing period.)
    2. http://www.bolthole.com/solaris/drivers/
    3. http://www.tools.de/opensource/solaris/audio/
    4. Execute this Solaris command "prtconf" to see the hardware adapter entry points. Alternatively another utility called "prtpci" can be found on the web
    5. Other resource links
      1. http://www.bolthole.com/solaris/x86.html
      2. http://www.tools.de/opensource/solaris/
      3. http://solaris-x86.org/
      4. http://www.sunfreeware.com/
  7. Use the "Options Button" to log in using the GNOME desktop. While CDE may be more familiar to people coming from an X-Windows environment, the GNOME desktop looks a little more like Windows and includes a "cool tool" called "Network Servers" for connecting to other platforms including Windows).
  8. Now...
    1. double click on the "Developer Guide" desktop icon
    2. or alternatively...
      1. click Orange Start Button
      2. "All Applications" item
      3. "Developer Tools" item
      4. "Developer Guide" item
    3. Now click on some of the educational video hyperlinks (which is why we needed to fix the sound card)
  9. Some quick command line entries for UNIX newbies:
    Command Function
    man help
    w work display
    ps -ef process status display (e=every thing, f=full)
    ps -ef | more process status display (one page at a time)
    ps -ef | grep yada process status display but only display lines containing "yada"
    prstat process status (refreshes every 5 seconds)
    psrinfo -v processor info (v=verbose)
    ls -la directory of files (l=long, a=all)
    cat yada type contents of file "yada"
    cd yada change directory to subdirectory "yada"
    ./yada execute "yada"

Red Hat "Fedora Core 5" i386 (2006-03-xx) Installation Tips

first read the documentation:

problem #1: You've got Windows on a first hard drive (C) but you don't want to mess around with partitioning it so you install Linux on a second hard drive (D) which you will select via a BIOS boot menu. You finish the Linux installation on the secondary drive but upon first boot from that drive, GRUB can't complete Linux startup.

solution #2:  GRUB is meant to be installed on drive C (hd0) which would then be used as a jumping off point to get to D (hd1). But you wanted to keep drives C + D completely separate and so GRUB was installed on drive D (hd1) and referred to it this way by the installation software. When you boot drive D (hd1) directly from the BIOS boot menu, drive D is now known as hd0 which is not correct. What you need to do is modify the GRUB configuration file on drive D like so.

Note that GRUB uses platform neutral device names (my drives are actually known as sda and sdb)
Click here www.linuxjournal.com/article/4622 for a really good tutorial on GRUB


SUN Solaris-11 for x86-64 (2012-05-xx) Installation Tips

Note: I needed to do this so I could determine if programs SSH/SFTP/SCP had been changed since Solaris-9
  1. Solaris-11 (a.k.a. SunOS-5.11) can be installed by first downloading it from here:
    http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
     
  2. They only deal with ISO images so be prepared to burn a CD-ROM or a DVD  depending upon the download size
     
  3. The installation tool (at least the one for Solaris-11 11/11) is supposed to work with either 32-bit machines (x86) or 64-bit machines (x86-64) but I was never able to get it to work in 32-bit mode (the installer would always fail with message "Long Mode Not Supported") so don't waste you time unless you have a modern 64-bit capable machine.
     
  4. I had an old Compaq Presario SR5034X with a 64-bit dual core CPU (Pentium-D) sitting in my basement just doing protein-folding (while keeping dampness low) so I grabbed that machine to to install Solaris-11 (x86-64) on a second drive.
    • Problem 1: The installer was never able to find an available drive which forced me to check my BIOS settings
    • Fix 1: I noticed that the SATA1 controller mode was set to RAID so I changed it to IDE. Solaris now installed without a hitch
    • Problem 2:  there was no GUI available (just command line) and I didn't have time to do everything the old-school way
    • Fix 2: I used this procedure to get GDM (graphics display manager) installed:
  5. If you only have access to one computer, or using just one computer is more convenient, then installing a VM manager might be a better option. My main workstation is an HP e9270f quad core (Intel Core-i7 / 6 MB) running Windows-7 64-bit so I decided to give it a try.
    • So I downloaded then installed Oracle VM VirtualBox Manager from here:
      http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
    • Problem 1: I get a virtual CPU error whenever I start a virtual instance
    • Fix 1: So I checked the BIOS and notice that Virtualization was turned off so I turned it on then rebooted
    • Now I was able to install the CD-ROM into a folder which the VM was treating as a pseudo hard drive
       
  6. Oracle VM VirtualBox Manager notes:
    • this software also supports other OSs like: Linux, UNIX (various flavors), Windows (various flavors), QNX, DOS, etc.
    • every time you create a virtual instance, the minimum amount of memory is set too low (the BSD template defaults to 512M) while the number of CPUs is too low (1). This will result in the installation being painfully slow and long so make sure you commit more resources to each virtual instance before you start the instance. You can always remove CPUs and Memory later.
      p.s. a quad-core with hyper-threading enabled in BIOS will present eight CPUs to the VM so you should always commit a minimum of two CPUs.

Kudos to Oracle for a virtually (no pun) painless experience.

Links:

 How "UNIX on PDP" helped start ARPANET/Internet

Internet Traffic Map for 1995Technologies that helped promote 'UNIX on PDP' (which led to the Internet)

Internet Diagrams (to see the dominance of DEC hardware)

Internet Block Diagram Notes
ARPANET Logical Map, April 1971
  • ~ 50% PDP
  • only PDP at BBN
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • only IBM at RAND (D.O.D.)
ARPANET Logical Map, September 1973
  • ~ 50% PDP
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • only PDP at ARPA
ARPANET Logical Map, January 1975
  • ~ 50% PDP
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • many more universities and defense contractors
ARPANET Logical Map, March 1977
  • PDP, DEC System 20
  • only PDP at the Pentagon
ARPANET Logical Map, March 1979
  • PDP, DEC System 10, DEC System 20
rfc801 from 1981
  • mentions VAX
  • mentions LSI-11 (uPDP used as a message router)
diagram from 1986
  • notice the solid blocks labeled "LSI-11"

Other Links

How "UNIX on VAX" helped promote TCP/IP

Internet Stuff - HTML, JavaScript, RSS, XML, SOAP, UDDI, HTML + CGI, Perl, BASIC, etc.

RFCs + Ports

DNS registration

DNS Other

XML, SOAP, UDDI

Perl

HTML + CGI

BASIC Compilers and Interpreters (the language that never dies)

Mostly free, Vanilla (non GUI) BASIC sources:

Modern BASIC compilers for Windows + Linux:

Other BASIC Links:

Suggestions to people maintaining/reviving BASIC compilers for smaller platforms:

According to Wikipedia, BASIC was designed in 1964. The main problem with BASIC compilers nearly a half century later is there are more differences than similarities. This is partly due to the fact that this language never went through a standardization process like COBOL, FORTRAN, C and C++. The following suggestions come from HP BASIC for OpenVMS. Here is a link to their documentation files:

Comment: To make matters worse, the largest vendor of BASIC languages tools, Microsoft, made a very wise decision (IMHO) to modify Visual-BASIC-6 so it would be able to link to internet-aware software written in other languages (like C++, Java, and C#) and vice-versa. This means that VB.net now (wisely) starts every array with subscript zero; replaces BASIC's internal string data-type with the string object (found in C++, Java, and C#), etc. While this move "broke" a lot of VB6 code, most enterprising programmers looked upon this transition as a business opportunity. But I think this paradigm shift has moved the goal posts for BASIC compliers from other vendors. Now those vendors need to decide to evolve or, like the dinosaurs, be left behind.

Suggestion #1

All programs (applications) need a mechanism to signal "success/fail/whatever" to the calling program or script. By default, many BASIC programs signal "0" (if UNIX) or "1" (if OpenVMS) when the END statement is encountered.
     END
Some BASIC compilers allows the programmer to exit with a signal like this:
     END exit_code%               ! this code is sent back to the caller
while HP-BASIC does it like this:
     END PROGRAM exit_code%       ! this code is sent back to the caller
Yep, HP-BASIC uses a similar syntax to exits all block-oriented statements (END IF, END SELECT, END FUNCTION, END SUB, END WHEN, END PROGRAM, etc.)
 Suggestion #2
Anyone who has used C++ will be familiar with the exception handling statements: try, throw, catch. Anyone who ever used BASIC would be familiar with the statement ON ERROR GOTO. However, not many BASIC programmers know that some BASIC compilers also support C++ style exception handling which looks like this:
1000	on error goto common_trap	! old school exception handling
...
	when error in			! works like try
	input "input a number?", junk%	!
	  if junk% = 999 then		!
	    cause error 52		! works like throw
	  end if			!
	  status% = 0			! all is well  
	use				! works like catch
	  status% = err			!
	end when			!
	select status			!
	  case 0			! no error
	  case 50			! data format error
	  case 51			! integer error of overflow
	  case 52			! illegal number 
	  case 151			! EOF
	  case else			!
	end select			!
...
	common_trap:
	print "error "+ str$(err)
	print "line  "+ str$(erl)
	print "text  "+ ert$(err)
	input input "hit <enter> to exit"; junk$
	fini:
	end				!

Suggestion #3

All BASIC compilers should use a standard method to modify compiler action. For example, HP BASIC uses the OPTION statement to require every variable to be declared.
1000 option type=explicit	! all variables must be declared (catches programmer typos)
     declare long i%, j%	!
     if i > 0 then		! this line will throw a compile-time error
     ...
     end if			!

Suggestion #4

All BASIC compilers need a standardized way to do ISAM file i/o (sequential, relative, indexed). While it is true that HP-BASIC requires a layered product called Record Management Services (click here to see some demos), UNIX offered similar capabilities through products like:
Wouldn't it be cool if these BASIC's had built-in extensions for ISAM plug-ins and/or relational products like MySQL

Open Source Projects

Museums + Emulators (except Apple-2)

Apple-2 Forever (8-bit forever)

Apple-2 Links 

Miscellaneous Links

Cryptography + Steganography

 Moved to: OpenVMS Notes: Cryptography

FFT, DSP, Compression + TV Links


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