128 bit buses for a mobo
Posted by Specialist_Fun_8361@reddit | hardware | View on Reddit | 18 comments
is it possible to build or buy a 128 bit mobo that uses 128 bit buses for control, data and address bus. this is just thereticaly of Couse unless i can buy or get someone to make it but what could i do with one as there no cpus or ram for them unless you add more conections on a allready exsisting mobo and use a cpu for that board and update the software to utilise it.
sorry english is not my first language.
Elios000@reddit
there is no need for 128bit addressing to start with. 64bits already gives an ungodly address range. as to the data bus there have been and are 128bit buses DDR5 is 4x 32bit with 2x32bit channels per dimm now. and GPUs use >128bit data buses all the time. so im not sure what you want here.
nic0nicon1@reddit
Yes, it is. Just design an upgraded version of the 1970s S100 computer bus, but now with 128 pins for all address and data buses.
Memory is easy, just wire multiple 16-bit/32-bit SRAMs or DRAMs in parallel.
For CPU, perhaps you can use bit-slicing processors? Before monolithic CPUs made everything obsolete, for a while, bit-slicing processors were popular for custom CPUs. The simplest ones were 1-bit ALUs, later that were 16-bit chips - computer engineers would combine these parts into a wider custom ALU or CPU such as AMD's Am29100 Family, controlled by custom microcode.
But overall this is going to be a challenging and impractical project. You have to learn both the lost art of discrete logic chips and boards (it's still productive and useful skill required to master embedded system today), but with 128 wires for every bus (making it unnecessarily difficult), you also have to hunt for vintage chips and relearn the art about bit-slicing and micro-sequencers (which are completely obsolete today). Then what do you get? A 128-bit computer that runs at 4 MHz?
Or you can use FPGAs. But if you're already using FPGAs, there's no point to build a physical 128-bit CPU boards, if everything runs inside the FPGA.
In conclusion, building a 128-bit board should not be your first project. Follow the standard course to build a 8-bit bus system like Intel 8080, 8086, MOS 6502, or Zilog Z80, then build a 16-bit bus system using the Motorola 68000, then you can consider accepting the challenge of building a 128-bit custom CPU.
Wait_for_BM@reddit
Just have to watch out for SSO. Having a large bank of I/O trying to switch at the same time is going to be a mess on signal and power integrity.
https://resources.system-analysis.cadence.com/blog/msa2020-understanding-simultaneous-switching-output-sso-noise
nic0nicon1@reddit
These days, power integrity is no longer an immense challenge when 4-layer PCB prototypes cost a few bucks, with a proper power and ground plane to form a real Power Distribution Network. A copious use of MLCC would get you covered. If that's not enough, routing signals as microstrips and adding source termination resistors near bus drivers would certainly do it.
asb308@reddit
Why not just have multiple memory controllers each with their own normal width RAM interface?
What is the goal you're seeking with wanting a 128 bit wide data interface?
Modern consumer level chips already have multiple memory controllers, often 2. Modern server CPUs can have 8 or sometimes even 12.
Specialist_Fun_8361@reddit (OP)
I wanted to do it just for fun and manly for the 128bit control bus. Just to show my computer science teacher I can
asb308@reddit
I don't know that you're going to be able to easily source memory which uses a 128 bit wide data bus. Most off the shelf modern DDR is going to have a 64 bit wide data bus. The address bus is separate and then there's a few other control lines, too.
You could look at some off the shelf HBM implementations, those often have very wide data buses between the CPU and memory, but I'm not sure if that really fits what you're looking for.
Some docs: https://docs.amd.com/r/en-US/pg276-axi-hbm/HBM-Topology
Wait_for_BM@reddit
Something like this: https://www.xilinx.com/products/boards-and-kits/vcu128.html
Start saving now. :P
One-Butterscotch4332@reddit
A 128 bit commercial motherboard would be pointless. Your memory and registers need to be 128 bit for anything to make sense - if you're studying computer engineering, this might be something that could be implemented in simulation or maybe there exist some fancy fpgas
Wait_for_BM@reddit
Technically if you have dual channel memory, you have 128-bit memory bus as each channel is 64-bit wide.
OP:
First off, you have to establish the 128-bit bus and have other companies follow such a standard to build peripherals, CPU, chipset etc. then the OS people to support it.
If you are not in the 1% club, then it is not possible. Even then, it'll be more effort than and take longer than you would want it.
One-Butterscotch4332@reddit
I mean, you could definitely get funky with it, and it would be a cool project. I just know a little bit from building a 16-bit processor in an FPGA for a CE class. However, I think the overall takeaway for OP is that the 64-bit architecture is fundamental to most modern computers (embedded might go lower), and you'd need to redesign every part of the computer if you wanted 128-bit. If OP wants to know why, it's really just because there is no need, 64-bit can address a pretty insane amount of memory that we probably won't be able to reasonably fit into a computer in the near future
Specialist_Fun_8361@reddit (OP)
Do you have any tips or where to get started.
One-Butterscotch4332@reddit
What's your background? From what you're writing here, it doesn't sound like you necessarily understand how the datapath in a processor works. A 128-bit bus would be something that must be set in hardware.
Specialist_Fun_8361@reddit (OP)
Right now I'm in my first year of all level computer science and did GCSE computer science as well and an interest in computing viruses like Whanacry. But just wanted to see if I can make and use it mainly for the fun of it. But I'm a quick learner so please go as in-depth as possible if you are willing.
One-Butterscotch4332@reddit
I'm not sure what GCSE covers (I'm in the US, looks to be a UK thing), but a processor's datapath is more of a computer engineering topic in the realm of hardware design. This isn't really a simple or easy project, like playing around with a software framework or implementing an algorithm. I just graduated CS, with a minor in CE, and getting to the point of implementing a basic processor in an FPGA required knowledge from 4 or 5 classes over the span of my 4 years in college. It would be useful to learn about the basics, like boolean logic, combinatorial and sequential circuits, adders, multiplexers, flip-flops, registers, etc if that's not something you know already. If you wanted to implement a 128 but datapath, you'd probably want to understand how the datapath in a processor works in general. You'd need to learn how ALUs work, and how to hook them up to memory (maybe some registers and instruction memory). You'd need to learn about assembly, a simplified subset of MIPS or RISC-V is a good place to start. You'd then need to learn how the ALU and memory is used to implement those assembly instructions, and do useful computation. There are lots of details along the way here, ie. converting human-readable assembly to machine code. It would probably be useful to have some way to define your own hardware, especially if you want to implement something like this yourself. I've only really ever used FPGAs, but they can be a bit pricey, and I'm not sure if there are ones that would let you create 128-bit hardware. It might be cheaper to use some sort of simulator, but I'm not too familiar with any. You'd likely need to learn some HDL, like Verilog. That would get you to toy example of a 128-bit processor. If you wanted to build something closer to a real computer, you'd need a big boat load of money and years to design and fabricate your own processor.
Specialist_Fun_8361@reddit (OP)
Thanks I will, btw GCSE is UK and I'm basing this on US movies but GCSE I think is middle school and A level is high school
One-Butterscotch4332@reddit
Ah ok. The project you're describing would probably be closest to graduate level, or advanced undergrad for a computer engineering student
Specialist_Fun_8361@reddit (OP)
I heard that you could add more connections from soldering and I figured you would just need to change the software end aka how the CPU works to get it to use it. Most of my knowledge here is speculation