ReadMem(int addr, int size, int *value)传入下一条指令地址,每次读取字节数,存放指令位置

Translate(int virtAddr, int* physAddr, int size, bool writing) 传入虚拟地址,物理地址指针,每次读取字节数,读写权限,将虚拟地址addr翻译为物理地址,entry是虚拟机对应的页表项指针,用来保存查询记录

 计算下一条指令的虚拟页号和偏移量

取出虚拟页

 

 取出虚拟页对应的物理页

 

设置使用位,脏页,获取物理地址 

回到ReadMem(),根据physicalAddress 从数组mainMemory中取数据,根据size选择对应的方式处理物理地址中的data 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐