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. many components extended to 256-bits
      9. 2012: AVX2 (more components extended to 256-bits)
      10. 2015: AVX-512 (512-bit extensions)
    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

    How We (HP Labs) Found the Missing Memristor
    IEEE claims "this is the greatest electronics invention of the last 25 years"

    Logic circuits that program themselves: memristors in action

  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. HyperTransport is the biggest thing in computer technology since the invention of the FSB (Front Side 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).

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

 How "UNIX on PDP" and "UNIX on VAX" helped start 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




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.
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			!
	print "error "+ str$(err)
	print "line  "+ str$(erl)
	print "text  "+ ert$(err)
	input input "hit <enter> to exit"; junk$
	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.