Want more...Bits

Posted by on in Blogs
Who wants more Bits (binary digits)?  I first started programming in September 1969 on an IBM 360 model 40 as a Freshman at Cal Poly San Luis Obispo Computer Science Department.  The IBM 360/40 had a 16-bit data width, 32-bit general purpose registers, and 64-bit floating point registers.  I also got permission to program (using Assembler and FOCAL) on the PDP-8 (12-bit single accumulator, up to 32k of 12-bit memory words) that was in the Journalism department.  Later on, Professor Emile Attala acquired a Data General Nova 1200 minicomputer (16-bit width for registers, data, and instructions) for his Computer Assisted Instruction research.

My first personal computer was an Intel 8080 (8-bit microprocessor, 16-bit address bus, 8-bit data bus) based IMSAI kit computer (22-slot motherboard) purchased and put together in the Winter of 1974//1975. My second personal computer was the Apple II+ (MOS Technology 6502 microprocessor, 8-bit processor, 16-bit address bus) in 1979.  I also added a Zilog Z-80 processor (8-bit processor, 16-bit address and data) board in one of the Apple II+ slots.

My next personal computers were the IBM PC and IBM PC/XT using the Intel 8088 microprocessor (8-bit data, 16-bit address) in 1981-85 while I was working for Softsel Computer Products Inc in Los Angeles. Philippe Kahn gave me copies of Turbo Pascal version 1, for Digital Research CPM/80 and IBM PC DOS 1.0, at Comdex Las Vegas in November 1983.

When I joined Borland, in the summer of 1985, my first computer was the IBM PC/AT (8mz, Intel 80286 microprocessor (24-bit address bus).  In 1985, Borland was shipping Turbo Pascal version 3.

Fast forward to 1995.  On Valentine's day (February 14), Borland announced Delphi at the Software Development Conference.  Delphi version 1 ran on 16-bit Windows (version 3.1).  Delphi version 2 ran on 32-bit Windows 95.  Because of the success of 32-bit Windows, our industry has taken a long journey to the land of 64-bit computing. We are now showing a preview of the Delphi 64-bit compiler.  The Delphi 64-bit compiler will arrive this year.

What's next for desktop and server computing - 128 bits?  My personal opinion is that for the next five years we will thrive on MultiCore processors and GPGPU computing.  How many bits do you need for your programs and computations?

Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.


  • Guest
    Jolyon Smith Wednesday, 6 July 2011

    The inexorable climb in bit width is not, I think, as inexorable as the supposed apparent trend might indicate.

    In fact, looking at the underlying trend in your own history, the number that crops up most often is "16-bit" - almost right from the very start. Indeed, 64-bit was present right at the start. Given that, the perceived upward trend starts to look more like a plateau!

    The perceived bit width increases tend to address [sic] the need for more memory, not the size of discrete values being processed, except in very specialised hardware for highly specialised computation but that specialised hardward already exists where needed. We are talking about general purpose computing I think.

    In those terms 64-bit is as wide as we are ever likely to need to go for a single instance of computing power (a "computer").

    Even today, the operating systems that are built for 64-bit hardware do not support the full range of possible addresses that 64-bit would allow! Far, far from it.

    For general purpose computing - the sort of thing that Delphi and Visual Studio tools are targetting - I don't think we will ever see a need for more than 64-bits.


  • Guest
    David M Wednesday, 6 July 2011

    I think Jolyon's right - 64 bits will probably be enough for while. Never say never though :) I think what will drive hardware is data throughput - so 64-bit addressing is useful, for example, to easily handle greater address spaces. Multicore and GPGPU make sense as the next progression, because that's the direction hardware will probably go in order to process large quantities of data - or with more complex processing - quickly.

    As for how many bits we need? 64 bits, for address space only. (We use C++Builder though, so while we'll be watching Delphi64 with interest, we're hanging out for the following release.)

  • Guest
    Brian Frost Wednesday, 6 July 2011

    I would like more FILTER-based search capability in one place on my PC and particularly in Delphi. For example if I want to find 'procedure FooBar' I would like simply to open a dialog and type 'foo' and this dialog would narrow matches down until I was happy (like list box does now). The searching is awfully scrappy across applications. Code Insight and navigation is great when it is available but this is not always the case.

  • Guest
    The Fox Wednesday, 6 July 2011

    Brian: Install GExperts and you have that dialog by pressing Ctrl+G!

  • Guest
    Kevin Killion Thursday, 7 July 2011

    I earned my computing chops on a Control Data 3300 (years before Altair/IMSAI/Apple), with 24-bit words, 6 bits per byte. I wrote little word processing program on it, providing lower-case letters by using bit-level tricks to store three 8-bit bytes per word instead. Speaking of bit-packing, I've had to do a lot of re-writing when porting Pascal programs from other platforms to Delphi to make up for Delphi's lack of a proper packed array of booleans.

  • Guest
    David Intersimone Thursday, 7 July 2011

    Kevin - can you define what you mean by a "proper packaged array of boolean"? Would a Set type work (uses bits) or the TBits class fit your needs?

    TBits stores an array of Boolean values. (Classes.Pas unit) - Use TBits to store and access an indefinite number of Boolean values. TBits can store as many Boolean values as can fit in the available memory, which automatically expands its storage space as needed. If the number of Boolean values is limited to 32, the same functionality can be achieved using a 32-bit integer with the bitwise AND (Delphi) or & (C++), and OR (Delphi) or | (C++) operators.

  • Guest
    Logvinov Alecksey Sunday, 10 July 2011

    64-bits is more than enought. MultiCore and CoreBalance sounds good.

  • Guest
    Kevin Killion Friday, 15 July 2011

    TBits is a workaround for Delphi's lack of support for a proper packed (not "packaged") array of Booleans. But please note that a packed array of Booleans **IS** present in other Pascals, including UCSD Pascal, Gnu Pascal (GPC), Free Pascal (FPC), and ALL of the Pascals ever used on Mac OS including Clascal, MPW Pascal, Think Pascal, Metrowerks Pascal and Objective Pascal (I just checked these now).

    However, TBits is, at best, merely a workaround: Porting code from other Pascals to Delphi and using TBits requires adding new code to handle creating and disposing the object. The programmer also needs to add some scheme for reading and unpacking (or packing and writing) the data to a file or stream. A proper packed array of bits would conform better to other Pascals, requirelittle or no re-coding upon porting, and just simply make for clearer and prettier code.

    I love Delphi, but there are more than a few things it could still learn from other Pascals.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: