Freenode #cpudev

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Freenode #cpudev

Post by glauxosdever »

Hi,


Along with other CPU design hobbyists and enthusiasts, we have decided to create the #cpudev channel on freenode.net. If we manage to populate it, a wiki about CPU development is coming!


Regards,
glauxosdever
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: Freenode #cpudev

Post by Octacone »

Are you guys doing it practically or theoretically?
Building an 8 bit processor sounds fairly interesting.
Or you want to build a next gen 128 bit 600 cores 500 threads processor that uses 20 ^ -250 watts?
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Re: Freenode #cpudev

Post by glauxosdever »

Hi,


To be fair, I'd like to build something real (but I'm aware of the costs involved, unlike some people that for a couple of months recently have been talking about subleq and its superiority). Then again, most people are doing it for fun and I suppose no-one has done anything more than an emulator and/or an assembler.

Note that we are very few still (about 10 at the peak).


Regards,
glauxosdever
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Re: Freenode #cpudev

Post by glauxosdever »

Hi,


It was decided to put a (temporary?) wiki anyway.

https://cpudev.miraheze.org/wiki/Main_Page


Regards,
glauxosdever
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Freenode #cpudev

Post by onlyonemac »

I once designed a CPU. There were only a few instructions and they were all decoded and executed in hardware, usually in a single clock cycle. Every instruction was more or less a move instruction with two parameters (a source register and a destination register) plus additional flags. With no flags set, the value would be copied directly from the source register to the destination register. With the indirection flag set for the source or destination, the value copied will instead come from or go to the memory location at the address given by the specified register rather than the register itself. There was also a flag that would swap the high and low bytes (it was a fully 16-bit CPU, including memory access), this was to allow one to write the high byte of a 16-bit value from memory to some registers that were only 8-bit, and other flags that would only execute the operation if the contents of a specific "conditional execution" register met particular conditions, required for conditional jumps (or a "shortcut" conditional execution where a particular value was only written to a register, to memory, or to memory-mapped IO if a particular condition was true, without actually changing the program counter).
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Freenode #cpudev

Post by onlyonemac »

Why is this in auto-delete? I'm pretty sure it wasn't in here originally.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Re: Freenode #cpudev

Post by glauxosdever »

Hi,


I originally put it here. I don't exactly remember my reasoning for this though. Mods: Feel free to move it to General Ramblings or General Programming if you find this thread useful.

As for your CPU, I find it quite interesting. In what language/program did you design it? Do you have some test programs for it?

Too bad however you limited it to 16-bit.


Regards,
glauxosdever
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: Freenode #cpudev

Post by AJ »

Done - I decided it was an announcement :)

Cheers,
Adam
alexfru
Member
Member
Posts: 1111
Joined: Tue Mar 04, 2014 5:27 am

Re: Freenode #cpudev

Post by alexfru »

glauxosdever wrote:Then again, most people are doing it for fun and I suppose no-one has done anything more than an emulator and/or an assembler.
You couldn't be more wrong!
http://www.homebrewcpu.com/
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Re: Freenode #cpudev

Post by glauxosdever »

Hi,

alexfru wrote:
glauxosdever wrote:Then again, most people are doing it for fun and I suppose no-one has done anything more than an emulator and/or an assembler.
You couldn't be more wrong!
http://www.homebrewcpu.com/
I was talking about us, the ones in the channel. I know that many others have done physical implementations and they are of course welcome to the channel.


Regards,
glauxosdever
glauxosdever
Member
Member
Posts: 501
Joined: Wed Jun 17, 2015 9:40 am
Libera.chat IRC: glauxosdever
Location: Athens, Greece

Re: Freenode #cpudev

Post by glauxosdever »

Hi,


We have setup a proper CPUDev Wiki now. Let's now hope it won't have the same fate as compilerdev.org :P


Regards,
glauxosdever
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Freenode #cpudev

Post by onlyonemac »

glauxosdever wrote:As for your CPU, I find it quite interesting. In what language/program did you design it? Do you have some test programs for it?

Too bad however you limited it to 16-bit.
I missed this because the thread was moved, sorry.

I never actually produced a completed design for this CPU because I wanted to be able to interface with standard peripherals (VGA, PS/2, floppy disk or even IDE hard disk) and the design of those held me back. I had already produced and ran in a simulator a "proof-of-concept" 8-bit design of a completely different and rather inelegant architecture just to prove that it was possible for me to design and implement a CPU. That was actually quite an amazing experience, seeing how hardware and software fitted together at the very layer where they meet, and was something that I didn't really understand before (I understood the concept of a CPU but the whole thing seemed a bit like magic to me, to have a device that could take software, something that's non-physical, and turn it into physical outcomes). CPUs are actually pretty fascinating devices.

My design isn't limited to 16-bit. I was originally going to build an 8-bit CPU but decided to extend it to 16-bit because 256 bytes of memory seemed far too restrictive and I didn't want to have to deal with paging or a 16-bit address line on an 8-bit CPU (I know the 6502 managed this somehow but it was too complicated for me at the time and I still think it's rather messy). I extended it to 16-bit because it seemed like a good compromise between complexity and functionality, but in the end it proved too expensive to build. The actual design however is very modular and can easily be extended to any number of bits (and extra bits means more bits are available for encoding the source and destination registers for each instruction which means more registers are available and more complex features could be mapped directly to "virtual" registers as with the ALU in the original design).
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
immibis
Posts: 19
Joined: Fri Dec 18, 2009 12:38 am

Re: Freenode #cpudev

Post by immibis »

After this wiki disappeared some time ago, I got the domain (https://cpudev.org) and put another wiki up, themed after the osdev wiki, and the #cpudev channel on irc.libera.net. It's not much more than a placeholder.
User avatar
BigBuda
Member
Member
Posts: 104
Joined: Fri Sep 03, 2021 5:20 pm

Re: Freenode #cpudev

Post by BigBuda »

immibis wrote:After this wiki disappeared some time ago, I got the domain (https://cpudev.org) and put another wiki up, themed after the osdev wiki, and the #cpudev channel on irc.libera.net. It's not much more than a placeholder.
Props to you, really.

As a suggestion, would you consider looking into Bookstack instead of Mediawiki?
Writing a bootloader in under 15 minutes: https://www.youtube.com/watch?v=0E0FKjvTA0M
Alexey1994
Member
Member
Posts: 61
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Freenode #cpudev

Post by Alexey1994 »

glauxosdever wrote:Hi,


Along with other CPU design hobbyists and enthusiasts, we have decided to create the #cpudev channel on freenode.net. If we manage to populate it, a wiki about CPU development is coming!


Regards,
glauxosdever
Take a look at my processor circuit https://github.com/Alexey1994/simple-processor-circuit

It is much easier to program and implement any other scheme. Does not include obvious implementations of adder, multiplier, binary operations, and other ALU components. You implement only the operations you need (binary only, arithmetic only, binary and arithmetic, etc.)

If you need a translation from Russian to English, write to me, the translation will be done in a week.
Post Reply