CPU资源和存储器 在汇编语言中,需要访问的硬件资源主要有:CPU内部资源、存储器和IO端口。 本章将着重讲解CPU内部寄存器的命名、功能及其常见的用途,还要介绍存储器的分段管理模式、存储单元地址的表示法以及其物理地址的形成方式。 CX 串操作、循环控制的计数器 CL 移位操作的计数器 DX 字(16位)的乘、除运算,间接的输入输出 变址寄存器 SI 存储器指针、串指令中的源操作数指针 DI 存储器指针、串指令中的目的操作数指针 变址寄存器 BP 存储器指针、存取堆栈的指针 SP 堆栈的栈顶指针 指令指针 IPEIP 标志位寄存器 FlagEFlag 32位 CPU的 段寄存器 16位CPU的 段寄存器 ES 附加段寄存器 2.2 存储器的管理模式 Intel公司的80X86系列的CPU基本上采用内存分段的管理模式。
虚拟存储器 1.借助于磁盘辅助存储器实现 2.以透明方式提供给用户 3.一个比实际主存空间大得多的程序地址空间 4.在主存-外存层次间 作用: 扩大主存容量,有效管理存储系统 物理地址(实地址):(物理存储空间 )由CPU地址引脚送出,用于访问主存的地址 逻辑地址(虚地址):(逻辑地址空间)用户编制程序时使用的地址,是程序的逻辑地址 存储管理部件(MMU)负责将虚拟地址转为物理地址
一站式解决数据备份、共享、大数据处理、线上数据托管的云端存储服务
根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法 (1)存储介质 半导体存储器:用半导体器件组成的存储器。 磁表面存储器:用磁性材料做成的存储器。 (2)存取方式 随机存储器:存储器中任何存储单元的内容都能被随机存取,且存储时间和存储单元 的物理位置无关。 顺序存储器:存储器只能按某种顺序来存取,也就是存取时间和存储单元的物理位置有关。 (3)存储内容可变性 只读存储器(ROM):只能读出而不能写入。 随机储存器(RAM):既能读出又能写入。 (4)信息易失性 易失型存储器:断电后信息消失的存储器。 (内存条) 非易失型存储器:断电后仍能保存的存储器。(磁盘) (5)系统中的作用 方式一:内部存储器和外部存储器。 方式二:主存储器、高速缓存存储器、辅助存储器、控制存储器。
今天和大家浅谈一下存储器相关基础知识,如图1所示我做的一个脑图分类,我们按照这个分类逐一讲解。 图1 存储器分类示意图 01 磁性存储器 (1)机械硬盘通常都是由盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几部份组成。 图3 机械硬盘存储原理 02 半导体存储器--ROM (1)ROM(Read Only Memory,只读存储器):不可擦除,数据由工厂写入,一次写入机会。 图11 3D NAND结构示意图 03 半导体存储器--RAM RAM(Random Access Memory,随机存取存储器),是与CPU直接交换数据的内部存储器。 图15 SDRAM内部框图 04 新型存储器 (1)STT MRAM(自旋转移力矩 磁性随机存取存储器)结构示意图如下,每个 bit 单元都包含一个晶体管外加一条垂直排列的隧道交叉点。
存储器的层次: 分为寄存器、主存(内存)和 辅存(外存)三个层次。 主存:高速缓冲存储器、主存储器、磁盘缓冲存储器, 主存又称为可执行存储器; 辅存:固定磁盘存储器、可移动的外部存储器; 其可长期保存数据,但不能被处理器直接访问。 内(主)存储器管理的主要功能:① 逻辑地址到物理地址的转换 ② 内存(主存)空间的分配与回收 ③ 内存信息(数据)的共享与保护 ④ 内存的逻辑扩充(虚拟存储器的实现) 一个用户程序在运行之前需要经历若干步骤 由CPU生成,也称为虚拟地址 物理地址:内存存储单元的编址,内存单元的实际地址 逻辑地址空间:目标代码用逻辑地址编址对应的区域 内存存储空间:内存若干存储单元用物理地址编址对应的区域 重定位:逻辑地址转换为物理地址的操作
将产生内部碎片 地址转换方法 将逻辑地址转换为虚拟地址: CPU生成的地址分成以下两部分: 1.页号(p):页号作为页表中的索引。页表中包含每页所在物理内存的基地址。 一次访问页表,另一次访问数据/指令 5.两次内存访问问题可以用特别的快速查找硬件缓冲(TLB,称为快表或联想存储器或关联内存或翻译后备缓冲器)来解决。 带TLB的分页硬件原理如下: ?
分析对应问题时,你肯定听过“主要瓶颈不在CPU,而在I/O”,存储很重要。 1 存储器的层次结构 存储器系统是通过各种不同方法和设备,一层层组合起来的系统。 常把CPU比做计算机的“大脑”,思考的东西,好比CPU的寄存器(Register)。寄存器与其说是存储器,更像是CPU本身一部分,只能存放极有限信息,但速度很快,和CPU同步。 大脑中的记忆好比CPU Cache(CPU高速缓存,简称为“缓存”)。CPU Cache用的一种SRAM(Static Random-Access Memory,静态随机存取存储器)芯片。 4 存储器的层级结构 整个存储器的层次结构都类似SRAM和DRAM在性能、价格差异: SRAM更贵,速度更快 像大脑中的记忆 DRAM更便宜,容量更大 像属于我们自己的书桌 大脑(CPU 存储器层次关系图 从Cache、内存,到SSD和HDD硬盘。容量越小的设备速度越快,而且,CPU并不是直接和每一种存储器设备打交道,而是每一种存储器设备,只和它相邻的存储设备打交道。
CPU是计算机的核心部件,CPU的运行离不开存储器。指令和数据存放在存储器中,比较常见的存储器有内存。这次我们讨论计算机内部的存储器。 存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,那么编号就是0~127.一个存储单元有多大呢?一个存储单元存储一个字节(Byte),即8bit。 大容量的存储器可以用以下方法来计量(B代表Byte)。 大容量的存储器可以用以下方法来计量(B代表Byte)。 1KB=1024B 1MB=1024KB 1GB=1024KB 1TB=1024GB 指令和数据存储在存储器中,在存储器中是“无差别”的,只有在CPU读取的时候CPU会区分指令和数据。 后面的汇编语言系列文章会讲到CPU如何区分指令和数据。 比如内存中的一段数据1000100111011000既可以被CPU认为是数据89D8H,也可以被CPU认为是指令mov ax, bx.
存储器层次结构 这里先说一下存储器系统: 寄存器 -----> 高速缓存 -----> 主存储 存储器对程序的性能有着巨大的影响,程序的运行就是对数据的不停的计算和搬移,其中最为耗时的就是程序对数据的搬移 如果你理解了系统是如何将数据在存储器结构层次中上上下下移动的,你就可以编写自己的应用程序,使它们的数据存储在较高层次结构的地方,在那里CPU能更快的访问。 先展示出这篇文章的结构图: ? 非易失性存储器 如果断电,DRAM和SRAM会丢失他们的信息。也就是它们属于易失的存储器。历史原因非易失的被称为制度存储器(ROM),实际上它们也是可读可写的。 PROM 只能被编程一次。 每次传输数据的过程被称为总线事务,读事务:从主存传送数据到CPU。写事务:从CPU传输数据到主存。 读写事务都需要三步骤来进行:将地址放到总线上,读出地址,复制数据。 存储器层次结构中的缓存 存储器结构的中心思想是,对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢存储设备的缓存。依次类推,直到最小缓存---CPU寄存器组。
大家好,又见面了,我是全栈君 Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开。 每一个进程都有一张段表LDT。整个系统有一张GDT表。 地址变换 CPU的内存管理给程序猿提供了这样一个抽象的内存模型: 即程序猿(不管是汇编的还是高级语言的)能够把内存分布看做是如上图所看到的,能够觉得内存中仅仅有自己的程序,自己独占CPU。 当运行任务切换时,CPU会把新任务的TSS的段选择子和段描写叙述符自己主动载入进任务寄存器TR中。 缓存在段寄存器(可见部分和隐藏部分)中的信息使得CPU能够在进行地址转换时不再须要花费时间从段描写叙述符中读取基地址和限长值。 当CPU訪问页表项映射的页面时,页表表项的此标志被置1。 CPU仅仅负责设置该标志,操作系统可通过定期地复位该标志来统计页面的使用情况。 D位:已被改动(Dirty)标志。
本文收录于 www.cswiki.top CPU 全称 Central Processing Unit,中央处理器,计算机的大脑,长这个样子: CPU 通过一个插槽安装在主板上,这个插槽也叫做 CPU Socket,它长这个样子: 而我们说的多核 CPU,一个 CPU 有几个核,这个核就是 Core 其实在很久之前是没有 Core 的概念的,一个 CPU 就是一个完整的物理处理单元,之后由于多核技术的发展 一个 CPU 中可以有多个 Core,各个 Core 之间相互独立且可以并行执行 所以你说一个多核 CPU 支不支持多进程/线程并行? 缓存是高速随机访问存储器,它保存 Core 可能会(重新)使用的数据 除了这三大块,Core 中还包括时钟和总线,就不详细说了,下图显示了一个抽象的 Core 架构: 那这些 Core 互相独立的执行任务 Core 的数量,而非 CPU 数量,比如常见的线程池的 corePoolSize 设置为 CPU 个数 * 2,这里的 CPU 个数,其实指的就是 CPU Core 的个数 当然了,还有 Hyper-threading
所以,必须整体提升处理器和存储器的效率,才能将计算机的整体性能得到提升。 ? 随着CPU的高速发展,存储器也在不断地发展,尽管如此,仍不能满足现代软件的发展需求,因此,存储器仍然是一种紧缺资源。 如何对存储器进行分配和管理,不仅直接影响到存储器的利用率,而且还对系统性能有重大影响。 通常计算机的存储层次具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。 主存储器(简称内存或主存)是计算机系统中一个主要部件,用于保存进程运行时的程序和数据,也称可执行存储器,CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将它们装入到寄存器中,或者从寄存器存入到主存储器 CPU 与外围设备交换的信息一般也依托于主存储器地址空间。由于主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。 实际上,存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。高速缓存存储器作为一部分存储在相对慢速的主存储器中数据和指令的缓冲区域。
虚拟存储器还有一个最重要的特征——虚拟性,从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。 虚拟存储器定义 所谓虚拟存储器,是指仅把程序的一部分装入内存便可运行程序的存储器系统。 具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。 虚拟存储器并非可以无限大,其容量受外存大小和指令中地址长度两方面的限制。 缺页中断作为中断,它同样需要经历诸如保护CPU现场环境、分析中断原因、转入缺页中断处理程序进行处理、恢复CPU环境等几个步骤。 缺页中断与与一般的中断的区别 -在指令执行期间产生和处理中断信号。 具体过程: 保存当前进程的CPU现场环境,从辅存中找到该页; 查看当前内存是否有空闲空间调入该页,如果有则启动I/O,将该页由辅存调入内存,同时修改页表,再按分页存储管理方式的地址变换过程转换地址;如果内存已满 困难:难以确定为每个进程分配的物理块数,若太少,则会频繁地出现缺页中断,降低了系统的吞吐量;若太多,则必然使内存中驻留的进程数目减少,进而可能造成CPU空间或其它资源的浪费,而且在实现进程交换时,会花费更多的时间
存储器的种类繁多,若按照存储器的读写功能来分类,我们可以将半导体存储器分为只读存储器(ROM)和随机读写存储器(RAM);若按照信息保存的角度来分类,我们可以将存储器可分成易失性存储器和非易失性存储器, 对于存储器的需求量还将继续扩大,发展存储器是国家战略所在。 超威半导体(AMD) [AMD.O] image.png 美国AMD半导体公司专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(CPU、GPU、主板芯片组、电视卡芯片等),以及提供闪存和低功率处理器解决方案 AMD提出3A平台的新标志,在笔记本领域有“AMD VISION”标志的就表示该电脑采用3A构建方案(CPU、GPU、主板芯片组均由AMD制造提供)。 除了研发生产传统型的DRAM和3D NAND存储器以外;大数据、云计算和人工智能等战略新兴产业对大容量快速存储器的需求,催生出相变存储器、磁阻存储器、阻变存储器等新型存储器。
既然我们的操作系统还有CPU特性都采用了NUMA架构,那么我们完全可以通过调整KVM对应的NUMA关系来达到KVM CPU这方面的优化。这里,我们一般是通过CPU绑定的方法来做相关操作的。 这个虚拟机是2个vCPU 双核的,然后都是跑在了物理机的CPU8上,使用的时间是2964.6s。 最后一个是CPU的亲和性,这个yyyyy 表示的是使用的物理CPU内部的逻辑核,一个y就代表其中一个CPU逻辑核。全部是y ,那么说明这台物理机的24个CPU核,这个CPU都能调度使用。 我们可以看到目前这个虚拟机0-23的CPU它都能调度使用 那么以上就是查看虚拟机CPU NUMA调度的信息,如果我们要把虚拟机绑定到固定的CPU上,我们就要做以下操作: # virsh emulatorpin 这里要注意的是,你把虚拟机用reboot重启,这个绑定配置还是生效的,但是你shutdown的话,CPU绑定的效果会失效。
在51单片机中,连接外部存储器使用的是三总线的方式,即:数据总线,地址总线,控制总线。51单片机的P0口在有外部存储器的设计之中,一般充当数据总线和低8位的地址总线。 外扩的数据存储器和外扩的I/O口是统一编址的。必须记住。 PSEN信号是外部ROM的读选通信号。一般接到存储器的OE端。 EA信号:EA = 0,只访问外部程序存储器,EA = 1,从内部ROM开始访问,当访问完内部ROM后,转去访问外部ROM。 常用的ROM芯片: ? ? ?
一、逻辑地址如何转换为物理地址 由MMU(存储器管理单元)实现 (一)分页式管理:硬件地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 (1)把进程的页表起始地址和页表长度(在进程控制块中)装入CPU控制寄存器 (2)把程序计数器中存放的逻辑地址中的页号部分与控制寄存器中的页表长度比较,检查地址越界 (3)将页号与页表起始地址相加,得到访问的所在页在页表的入口地址 image.png 具有快表的地址变换 在基本地址变换机构中,每次想访问一个物理地址,都需要到内存中去先查一下页表,再去访问物理地址 快表(联想存储器,TLB),是一种访问速度比内存快很多的硬件高速缓冲寄存器组 页式虚拟存储器管理 页表会增加有效位和修改位 页面淘汰算法 FIFO先进先出算法:在操作系统中经常被用到,比如作业调度(主要实现简单,很容易想到); LRU(Least recently 段式虚拟存储器管理 段表增加有效位,修改位,采用段的动态链接,即在程序运行或装入时进行链接,节省时间,便于进行段的共享。
SRAM用来作为高速缓存存储器,一般只有几兆。DRAM用来作为主存以及图形系统的帧缓冲区(显存),一般有几G。 静态存储器SRAM将每个位存储在一个双稳态的存储器单元里。 动态存储器DRAM将每个位存储为对一个电容的充电。这个电容非常小,通常只有30*10^-15法拉。 DRAM存储器可以造的十分密集。 每个单元由一个电容和一个访问晶体管组成。 存储器系统必须周期性地读出,然后重写来刷新存储器的每一位。 每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为总线事务(bus transaction)。读事务(read transaction)从主存传送数据到 CPU。 写事务(write transaction)从CPU传送数据到主存。IO桥是将系统总线的电子信号翻译成存储器总线的电子信号。总线是一组并行的导线,能携带地址,数据和控制信号。 图片.png
集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。
专用宿主机(CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
扫码关注腾讯云开发者
领取腾讯云代金券