You are not logged in or registered. Please login or register to use the full functionality of this board...
SIGN IN Join Our Community For FREE


Do we need a 128-Bit processor?
05-20-2017, 12:07 PM (This post was last modified: 05-20-2017 12:48 PM by Waltersmind.)
Post: #1
 (Print Post)
Do we need a 128-Bit processor?
While working on the planning stages of CrystalBASIC, I was brainstorming over data types and sizes I wanted to use in the language. While I had the standard integer sizes listed, from a 8-Bit (Byte) up to 64-Bit, I began to think about the usage of the 128-Bit, 256-Bit, and 512-Bit ALU's (Arithmetic Logic Units) found on modern processors and wondered if they would be beneficial enough to add data types of those sizes into CrystalBASIC. That question lead to a ton of ideas and realizations that we normally would not thank about.

Growing up in the 70's and 80's, I had the honor of working on computers with 8-Bit processors and with 1K to 128K of memory. You were living large if you had 128K of memory. The Apple ][e computer only had 64K it was great for the little games I created. Then I discovered assembly language and found I could do the high-end graphic animations and sounds that I saw on professionally made games. It didn't take me long to get close to using the 64K of memory available on the machine with all the graphics I created. The sound effects were procedurally generated, but I always wanted to figure out how they added snippets of voice overs in a couple games I played. I then began to realize I needed more than the 64K of memory. Then came the Apple ][c with its 128K of memory and I was in memory heaven, so I thought. It was tough using that extra 64K memory, because you had to switch memory banks a lot, and that became a lot of tedious work (I got lazy) to do, and added to the codes length. When the public library got in a new Apple ][gs machine, I was estatic by the 1MB of memory. I thought to myself, "there is no way I would ever use that much memory!", but oh how I was so wrong. Then I got a 386-33/66 machine with 4MB of memory and a 10MB hard-drive. I thought I was in heaven again, What the heck was this hard drive thing? No more tape decks? No more floppies to store everything on? This was so cool. On a side note, when I went from the Apple][ computer to the 386, I threw away thousands of floppy disks of all the work I had done on the older computer. I no longer could use them, so why keep them. That wasn't the last time I did that either. When I went from DOS to Windows, and after Windows 95 came out, I threw away even more floppies.

So what does all this have to do with the question of this thread? Everything actually. To answer the threads question, one has to ask themselves, "Why did we upgrade from the 8-Bit processor?". Well, three good answers pop into my mind here.

The first answer is, to be able to access more memory. With a bigger address bus, you were no longer limited to the small amount of memory you got accustom to, and then you were able to do more, bigger and better things. However, the address bus is not the same size as the processor registers were that were manipulated by the CPU's ALU's. Though we went from 8-Bit to 16-Bit, then to 32-Bit architecture (register and ALU processing), the address bus didn't follow along. On the 32-Bit 386-SX processor, the address bus was only 24-Bits, which offered memory access up to 16MB. Then the 386-DX came out and provided us access to 4GB of memory. That was insane amount of memory at the time, and those were the days of hard drives being in 100MB, 200MB size ranges. I remember when a client at a computer company I worked for managed to create a cluster of hard drives to use like it was only one, and had over 1GB of storage space. That was amazing at the time.

Now came along the Pentium Pro processor, while having a 32-Bit architecture, it provided us with a 36-Bit address bus, giving us access to 64GB of memory. This amount of memory at the time was on used primarily on web servers, at least in my area. So, if we have a 36-Bit bus processor that gave us access to more memory than most of would ever see on our everyday computers, then why did we jump to a 64-Bit architecture? Well, for one, because there were some instances where specific industries needed more memory usage than 64GB. But why not create a larger address bus and keep the 32-Bit architecture? Well, I do not know enough details to give a specific answer, but I can say that we wanted to keep memory access linear, and not go back to the Segment:Offset memory access like we had in the machines with 1MB and less. It is easier to use one 64-Bit processor register than two separate ones.

The amount of memory we now have access to on newer 64-Bit processors (18,446,744,073,709,551,615 Bytes, or 17,592,186,044,416 MegaBytes, or 17,179,869,184 GigaBytes, or 16,777,216 TeraBytes) poses a huge bottleneck in performance when it comes to data transfer. While most of us in the BASIC community may never use 64-Bit calculations in our projects, it would be a huge benefit to those projects of ours that need to move large amounts of data from one memory location to another, like images to screen, or even video frames that need to be copied over to screen 24 times a second, or even 30 times a second. Let's not forget about 4K videos, 8K videos, or what about processing the 6,000 petabytes per day data the US Army gets from their 1.8 GigaPixel, 12fps, surveillance drone that has enough resolution to get a clear picture down to 6 inches from 20,000 feet up https://www.engadget.com/2013/01/28/darp...veillance/? That is a lot of data to transfer, and it would go so much faster if you were copying over 64-Bit, 128-Bit, 256-Bit, or even 512-Bit in one swoop than it could be possible with the 32-Bit architecture.

However, 64-Bit architecture does not mean a 64-Bit address bus. No. Most modern 64-Bit processors in household PC's only have a 48-Bit address bus which gives you access to 281,474,976,710,655 Bytes, or 268,435,456 MegaBytes, or 262,144 GigaBytes, or 256 TeraBytes of virtual memory, and a 52-Bit bus for physical memory. Why are they cheating us like this? The simple answer is they are not. Due to the current physical size of memory chips, as well as the memory capacity of the chips, there is no way we can could even put that much memory in household machines. Due to this fact, they limit how much memory can actually be accessed. This helps keeps production costs way down so it would be affordable to us little guys. You can read more at https://en.wikipedia.org/wiki/64-bit_computing.

If we reached out limit on maximum memory capacity for a very long time, why do we need a 128-Bit architecture, 256-Bit architecture, or even a 512-Bit architecture? The simple answer I can think of is extreme math calculations where large integer numbers need to be calculated, rather it be multi-color manipulations for faster image rendering, or multi-sound components for faster sound manipulations. I can also think of scientists needing an extremely high-precision floating point value to calculate things at the atomic level or even the many things going on in space that could be easily represented in a very small fractional value.

While most of us may never need such complexity of numbers, there are those out that there that do. That is why they have created special ALU's (math coprocessors) with 128-Bit, 256-Bit, and 512-Bit architectures. Due to this reason, I plan on adding such data types into CrystalBASIC.

I can here some of you ask, "What about those of us with older processors that do not have these ALU's?" Well, I guess I would need a work-around for those features like C++ does.

https://en.wikipedia.org/wiki/RAM_limit#...8aka_P6.29

Here is a great byte convertor: http://whatsabyte.com/P1/byteconverter.htm

The 1.8 GigaPixel camera: https://www.extremetech.com/extreme/1469...20000-feet

https://www.reddit.com/r/askscience/comm...28bit_cpu/

Please help support The Joyful Programmer and The QB64 Edition by visiting our online store provided by Amazon.com. We hand-picked books related to computer programming from Amazon.com and added them to our store. When you make a purchase from our store, we do receive a small commission from the sale. Visit our store at: http://www.thejoyfulprogrammer.com/qb64/...azon-store
Find all posts by this user
Like Post
The following 1 user Likes Waltersmind's post:
Anthony.R.Brown
05-20-2017, 01:34 PM
Post: #2
 (Print Post)
RE: Do we need a 128-Bit processor?
if i were capable id just support unums and to heck with this floating point bs. but if im going to support types that fewer than 1% of users can use, i would just make it a library, not a core feature unless it were zero cost.

features can be zero cost, but sometimes you want to design an entire thing around them and sometimes you dont. its not always easy to determine, and thats why design isnt always easy.
Find all posts by this user
Like Post
05-20-2017, 01:37 PM
Post: #3
 (Print Post)
RE: Do we need a 128-Bit processor?
Wow! Walter almost a Book! Wink

Very interesting stuff taking a look back in time! I remember getting the Commodore C16 and later the higher-end Plus/4 and of course the ZX Spectrum,and I was in Heaven! 

https://en.wikipedia.org/wiki/Commodore_16

https://en.wikipedia.org/wiki/ZX_Spectrum

But I was always Jealous of the People that had an IBM machine, in fact any IBM machine,the whole thing about them was like the Future for me,with all the advertising campaigns and shots of them in Films Etc. 

https://en.wikipedia.org/wiki/IBM

Moving on we have a CPU Price War! going on between AMD and Intel and it looks like the Ryzen Threadripper series is going to move the Goal Posts even further apart!
(AMD could be poised to capture the performance crown for the first time in nearly 15 years)

https://www.digitaltrends.com/computing/...ripper-cpu

But of course as I write this there will be another New! Kid on the block CPU waiting to take the Crown as the worlds most Powerful CPU. Wink


Anthony.
Find all posts by this user
Like Post
05-20-2017, 01:42 PM (This post was last modified: 05-20-2017 01:43 PM by figosdev.)
Post: #4
 (Print Post)
RE: Do we need a 128-Bit processor?
my first computer had the same chip as the zx, but unfortunately i only knew how to load programs from tapes. i didnt even know the "os" was actually basic.

a year later i got an actual ibm and learned basic, but i missed out on 8-bit joys even though i had an 8-bit z80 computer. i wish someone had told me.
Find all posts by this user
Like Post
05-20-2017, 02:43 PM
Post: #5
 (Print Post)
RE: Do we need a 128-Bit processor?
Anthony,

You know me, I always love to give as much information about a subject that I can. That is how many of us learn. However, the information I provided was not exhaustive and I left a lot of information out. I didn't want to overwhelm everyone. Besides, that took a few hours to write, edit, and check my facts before I posted it.

Please help support The Joyful Programmer and The QB64 Edition by visiting our online store provided by Amazon.com. We hand-picked books related to computer programming from Amazon.com and added them to our store. When you make a purchase from our store, we do receive a small commission from the sale. Visit our store at: http://www.thejoyfulprogrammer.com/qb64/...azon-store
Find all posts by this user
Like Post
05-20-2017, 04:18 PM (This post was last modified: 05-20-2017 04:26 PM by Anthony.R.Brown.)
Post: #6
 (Print Post)
RE: Do we need a 128-Bit processor?
Walter I do know what you are Capable of! Smile and that you was feeling a little tired today...Lucky we don't have a Writing competition Wink But of course One can never have enough Information at hand regarding subjects we are interested in.

Below is the Type of IBM I used to dream about owning in fact Drooling over...

An IBM360-6

https://en.wikipedia.org/wiki/IBM_System/360
Find all posts by this user
Like Post
05-20-2017, 04:33 PM
Post: #7
 (Print Post)
RE: Do we need a 128-Bit processor?
Anthony,

Cool machine. That would of been fun to play on back in the day.

But, too funny you mentioned writing competition because I just posted a short story I wrote back in 2012.

You can see it at: http://www.thejoyfulprogrammer.com/qb64/...hp?tid=772

Please help support The Joyful Programmer and The QB64 Edition by visiting our online store provided by Amazon.com. We hand-picked books related to computer programming from Amazon.com and added them to our store. When you make a purchase from our store, we do receive a small commission from the sale. Visit our store at: http://www.thejoyfulprogrammer.com/qb64/...azon-store
Find all posts by this user
Like Post
05-20-2017, 04:40 PM
Post: #8
 (Print Post)
RE: Do we need a 128-Bit processor?
OK! Walter now I know what to do for the rest of the evening and tomorrow! Big Grin

(Great Story) 


Anthony.
Find all posts by this user
Like Post



Forum Jump:


User(s) browsing this thread: 1 Guest(s)




QB64 Member Project - RGB Color Wheel
QB64 Member Project - Isolation
QB64 Member Project - Color Triangles
QB64 Member Project - OpenGL Triangles
QB64 Member Project - Rubix's Magic
QB64 Member Project - Score 4
QB64 Member Project - Rotating Background
QB64 Member Project - Martin Fractals version two
QB64 Member Project - Color Rotating Text
QB64 Member Project - Othello
QB64 Member Project - Swirl
QB64 Member Project - Spinning Color Wheel
QB64 Member Project - Basic Dithering
QB64 Member Project - Red Scrolling LED Sign
QB64 Member Project - STxAxTIC 3D World
QB64 Member Project - Connect Four
QB64 Member Project - Kings Court
QB64 Member Project - Kings Valley verion one
QB64 Member Project - Pivet version one
QB64 Member Project - Exit
QB64 Member Project - Algeria Weather
QB64 Member Project - Pivot version two
QB64 Member Project - Domain
QB64 Member Project - Dakapo
QB64 Member Project - Sabotage
QB64 Member Project - Line Thickness
QB64 Member Project - Blokus
QB64 Member Project - Input
QB64 Member Project - Dreamy Clock
QB64 Member Project - Full Color LED Sign
QB64 Member Project - Amazon
QB64 Member Project - Kings Vallery version two
QB64 Member Project - Touche
QB64 Member Project - MAPTRIANGLE
QB64 Member Project - Foursight
QB64 Member Project - Martin Fractals version one
QB64 Member Project - Quarto
QB64 Member Project - Point Blank
QB64 Member Project - Spiro Roses
QB64 Member Project - Inside Moves
QB64 Member Project - Splatter
QB64 Member Project - Martin Fractals version three
QB64 Member Project - Kobolts Monopoly
QB64 Member Project - Overboard
QB64 Member Project - ARB Checkers
QB64 Member Project - Qubic
QB64 Member Project - Martin Fractals version four
QB64 Member Project - Bowditch curve
QB64 Member Project - 9 Board