rv57k virtual address space


swallach
 

as suggested by phil

attached is a proposal for SV57K


this was initially posted to the privileged tech_privileged group





http://bsc.es/disclaimer


Phil McCoy
 

This probably should be discussed on the tech-virt-mem list.

Cheers,
Phil


swallach
 

not really 
if necessary we can define 2 64_bit registers.  

i wanted to simply define what machine state is needed

that is a good catch
thank you


On Jan 29, 2021, at 10:51 AM, Jonathan Behrens <behrensj@...> wrote:


Your SATPU and SATPK registers seem to each contain: 64-bits of PPN, 32-bits of ASID, 4-bits for MODE and 28-bits reserved. But that adds up to 128-bits which is double the size of CSRs on 64-bit RISC-V processors. Are you imagining that RV57K would require a 128-bit processor, or am I misunderstanding something?

Jonathan

On Fri, Jan 29, 2021 at 10:31 AM swallach via lists.riscv.org <steven.wallach=bsc.es@...> wrote:
attached is a proposal for the definition of RV57K.  RV57K is an extension to  RV57.  the main extension is to incorporate two HARDWARE registers.  These registers are used to partition user and kernel address spaces.  Additionally the higher order address bit signifies user/kernel space.  This definition was discussed at length in the sigHPC group. applications that are hosted on these class of systems,  especially going forward,   expect secure environment with peta bytes of data.  of course there are 10,000 (or more) compute nodes. The basis for the proposed RV57K is KASLR effort, Thus there are Linux ports that adhere to this definition.  Most of the feature set proposed,  is already available in ARM based implementations. RV57K DOES NOT necessarily replace RV57.  

as noted,  this is just the beginning.  once approved,  we will move to defining RV64.  Currently,  to the best of my knowledge,  there is no definition of a RV64 like addressing structure, as least for the IA-64. within the sigHPC group we are anticipating the requirements of EXASCALE COMPUTING.  One of the most obvious requirements will be an Exascale of distributed main memory.



WARNING / LEGAL TEXT: This message is intended only for the use of the individual or entity to which it is addressed and may contain information which is privileged, confidential, proprietary, or exempt from disclosure under applicable law. If you are not the intended recipient or the person responsible for delivering the message to the intended recipient, you are strictly prohibited from disclosing, distributing, copying, or in any way using this message. If you have received this communication in error, please notify the sender and destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer


Jonathan Behrens <behrensj@...>
 

Your SATPU and SATPK registers seem to each contain: 64-bits of PPN, 32-bits of ASID, 4-bits for MODE and 28-bits reserved. But that adds up to 128-bits which is double the size of CSRs on 64-bit RISC-V processors. Are you imagining that RV57K would require a 128-bit processor, or am I misunderstanding something?

Jonathan


On Fri, Jan 29, 2021 at 10:31 AM swallach via lists.riscv.org <steven.wallach=bsc.es@...> wrote:
attached is a proposal for the definition of RV57K.  RV57K is an extension to  RV57.  the main extension is to incorporate two HARDWARE registers.  These registers are used to partition user and kernel address spaces.  Additionally the higher order address bit signifies user/kernel space.  This definition was discussed at length in the sigHPC group. applications that are hosted on these class of systems,  especially going forward,   expect secure environment with peta bytes of data.  of course there are 10,000 (or more) compute nodes. The basis for the proposed RV57K is KASLR effort, Thus there are Linux ports that adhere to this definition.  Most of the feature set proposed,  is already available in ARM based implementations. RV57K DOES NOT necessarily replace RV57.  

as noted,  this is just the beginning.  once approved,  we will move to defining RV64.  Currently,  to the best of my knowledge,  there is no definition of a RV64 like addressing structure, as least for the IA-64. within the sigHPC group we are anticipating the requirements of EXASCALE COMPUTING.  One of the most obvious requirements will be an Exascale of distributed main memory.


swallach
 

attached is a proposal for the definition of RV57K.  RV57K is an extension to  RV57.  the main extension is to incorporate two HARDWARE registers.  These registers are used to partition user and kernel address spaces.  Additionally the higher order address bit signifies user/kernel space.  This definition was discussed at length in the sigHPC group. applications that are hosted on these class of systems,  especially going forward,   expect secure environment with peta bytes of data.  of course there are 10,000 (or more) compute nodes. The basis for the proposed RV57K is KASLR effort, Thus there are Linux ports that adhere to this definition.  Most of the feature set proposed,  is already available in ARM based implementations. RV57K DOES NOT necessarily replace RV57.  

as noted,  this is just the beginning.  once approved,  we will move to defining RV64.  Currently,  to the best of my knowledge,  there is no definition of a RV64 like addressing structure, as least for the IA-64. within the sigHPC group we are anticipating the requirements of EXASCALE COMPUTING.  One of the most obvious requirements will be an Exascale of distributed main memory.