test jump tag

pull/1/head
Zhiyuan Shao 4 years ago
parent 7769df49d0
commit 9b70a08957

@ -565,7 +565,7 @@ csrw medeleg, 1<<0 | 1<< 3 | 1<<8 | 1<<12 | 1<<13 | 1<<15
这段代码的作用是将M模式中interrupt中的1、5和9号分别对应Supervisor software interruptSupervisor timer interrupt和Supervisor external interrupt代理出去到S模式处理再将M模式中的exception或trap中的0、3、8、12、13和15号分别对应Instruction address misaligned调试中断Breakpoint3号用户态系统调用Environment call from U-mode8号缺页或访存异常12、13和15号代理出去到S模式处理。实际上将这些重要的中断代理出去后系统中产生的绝大部分中断事件将都在S模式处理。所以在其后的PKE实验中读者主要跟U模式以及S模式的代码打交道除启动过程和一些简单的设置如访存、中断代理等实验也基本不涉及M模式的代码。
<h3 id="1"> 1.5 页式虚存管理 </h3>
<h3 id="1.5"> 1.5 页式虚存管理 </h3>
[//]:# (### 1.5 页式虚存管理)
我们知道程序中的代码对数据进行访问如使用load和store指令采用的是数据的逻辑地址即程序地址。然而将程序装入内存时装载器无法保证数据的逻辑地址和物理地址内存的编址之间有完全相等的关系。实际上由于操作系统往往是计算机装入物理内存的第一个程序如果仔细规划逻辑地址空间还能勉强建立操作系统程序内部逻辑地址到其所装入的物理内存的物理地址间的相等关系但是这一点对于后续装入的应用程序几乎是无法也不可能保证的。

@ -110,7 +110,7 @@ Score: 20/20
计算机的存储结构可以抽象的看做由N个连续的字节组成的数组。想一想在数组中我们如何找到一个元素对了是下标那么我们如何在内存中如何找打一个元素呢自然也是下标。这个下标的起始位置和位数由机器本身决定我们称之为“物理地址”。
至于物理内存的大小由于我们的RISC-V目标机也就是我们的pke以及app运行的环境这里我们假设目标机为64位机即用到了56位的物理内存编址虚拟地址采用Sv39方案参见[第一章RISC-V体系结构的内容](#1)是由spike模拟器构造的构造过程中可以通过命令行的-m选项来指定物理内存的大小。而且spike会将目标机的物理内存地址从0x8000-0000开始编制。例如如果物理内存空间的大小为2GBspike的默认值则目标机的物理地址范围为[0x8000-0000, 0x10000-0000]其中0x10000-0000已经超过32位能够表达的范围了但是我们目标机是64位机再例如如果目标机物理内存空间大小为1GB启动spike时带入-m1024m参数则目标机的物理地址范围为[0x8000-0000, 0xC000-0000]。在以下的讨论中我们用符号PHYMEM_TOP代表物理内存空间的高地址部分在以上的两个例子中PHYMEM_TOP分别为0x10000-0000和0xC000-0000。在定义了PHYMEM_TOP符号后物理内存的范围就可以表示为[0x8000-0000, PHYMEM_TOP]。
至于物理内存的大小由于我们的RISC-V目标机也就是我们的pke以及app运行的环境这里我们假设目标机为64位机即用到了56位的物理内存编址虚拟地址采用Sv39方案参见[第一章RISC-V体系结构的内容](chapter1.md#1.5)是由spike模拟器构造的构造过程中可以通过命令行的-m选项来指定物理内存的大小。而且spike会将目标机的物理内存地址从0x8000-0000开始编制。例如如果物理内存空间的大小为2GBspike的默认值则目标机的物理地址范围为[0x8000-0000, 0x10000-0000]其中0x10000-0000已经超过32位能够表达的范围了但是我们目标机是64位机再例如如果目标机物理内存空间大小为1GB启动spike时带入-m1024m参数则目标机的物理地址范围为[0x8000-0000, 0xC000-0000]。在以下的讨论中我们用符号PHYMEM_TOP代表物理内存空间的高地址部分在以上的两个例子中PHYMEM_TOP分别为0x10000-0000和0xC000-0000。在定义了PHYMEM_TOP符号后物理内存的范围就可以表示为[0x8000-0000, PHYMEM_TOP]。
我们的PK内核的逻辑编址可以通过查看pke.lds得知pke.lds有以下规则

Loading…
Cancel
Save