I am reading The RISC-V Instruction Set Manual Volume I: Unprivileged ISA and i encountered a very strange statement to me. In subsection 1.4 Memory at the end of fifth paragraph is stated "Vacant locations in the address space are never accessible." I am a bit confused and searched about that but i couldn't come up with any conclusion. It would be appreciated if you share your idea with me.
Why Vacant locations in the address space are never accessible in RISC-V ISA?
263 Views Asked by ahmad sedigh At
1
There are 1 best solutions below
Related Questions in RISCV
- How to change the gem5 RVV vector length
- Restoring division algorithm in Risc V
- RiscV checking if overflow has occurred during multiplication
- How can i get the vector register information in RVV0.7.1 when debugging with QEMU6.2?
- compile masstree from source in riscv64
- How to implement Combination and Permutation in RISC-V
- call a function from header file in C
- What's the difference between the '-' and '.' in the decode of RISCV instructions in QEMU?
- What does madvise() do in virtual memory?
- How can I insert machine code into assembly language?
- Is it possible to manually change page table's PTE value? (xv6, risc-v,c)
- Differentiation of "Vector Load/Store Whole Register Instructions"
- Initializing array in RISC-V. How much space does it need?
- How do i create or edit basic, bmp image using risc-v assembler?
- How to run testbench.v with verilator
Related Questions in INSTRUCTION-SET
- Set value of register to 64-bit integer in RISC-V
- ARMv7A instruction
- Find common minimum CPU features to expect when targeting a certain macOS deployment target
- Why can't we do arithmetic on an operand in x86 asm?
- Arm cortex m0 LDR instruction
- Why is the "mov" with complex addressing faster than the corresponding "lea"?
- Jump (jmp) in microcode with fetch, decode, execute and writeback
- How to decide minimum pmp region for an architecture?
- Does RISCV SBI refers a hardware implementation or a software standard?
- In 6502 assembler, trying to output integers after log statement
- How to compile for riscv zicond extension in gcc?
- Why there is different register address for sstatus an mstatus although they are different view of same register?
- How data dependency handled at cpu instructions pipeline parallelism
- How does RESW in SIC machine works
- VM detection mechanisms for ARM
Related Questions in RISCV32
- Initializing array in RISC-V. How much space does it need?
- How can compile a .c file with riscv-none-embed-gcc compiler and generate intruction code at every consecutive address?
- OpenOCD failed to read memory
- How can I get clang compiler / lld linker for riscv32 to not use an lui for every memory address in the same range?
- how can my program tell if code is in a interrupt handler?(riscv32)
- How I can retrieve the sp on an risc-v32 without having UB?
- CMake find_path return NOT FOUND
- RISC-V paging: what decides the way the Dirty and Accessed bits are managed?
- Concatenate values to float64 in RISC V
- Pipelining stalls and data-forwarding
- Creating Cache Conflict in assembly
- "Properly" dereferencing pointer to address zero in RISC-V
- Calling Macro in extended assembly
- C code with vector instrinsics for Riscv Vector
- What determines how a 64-bit function argument is split between registers on RISC-V 32?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
This is by definition. From the second paragraph in section 1.4:
So, this is saying that there may be address ranges that have neither memory nor I/O devices: and these are called vacant locations.
And further that such vacant locations are inaccessible meaning that attempting to access them will fault (cause an exception).
The hart is (programmable by the operating system to be) aware of three kinds of address ranges: main memory, I/O devices, and vacant (i.e. neither). Attempts to execute a load or a store at a vacant location will fault because there's nothing there to access, and the hart knows this (i.e. it has been told what ranges are valid/invalid).