Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing reg-reg-reg variants of permutation instructions. #63

Closed
ben-marshall opened this issue Nov 6, 2020 · 8 comments
Closed

Removing reg-reg-reg variants of permutation instructions. #63

ben-marshall opened this issue Nov 6, 2020 · 8 comments
Assignees
Labels
specification Improvements or additions to the specification

Comments

@ben-marshall
Copy link
Member

ben-marshall commented Nov 6, 2020

A/O the meeting on Nov 6'th 2020, we have decided to remove the reg-reg-reg variants of:

  • gorc
  • grev
  • shufl
  • unshufl

From the Crypto extension because we do not have a use case for them. They are still expected to exist in Bitmanip.

We are keeping the reg-reg-reg variants of

  • ror
  • rol

Because we anticipate there may be a use case for them in the future, and they are extremely cheap to implement given the presence of the immediate variants.

@ben-marshall ben-marshall added the specification Improvements or additions to the specification label Nov 6, 2020
@ben-marshall ben-marshall self-assigned this Nov 6, 2020
@ben-marshall ben-marshall added this to Instruction Specification in RISC-V Scalar Cryptography Extensions Nov 6, 2020
@JamesKenneyImperas
Copy link

Morning Ben,

A couple of clarifications:

  1. When you say the instructions are removed, I assume you mean only from the K extension, not the B extension. I'm pretty sure this is the case, but just checking.
  2. On the spreadsheet you just updated, I notice that gorciw is also marked as not present, but this wasn't mentioned in the list above. Is it also removed?

Thanks,

James.

@JamesKenneyImperas
Copy link

Ah no, I think I misread the spreadsheet. It's just not in a feature subset.

@JamesKenneyImperas
Copy link

Correction, it does seem to be removed. Aaargh.

@ben-marshall
Copy link
Member Author

Hi James

  1. Yes, removed from the K extension. The B extension remains unchanged. I'll update my issue description above to clarify.
  2. I will double check with @mjosaarinen about gorciw it is currently included in the scalar K spec, I think that the spreadsheet might just have a typo.

Broadly, we are removing the 3-reg address versions of gorc, grev, shufl, unshufl, but are keeping all of the immediate variants gorci, grevi, shufli, and unshufli.

@mjosaarinen
Copy link
Collaborator

Hi,

Talked about this with Ben.. I think we really only need a subset of these immediate variants (rev.b, rev8, zip, unzip) .. apologies for the confusion, I'm to blame for some of the things in that spreadsheet.

Cheers,

  • markku

ben-marshall added a commit that referenced this issue Nov 10, 2020
- As agreed at meeting, remove register register variants of the
  grev, gorc and [un]shfl instructions.

  - We do not have a use case for them.

- Be explicit about exactly which variants of the immediate instructions
  we require, and which canonical instructions they map onto.

- Also do some housekeeping to minimise the number of latex files.

 On branch dev/next-release
 Your branch is up-to-date with 'origin/dev/next-release'.

 Changes to be committed:
	modified:   doc/riscv-crypto-spec-scalar.tex
	modified:   doc/tex/sec-scalar-bitmanip.tex
	deleted:    doc/tex/sec-scalar.tex

 Changes not staged for commit:
	modified:   extern/riscv-compliance (modified content)
	modified:   extern/riscv-gnu-toolchain (modified content)
	modified:   extern/riscv-isa-sim (modified content)
	modified:   extern/riscv-opcodes (modified content)
	modified:   extern/sail-riscv (modified content, untracked content)

 Untracked files:
	doc/tex/sec-scalar-timing.tex
ben-marshall added a commit that referenced this issue Nov 10, 2020
 On branch dev/next-release
 Your branch is ahead of 'origin/dev/next-release' by 1 commit.
   (use "git push" to publish your local commits)

 Changes to be committed:
	modified:   doc/riscv-crypto-spec-scalar.tex
	new file:   doc/tex/sec-scalar-timing.tex

 Changes not staged for commit:
	modified:   extern/riscv-compliance (modified content)
	modified:   extern/riscv-gnu-toolchain (modified content)
	modified:   extern/riscv-isa-sim (modified content)
	modified:   extern/riscv-opcodes (modified content)
	modified:   extern/sail-riscv (modified content, untracked content)
@ben-marshall
Copy link
Member Author

@JamesKenneyImperas - the new v0.7.2-scalar specification release should detail all of this explicitly. I'll leave this issue open for now in case there are other questions?

@JamesKenneyImperas
Copy link

Hi Ben,

I think this is now clear to me - thanks.

James.

@ben-marshall
Copy link
Member Author

Hi James
Glad to hear it, I'll close this for now then.
Cheers,
Ben

RISC-V Scalar Cryptography Extensions automation moved this from Instruction Specification to Finished Tasks Nov 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
specification Improvements or additions to the specification
Projects
Development

No branches or pull requests

3 participants