Last visit was: Sun May 03, 2026 6:55 pm
It is currently Sun May 03, 2026 6:55 pm



 [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5
 nPower 
Author Message

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2505
Location: Canada
Quote:
Video memory could be a hidden factor.
40 bits virtual memory is more memory than all the C-64's ever sold.
Ben.

That is an interesting statistic. What else is amazing is how much could be done with a 1MHz processor and 64kB of RAM.

I have now set the swap space set to ‘Windows manages’. I thought I had it set that way, but when I checked it was set to 6GB.

For some reason I am reminded of the time I recommended a 4MB RAM board be purchased for a 286 machine. All the apps the user needed to have running just would not work with the machine’s original RAM. The additional RAM was on a PCAT card not the motherboard.

_________________
Robert Finch http://www.finitron.ca


Sun Oct 17, 2021 3:31 pm WWW

Joined: Wed Nov 20, 2019 12:56 pm
Posts: 92
robfinch wrote:
That is an interesting statistic. What else is amazing is how much could be done with a 1MHz processor and 64kB of RAM.


What amazes me is how *little* we can accomplish, in comparison, when armed with a 4GHz CPU and 64 Gigabytes of RAM...


Tue Oct 19, 2021 7:28 pm

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2505
Location: Canada
It makes one wonder where we are going with all this computing horsepower.
Artificial realities just around the corner.

_________________
Robert Finch http://www.finitron.ca


Wed Oct 20, 2021 6:15 am WWW

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2505
Location: Canada
After letting this project sit for a few months, I went back and reviewed it and found a bug in the processor. Absolute address branches were not sign extending the address as they should be. I was amazed this was not hit as an issue when running software, but all the code must be using relative addressing which was correct.

_________________
Robert Finch http://www.finitron.ca


Mon Aug 01, 2022 4:33 am WWW

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2505
Location: Canada
I had to search for this project, started a related project.

Spent a chunk of time on a new project rfPower, innovating the nPower project to have a 96-bit data-path and 48-bit instructions. 256 registers. nPower was strictly a 32-bit machine. Some things are altered from nPower. The process will be to get some sort of basic instruction set working, then add to it later. I want to experiment with software register renaming, given that hardware renamers are quite huge.

There are so many registers to support vector operations and to hopefully allow software renaming of registers. In a modern OoO design the number of registers is often into the hundreds; they’re just not all visible to the programmer. Doing renaming with software means the registers needs to be exposed.

The condition register is made of six flags instead of four. The flags work differently than on the nPower. There is cf (carry), vf (overflow), nf (negative), zf (zero) flags but also ‘sf’ for sign and ‘so’ for summary overflow. The sign flag ‘sf’ works in conjunction with the zero flag to allow cascaded compares to be formed. This was mainly to get immediate compares that could compare whole double-words using multiple compare instructions. A cascaded compare looks like:
Code:
Example: compare Rs1 to $0x234567890ABCDExxxxxxxxxx
CMPI cr0, Rs1, $0x2345<<80
CCMPI cr0, Rs1, $67890<<60
CCMPI cr0, Rs1, $ABCDE<<40

After the first compare the remaining compares are NOPs unless the first compare result was equal. The compares keep going as long as the result was equal. The process should work with compares larger than a double-word size as well.
Compares now do both signed and unsigned comparisons at the same time, so there is no need to have two sets of compare instructions. This freed up a couple of opcodes.

Shifted immediates are handled differently. Rather than separate instructions for a shifted immediate, an immediate shift count is included in the immediate instruction. Immediates can be shifted in increments of 20 bits up to 140 bits.

The CRxxx instructions are made more powerful. They can combine up to three Cr registers with logic operations. For example:
Code:
; Set cr0.zf if (both cr1 and cr2 results are equal) or (cr3 result is signed less than)
CMP cr1, r1, r2
CMP cr2, r3, r4
CMP cr3, r5, $0x1234
CRCALC cr0, (cr1.eq & cr2.eq) | cr3.lt
B cr0.eq, label


Seven more branch registers were added in addition to the link register. It is no longer possible to branch to the count register; a branch register may be branched to instead.
Instructions formats are looking like (not all shown):
Attachment:
Insns.png


You do not have the required permissions to view the files attached to this post.

_________________
Robert Finch http://www.finitron.ca


Mon Mar 23, 2026 3:33 am WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 925
How do you do indexing and induction variables that go with them ? (int) a[j] or (float) a[x,y]
How do compare for a NULL pointer or a invalid pointer ?
A zero pointer?


Wed Mar 25, 2026 5:16 pm

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2505
Location: Canada
Quote:
How do you do indexing and induction variables that go with them ? (int) a[j] or (float) a[x,y]
How do compare for a NULL pointer or a invalid pointer ?
A zero pointer?

Comparing for a NULL pointer can be done with the CMPDI (compare double-word immediate) with the pointer in Rs1 and zero for the immediate.

Multi-dimension indexing would need to be calculated with a multiply instruction. Referencing the variables done with load and store instructions (were not shown).
There is both register indirect and indexed addressing like the PowerPC. But the index address mode may also have the index register scaled.

_________________
Robert Finch http://www.finitron.ca


Thu Mar 26, 2026 4:24 am WWW
 [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5

Who is online

Users browsing this forum: alibaba-cloud, chrome-134-bots, chrome-136-bots, claudebot, SemrushBot and 0 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

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software