Last visit was: Tue Nov 18, 2025 8:36 am
It is currently Tue Nov 18, 2025 8:36 am



 [ 228 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16
 Qupls (Q+) 
Author Message

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2420
Location: Canada
Worked some on the reservation stations and bypassing networks. The bypassing networks are not shown on the pipeline diagrams as that would clutter up the diagram.

Reservation stations queue up to four arguments for up to three instructions. The argument values are set from the register file or from the bypassing networks. There are at least four bypassing inputs (parameterized). The current design has eight inputs.

Four of the bypassing inputs come from the input to the register file. This trims a clock cycle off of register access time. The other four inputs come from the outputs of frequently used functional units. For instance, the output of the first simple arithmetic unit (SAU) is bypassed back to its input so that back-to-back instructions can be made single cycle. It also feeds the input to other functional units.

The reservation stations are set up to be generic in nature. The same component is used to support different functional units. While the stations support up to four instruction arguments, all types of instructions (functional units) do not need that many arguments. The hardware for unneeded arguments will get trimmed by the synthesizer.

*****

Used up eight opcodes for SIMD support. Also, it was decided to move the precision field out of the branch format and into the opcode. This caused eight more opcodes to be used. But gives two more bits for the branch displacement.

To support lower precision non-SIMD operations the upper bits of the destination register are set to zero.

There are about 24 opcodes left open.

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


Fri Nov 14, 2025 3:10 am WWW

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2420
Location: Canada
Some work on extended precision arithmetic. Added an ADC instruction that adds three source operands and produces low order and high order (carry bit) in two destination registers. A 256-bit add can then be done with just four instructions.
Format: adc Rd1, Rs1, Rs2, Rs3, Rd2
Code:
adc a3, a1, a2, 0, cy0
adc b3, b1, b2, cy0, cy1
adc c3, c1, c2, cy1, cy2
adc d3, d1, d2, cy2, cy3

Shift instructions where also added that save the upper or lower bits of the shift result in a second destination register.

Added some more conditional move instructions. Conditional move if even (CMOVEVN), move if less than zero and move if less than or equal to zero.

Decided to get rid of the ADDnUI instructions. I cannot see them being used that often and the same functionality is available using a regular ADD_ASL instruction by substituting an immediate for Rs2. It is a little bit less code dense. It is probably worth it to simplify the instruction set.

Here is a table of the root opcodes:
Attachment:
Qupls2026_opcodes.jpg


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

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


Sat Nov 15, 2025 4:14 am WWW

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2420
Location: Canada
Changed the PUSH and POP instructions from being implemented with micro-code to being implemented using the micro-op translator. PUSH and POP are now translated into one to five micro-ops depending on how many registers are used. There is less overhead and better performance of the operations when translated to micro-ops.

Changed the base data-path width to 128-bits which I am going to try and see if it will fit.

There are now 128 logical registers available in Qupls. It turns out that the BRAM setup is 512 registers deep no matter whether there are 32,64 or 128 registers. So, may as well make them available.

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


Tue Nov 18, 2025 3:33 am WWW
 [ 228 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16

Who is online

Users browsing this forum: AhrefsBot, chrome-9x-bots, claudebot and 6 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