计算机一次取数过程分析

article/2025/7/13 23:48:06

计算机一次取数过程分析

1 取址过程

CPU由运算器和控制器组成,其中控制器中的程序计数器(PC)保存的是下一条指令的虚拟地址,经过内存管理单元(MMU),将虚拟地址转换为物理地址,之后交给主存地址寄存器(MAR),从主存中取出这条指令,通过主存数据寄存器(MDR)交给指令寄存器(IR),IR再将其转化成控制信号。

在这里插入图片描述

2 间址过程

一条指令由 <操作码,寻址方式,地址码> 几部分组成,寻址方式共有以下十种

  • 隐含寻址
  • 立即寻址
  • 直接寻址
  • 间接寻址
  • 寄存器寻址
  • 寄存器间接寻址
  • 相对寻址
  • 基址寻址
  • 变址寻址
  • 堆栈寻址

根据有效地址(EA)或立即数所处的位置,可以分为以下三类

在寄存器:隐含寻址、寄存器寻址

在立即数:立即寻址

在主存:直接寻址、间接寻址、寄存器间接寻址、相对寻址、基址寻址、变址寻址、堆栈寻址

而无论哪种方式得到的有效地址(EA)同样也是虚拟地址


接下来要解决以下两个问题

问题一:虚拟地址如何转为物理地址?

问题二:如何访问该物理地址?


3 虚拟地址转为物理地址

3.1 单级页表系统

在分页管理的操作系统中,将主存分为一个个页框,操作系统会建立页表这种数据结构,负责虚拟页号和主存页框号的映射。

在这里插入图片描述

虚拟地址由 <页号,页内偏移量> 两部分组成,根据页号去查询页表,然后将页表中的页框号和页内偏移量组成物理地址。

例如页表部分内容如下,虚拟地址为00123366H,按字节编址,虚拟地址格式为<页号12位,页内偏移量20位>

在这里插入图片描述

在这里插入图片描述

根据虚拟地址中的001H,找到1号页表项,其页框号为521H,拼接上页内偏移量后即可得到物理地址52123366H。

但是如果想要查询页表,也要知道页表的起始地址,页表的地址保存在进程控制块(PCB)中,当CPU调度该进程时,会将PCB中的页表起始地址放入页表基址寄存器中,页表起始地址为物理地址

同时,为了解决页表项过多导致一个页框中放不下的问题,引入了多级页表。为了减少访存次数引入了快表(TLB)。

3.2 二级页表系统

在使用多级页表的32位操作系统中(以二级页表为例),虚拟地址被分成了 <页目录号,页号,页内偏移量> 三部分,例如在下图虚拟地址格式下虚拟地址为10801008H,页目录项和页表项长度均为4字节,按字节编址。

在这里插入图片描述

在这里插入图片描述

10801008H,其页目录号是66,页号是1,因此根据页目录号为66找到页目录项,其中的页框号是00301H,找到对应的页表所在页框,然后拼接上页号找到页号页表项对应的物理地址00301004H(这里因为一个页目录项是4B),页表中的页框号是98521H,拼接上页内偏移量,最终的物理地址为98521008H。

3.3 二级页表系统+快表

快表的实现基于相联存储器,是一种静态随机存取存储器(SRAM),使用的存储元是双稳态触发器,存取速度快。

在使用TLB的系统中,虚拟地址向物理地址的转换一般先查询快表(或者快表慢表一起查询),如果快表命中,可以直接获得页框号,再和页内偏移量组合,得到物理地址。

快表的映射方式有两种,为全相联映射和组相联映射,至于为什么不使用直接映射,在讨论完全相联映射和组相联映射后再讨论。

全相联映射

使用全相联映射的TLB中

TLB的格式为 <标记位,有效位,页框号>

此处的标记位即虚拟页号,若虚拟地址格式为 <页目录号(10位),页号(10位),页内偏移量(12位)>

TLB的标记位是虚拟地址中的页目录号+页号组成的虚拟页号

在这里插入图片描述

因为TLB是使用硬件电路实现的,全部TLB标记可以并行对比。

例如虚拟地址为10801008H,TLB使用全相联映射,虚拟地址格式为<页目录号(10位),页号(10位),页内偏移量(12位)>,TLB部分内容如下图所示

在这里插入图片描述

查询TLB表,10801H与虚拟页号一致,且有效位为1,因此可以直接得到页框号00001H,与页内偏移量008H拼接得到物理地址为00001008H,若未命中则回到上文中的查询二级页表的过程,且更新快表。

组相联映射

使用组相联映射的TLB格式如为 <标记位,有效位,页框号>,虚拟地址格式为 <标记位,组号,页内偏移量>,标记位+组号就是虚拟页号,同页目录号+页表号

例如二路组相联的TLB,其中共有32行,分成16组(用4位二进制表示),若虚拟地址为10801008H,虚拟地址格式为<标记位(16位),组号(4位),页内偏移量(12位)>,则查找1号分组,标记位为1080H

在这里插入图片描述

第一组标记位为1080H命中,其有效位为1,直接得到页框号为00002H,拼接上页内偏移量得到物理地址为00002008H,若未命中则回到上文中的查询二级页表的过程,且更新快表。

直接映射

TLB一项的大小很小,而且直接映射冲突率高,为了实现高命中率和低冲突率,因此TLB不使用直接映射。

而cache按照块大小,将主存一块数据(主存的一块和内存管理的一页没有关系,通常一页的大小比一块的大小要更大)读入cache行中,冲突率相比TLB会小一些,在部分场景下可以接受这种冲突的成本。

4.访问物理地址

得到物理地址后,会先访问cache,如果cache未命中访问主存,并将该物理地址所在块调入cache中(或者同时访问cache和主存)。

cache和TLB都是基于SRAM的相联存储器,不同的是cache的映射方式有三种,分别是直接映射,全相联映射,组相联映射。

在这里插入图片描述

直接映射

物理地址格式为 <Tag,行号,块内地址>

cache行内格式为 <Tag,有效位,脏位等其他数据,块数据>

全相联映射

物理地址为 <Tag,块内地址>

cache行内格式为 <Tag,有效位,脏位等其他数据,块数据>

组相联映射

物理地址格式为 <Tag,组号,块内地址>

cache行内格式为 <Tag,有效位,脏位等其他数据,块数据>

因为和TLB的过程没有太大区别,此处不再详细讨论。

不过值得注意的是,当TLB和cache未命中要更新TLB和cache时候需要使用置换算法,置换算法此处也不再讨论。


http://www.hkcw.cn/article/uXtilWAhCV.shtml

相关文章

鸿蒙OS的5.0.1.120版本体验怎么样?

点击上方关注 “终端研发部” 设为“星标”&#xff0c;和你一起掌握更多数据库知识 越来越是好用了&#xff0c;之前是凑合能用&#xff0c;现在是大多能用。 我朋友的mate30PRO和PuraX一起用&#xff0c;新系统确实满足我90%以上的需求 一个系统适配一款机型&#xff0c;是要…

CPT302 Multi-Agent Systems 题型

Agent games Wumpus World 乌普斯世界 设定 环境&#xff1a;一个二维网格状的洞穴&#xff08;cave&#xff09;&#xff0c;由多个房间&#xff08;rooms&#xff09;组成。 起点&#xff1a;智能体&#xff08;agent&#xff09;总是从左下角的 Room[1,1] 开始。 连接方式…

太阳诱电多层陶瓷电容器的优势和特点

基于电容器市场需求或将扩大的方向性战略所开展的产品研发 除多层陶瓷电容器外&#xff0c;电容器还包括电解电容器和薄膜电容器等类型。随着节能化、物联网化的进一步加速发展&#xff0c;可以预见高性能电容器的需求量将在中长期内有所增长。 多层陶瓷电容器对于实现电子设…

Chrome v131.0.6778.86 绿色便携版 下载

Google Chrome浏览器增强版&#xff0c;采用shuax便携式Dll劫持补丁加入原版打包而成&#xff0c; Chrome增强软件模块&#xff0c;强制实现flash插件支持&#xff0c;解除Adobe Flash Player地区不相容限制和移除警告提示&#xff0c;增强标签页功能。 百度网盘&#xff1a;ht…

PYTHON调用讯飞唤醒实现麦克风说话机器人离线唤醒

引言 语音唤醒技术是现代智能语音交互系统中的重要组成部分&#xff0c;它允许设备在待机状态下通过特定的唤醒词进入交互状态。本文将介绍如何使用Python结合讯飞语音SDK实现一个简单的语音唤醒系统。 技术背景 语音唤醒技术主要依赖于以下几个关键技术点&#xff1a; 声学…

做销售讲究接地气

你有没有遇到过这种情况&#xff1f;两个人聊了半天&#xff0c;你越说对方越皱眉&#xff0c;最后礼貌地说"我再考虑考虑"。其实不是产品不够好&#xff0c;而是没戳中对方心里那根弦。做销售最讲究的就是"接地气"。 和人打交道就像炒菜&#xff0c;火候…

ImBatch 7.6.3 中文版 - 高效图片批量处理工具

ImBatch是一款专业高效的图片批量处理工具。它提供强大的图像编辑功能&#xff0c;包括裁剪、尺寸调整、旋转等操作&#xff0c;并内置数十种专业工具&#xff0c;能满足各类复杂的图像处理需求。软件界面已全面中文化&#xff0c;操作更加便捷直观。 ImBatch下链接&#xff1…

Python+requests+pytest接口自动化测试框架的搭建(全)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 框架的设计思路 首先要明确进行接口自动化需要的步骤&#xff0c;如下图所示&#xff1a; 然后逐步拆解需要完成的工作&#xff1a; 1&#xff09;了解分析需求&…

C#定时器深度对比:System.Timers.Timer vs System.Threading.Timer性能实测与选型指南

本文通过真实基准测试揭秘两种常用定时器的性能差异&#xff0c;助你做出最佳选择 一、C#定时器全景概览 在C#生态中&#xff0c;不同定时器适用于不同场景。以下是主流定时器的核心特性对比&#xff1a; 定时器类型命名空间适用场景触发线程精度内存开销依赖框架System.Wind…

简单配置RHEL9.X

切换默认运行级别 将系统默认启动模式从多用户的图形界面调整为多用户的文本界面&#xff0c;适用于优化系统资源占用或进行远程服务器管理的场景。 注意&#xff1a;安装选择“带GUI的服务器”部分常用命令默认安装&#xff1b;如果选择“最小安装”时&#xff0c;部分常用命…

【运维实战】Linux 中su和sudo之间的区别以及如何配置sudo!

Linux 系统相比其他操作系统具有更高的安全性&#xff0c;其安全机制的核心之一在于用户管理策略和权限控制--普通用户默认无权执行任何系统级操作。 若普通用户需要进行系统级变更&#xff0c;必须通过su或sudo命令提权。 1.su与sudo的本质区别 su 要求直接共享 root 密码&…

基于Android的记录生活APP_springboot+vue

开发语言&#xff1a;Java框架&#xff1a;springboot AndroidJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.6 系统展示 APP登录 A…

2025年渗透测试面试题总结-匿名[校招]攻防研究员(应用安全)(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 匿名[校招]攻防研究员(应用安全) 基础部分 1. HTTP状态码 2. HTTP请求方法及作用 3. 网络分层及协议 OW…

区域未停留检测算法AI智能分析网关V4打造铁道/工厂/机场等场景应用方案

一、背景 在工业生产、公共场所管理等场景中&#xff0c;特定区域的人员/物体停留时间管控关乎作业效率与安全。传统监控系统仅能录像存证&#xff0c;无法主动分析停留行为。AI智能分析网关V4的区域未停留检测功能&#xff0c;依托智能算法实现实时监测与异常告警&#xff0c…

第Y5周:yolo.py文件解读

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 本次任务&#xff1a;将YOLOv5s网络模型中的C3模块按照下图方式修改形成C2模块&#xff0c;并将C2模块插入第2层与第3层之间&#xff0c;且跑通YOLOv5s。 任务…

无人机桥梁3D建模、巡检、检测的航线规划

无人机桥梁3D建模、巡检、检测的航线规划 无人机在3D建模、巡检和检测任务中的航线规划存在显著差异&#xff0c;主要体现在飞行高度、航线模式、精度要求和传感器配置等方面。以下是三者的详细对比分析&#xff1a; 1. 核心目标差异 任务类型主要目标典型应用场景3D建模 生成…

【FlashRAG】本地部署与demo运行(一)

FlashRAG 简介 FlashRAG 是一种高效检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术&#xff0c;旨在优化大规模语言模型&#xff08;LLMs&#xff09;的推理性能&#xff0c;尤其在处理长上下文或复杂查询时。其核心特点是结合了快速检索与动态…

低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天

低功耗架构突破&#xff1a;STM32H750 与 SD NAND &#xff08;存储芯片&#xff09;如何延长手环续航至 14 天 卓越性能强化安全高效能效图形处理优势丰富集成特性 模拟模块实时监控保障数据完整性提升安全性与可靠性测量原理采样率相关结束语 在智能皮电手环及数据存储技术不…

MySQL之约束和表的增删查改

MySQL之约束和表的增删查改 一.数据库约束1.1数据库约束的概念1.2NOT NULL 非空约束1.3DEFAULT 默认约束1.4唯一约束1.5主键约束和自增约束1.6自增约束1.7外键约束1.8CHECK约束 二.表的增删查改2.1Create创建2.2Retrieve读取2.3Update更新2.4Delete删除和Truncate截断 一.数据库…

在线制作幼教早教行业自适应网站教程

你想知道怎么做自适应网站吗&#xff1f;今天就来教你在线用模板做个幼教早教行业的网站哦。 首先得了解啥是自适应网站。简单说呢&#xff0c;自适应网站就是能自动匹配不同终端设备的网站&#xff0c;像手机、平板、电脑等。那如何做幼早教自适应网站呢&#xff1f; 在乔拓云…