Bug 1052 - OPF RFC ls012 writeup: list of RFCs to be proposed to OPF ISA WG
Summary: OPF RFC ls012 writeup: list of RFCs to be proposed to OPF ISA WG
Status: RESOLVED FIXED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Specification (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL: https://libre-soc.org/openpower/sv/rf...
Depends on: 1051
Blocks: 1054
  Show dependency treegraph
 
Reported: 2023-04-07 10:53 BST by Luke Kenneth Casson Leighton
Modified: 2024-01-21 23:22 GMT (History)
2 users (show)

See Also:
NLnet milestone: NLnet.2022-08-051.OPF
total budget (EUR) for completion of task and all subtasks: 2500
budget (EUR) for this task, excluding subtasks' budget: 2500
parent task for budget allocation: 1009
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:
andrey = 600 [red] amount = 500 submitted = 2023-06-24 paid = 2023-06-28 [lkcl] amount = 1400 submitted = 2023-06-22 paid = 2023-06-25


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kenneth Casson Leighton 2023-04-07 10:53:11 BST
this RFC effectively gives "advance notice" to the OPF ISA WG
of upcoming additional RFCs, putting priorities on them and
weeding out those that should be in EXT022.

* TODO: new po9 encoding
  https://libre-soc.org/openpower/sv/po9_encoding/discussion/
Comment 1 Luke Kenneth Casson Leighton 2023-04-08 18:11:32 BST
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=29c507b784b60a5e1c76fdc79c657121574bf551

sorting opcodes by XO-cost, priority, page, which is extremely
valuable in deciding Opcode Allocation.
Comment 2 Andrey Miroshnikov 2023-04-10 08:48:42 BST
Spotted a typo.
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=5f97d3ff1df16450a6cc9ef8cb5b38db6f4c471d

In the Bitmanip LUT2/3 section (page 3), the wording of
"SFFS needs to be stand-alone on its own merits and not "punished" should an implementor choose not to implement any aspect of PackedSIMD VSX."

"punished" may come out a little strong to certain parties. Now I may be finicky, but you know how vigilant in regards to wording we need to be.


In the Tables section (page 4), "mutually exclusively" doesn't sound right to me.


Initially I couldn't find the explanation for the "cost" column, but then realised the description calls it "XO Cost". I suggest the actual table column is also called "XO Cost" to reduce ambiguity.

Another issue I found is that entries under PO1 column are "??" for LD/ST Post Increment, though that might be a problem with the pdf generation.
Comment 3 Luke Kenneth Casson Leighton 2023-04-10 09:56:51 BST
(In reply to Andrey Miroshnikov from comment #2)
> Spotted a typo.
> https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;
> h=5f97d3ff1df16450a6cc9ef8cb5b38db6f4c471d

needs a line number... ah! you did it already, awesome.

> In the Bitmanip LUT2/3 section (page 3), the wording of
> "SFFS needs to be stand-alone on its own merits and not "punished" should an
> implementor choose not to implement any aspect of PackedSIMD VSX."
> 
> "punished" may come out a little strong to certain parties. Now I may be
> finicky, but https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=29c507b784b60a5e1c76fdc79c657121574bf551
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=29c507b784b60a5e1c76fdc79c657121574bf551you know how vigilant in regards to wording we need to be.

mm.  any suggestions?

how about

`xxeval`.  The same reasoning applies as to fclass: SFFS needs to be
stand-alone on its own merits and should an implementor
choose not to implement any aspect of PackedSIMD VSX the performance
of their product should not be penalised for making that decision.

> 
> In the Tables section (page 4), "mutually exclusively" doesn't sound right
> to me.

it's a mathematical term, english language for the XOR operation.
https://www.merriam-webster.com/dictionary/mutually%20exclusive
 
> 
> Initially I couldn't find the explanation for the "cost" column, but then
> realised the description calls it "XO Cost". I suggest the actual table
> column is also called "XO Cost" to reduce ambiguity.

can you add a dictionary lookup-column-heading-replacement function?
i want to keep the csv file headings short to fit into below 80 chars
use "lookupdict.get(heading, heading)" as it returns the word itself
if there is no entry. neat trick.

(edit: ls012_optables.py)

> 
> Another issue I found is that entries under PO1 column are "??" for LD/ST
> Post Increment, though that might be a problem with the pdf generation.

no look at the row, they are "TODO".
Comment 4 Andrey Miroshnikov 2023-04-10 13:49:05 BST
(In reply to Luke Kenneth Casson Leighton from comment #3)
> mm.  any suggestions?
> 
> how about
> 
> `xxeval`.  The same reasoning applies as to fclass: SFFS needs to be
> stand-alone on its own merits and should an implementor
> choose not to implement any aspect of PackedSIMD VSX the performance
> of their product should not be penalised for making that decision.

Sounds really good!

> 
> > 
> > In the Tables section (page 4), "mutually exclusively" doesn't sound right
> > to me.
> 
> it's a mathematical term, english language for the XOR operation.
> https://www.merriam-webster.com/dictionary/mutually%20exclusive

I've heard of "mutually exclusive", but it's the second "-ly" ending that threw me off. Initially sounded wrong, but now re-reading I realise that "exclusively" would modify "incompatible".

>  
> > 
> > Initially I couldn't find the explanation for the "cost" column, but then
> > realised the description calls it "XO Cost". I suggest the actual table
> > column is also called "XO Cost" to reduce ambiguity.
> 
> can you add a dictionary lookup-column-heading-replacement function?
> i want to keep the csv file headings short to fit into below 80 chars
> use "lookupdict.get(heading, heading)" as it returns the word itself
> if there is no entry. neat trick.
> 
> (edit: ls012_optables.py)

Yes, added a function to do that. Just need to call it at the right place (needs to happen after sorting, otherwise will get errors about 'cost' not being found).

https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=8b670c6696e9eb0b2fae2a2e3ae643d6dda48956

> 
> > 
> > Another issue I found is that entries under PO1 column are "??" for LD/ST
> > Post Increment, though that might be a problem with the pdf generation.
> 
> no look at the row, they are "TODO".

The csv file also uses "??" for TODO entries, so looks like my local pdf generation is working.
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/rfc/ls012/optable.csv;h=833dd9e9869d735a8b47c8e5fc7198a45777af63;hb=HEAD
Comment 5 Luke Kenneth Casson Leighton 2023-04-10 14:03:45 BST
(In reply to Luke Kenneth Casson Leighton from comment #3)
> I've heard of "mutually exclusive", but it's the second "-ly" ending that
> threw me off. Initially sounded wrong, but now re-reading I realise that
> "exclusively" would modify "incompatible".

hard to say (if spoken in your head) :)

> Yes, added a function to do that. Just need to call it at the right place
> (needs to happen after sorting, otherwise will get errors about 'cost' not
> being found).

+    new_header = deepcopy(header)
+    for index, shortname in enumerate(replacement_col.keys()):
+        # update with replacement if any otherwise leave alone
+        new_header[index] = replacement_col.get(shortname, shortname)

> The csv file also uses "??" for TODO entries,

yes it does. i need to go through the list of fp ld/st-with-update
instructions. if you want to add the entries as a first cut into
optable.csv that would be really helpful, they're anything:

* starting with "lf" or "stf"
* having the letter "u"
* being in major.csv or minor_31.csv

https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=openpower/isatables;hb=HEAD

openpower/isatables/major.csv:51,LDST,OP_LOAD,RA,CONST_SI,NONE,FRT,NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,1,lfdu,D,
openpower/isatables/major.csv:49,LDST,OP_LOAD,RA,CONST_SI,NONE,FRT,NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,1,lfsu,D,
openpower/isatables/minor_31.csv:0b1001110111,LDST,OP_LOAD,RA,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,0,lfdux,X,,,
openpower/isatables/minor_31.csv:0b1000110111,LDST,OP_LOAD,RA,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,0,lfsux,X,,,

openpower/isatables/major.csv:55,LDST,OP_STORE,RA,CONST_SI,FRS,NONE,NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,1,stfdu,D,
openpower/isatables/major.csv:53,LDST,OP_STORE,RA,CONST_SI,FRS,NONE,NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,1,stfsu,D,
openpower/isatables/minor_31.csv:0b1011110111,LDST,OP_STORE,RA,RB,FRS,NONE,NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,0,stfdux,X,,,
openpower/isatables/minor_31.csv:0b1010110111,LDST,OP_STORE,RA,RB,FRS,NONE,NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,0,stfsux,X,,,
Comment 6 Luke Kenneth Casson Leighton 2023-04-11 17:34:28 BST
(In reply to Luke Kenneth Casson Leighton from comment #5)

> 
> openpower/isatables/major.csv:51,LDST,OP_LOAD,RA,CONST_SI,NONE,FRT,NONE,NONE,
> 0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,1,lfdu,D,
> openpower/isatables/major.csv:49,LDST,OP_LOAD,RA,CONST_SI,NONE,FRT,NONE,NONE,
> 0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,1,lfsu,D,
> openpower/isatables/minor_31.csv:0b1001110111,LDST,OP_LOAD,RA,RB,NONE,FRT,
> NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,0,lfdux,X,,,
> openpower/isatables/minor_31.csv:0b1000110111,LDST,OP_LOAD,RA,RB,NONE,FRT,
> NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,0,lfsux,X,,,
> 
> openpower/isatables/major.csv:55,LDST,OP_STORE,RA,CONST_SI,FRS,NONE,NONE,
> NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,1,stfdu,D,
> openpower/isatables/major.csv:53,LDST,OP_STORE,RA,CONST_SI,FRS,NONE,NONE,
> NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,1,stfsu,D,
> openpower/isatables/minor_31.csv:0b1011110111,LDST,OP_STORE,RA,RB,FRS,NONE,
> NONE,NONE,0,0,ZERO,0,is8B,0,0,1,0,0,0,NONE,0,0,stfdux,X,,,
> openpower/isatables/minor_31.csv:0b1010110111,LDST,OP_STORE,RA,RB,FRS,NONE,
> NONE,NONE,0,0,ZERO,0,is4B,0,0,1,0,1,0,NONE,0,0,stfsux,X,,,

done, i want to get this RFC in.
Comment 7 Luke Kenneth Casson Leighton 2023-04-11 18:20:44 BST
submitted v1 2023apr11.  closed.  questions and comments begins,
new bugreport: bug #1054