OSDev.org

The Place to Start for Operating System Developers
It is currently Tue Apr 24, 2018 6:47 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Freenode #cpudev
PostPosted: Wed Aug 23, 2017 3:07 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
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

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Aug 25, 2017 12:57 am 
Offline
Member
Member

Joined: Fri Aug 07, 2015 6:13 am
Posts: 903
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


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Aug 25, 2017 1:10 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
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

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Aug 25, 2017 2:05 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
Hi,


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

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


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Aug 25, 2017 2:37 pm 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
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


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Thu Aug 31, 2017 3:07 pm 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
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


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Thu Aug 31, 2017 11:39 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
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

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Sep 01, 2017 3:17 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 22, 2006 7:01 am
Posts: 2600
Location: Devon, UK
Done - I decided it was an announcement :)

Cheers,
Adam


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Sep 01, 2017 4:30 am 
Offline
Member
Member

Joined: Tue Mar 04, 2014 5:27 am
Posts: 846
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/


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Sep 01, 2017 6:08 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
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

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Fri Sep 01, 2017 12:21 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 433
Location: Athens, Greece
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

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Freenode #cpudev
PostPosted: Wed Sep 27, 2017 7:54 am 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
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


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: clns and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group