计算机的内存

article/2025/9/17 8:23:50

1.内存的物理机制

        内存和CPU一样,都是由大量引脚构成的集成电路,内存大致分为这几类:1.ROM:只能进行读取;2.DRAM:需要经常刷新就能进行保存数据的可被读取和写入的内存;3.SRAM:不需要经常刷新就能进行保存数据的可被读取和写入的内存。内存的引脚按作用大致分为电源、控制信号、数据信号以及地址信号。如下图所示为典型的内存的引脚配置示例。

        如图所示,其中VCC和GND为电源引脚,分别接入5V和0V就能进行供电。D0-D7是数据信号,一个引脚存移位数据,一次就可以存储8位也就是一个字节的数据。A0-A9为地址引脚,一共10个引脚,一共能存储2^10=1024个地址,也就是内存能放下1024B=1K的数据。RD和WD为控制引脚,分别为read和write的缩写,当他们分别设定为1时,表示读出和写入的操作。

2.内存的逻辑模型

         一般对内存的逻辑模型都会定义为楼房,每一层存储这1B的数据,像之前的内存,就是1024层楼房。但是八大基本数据类型所占据的内存空间有一个字节,也有多个字节的,所以在内存中按不同的变量类型所占据的“楼层”数就不一样。如下图所示为将数据低位存储在内存低位地址的低字节序。

3.指针与数组 

         指针也是一个变量,不过它表示的不是数据的值,而是内存当中存储数据的地址的值。在定义指针时,通常会以short *d的方式来定义指针变量,之所以在指针变量之前定义数据类型,其代表的是该指针变量一次能在内存中读取的长度。如果short数据类型的字节数为2个,代表该指针一次性可以在内存中取走两位地址的数据,其它数据类型类似。

        数组是指多个同样的数据类型的数据在内存中连续排列的形势,而各个数据都会通过连续的编号区分开来,这个编号就是索引,例如声明一个长度为10的整数型数组,声明方式为int[] arr=new int[10],不同数据类型的数组其在内存中的排列方式如下:

4.栈、队列以及环形缓冲区 

        如果内存中所有的数据都是通过数组和索引来进行读写,那么临时保存在计算过程中的数据、连接在计算机上的设备或者输入输出的数据时,就会变得比较麻烦。所以内存中会存在不通过指定地址和索引来进行数据读写的方法。

        栈与队列就是其中两种,它们的区别就是数据读入和写出的先后顺序不同,下面的图分别为栈和队列数据写入和读出的过程,从两图中可以看出,栈的数据时先入后出,而队列的数据时先入先出。从理解上来看,栈的意思是“干草堆积如山”,干草堆积如山,要取干草,肯定是从最上面一层来取。

 

        而队列排队,肯定是先到先得。队列一般是以环形缓冲区的方式来实现的,这样实现首尾相连,数据的读写也就可以循环起来了。

5.链表与二叉树 

        链表与二叉树是不用考虑索引的顺序就可以对数组元素进行读写的方式。通过使用链表,可以更高效地对数组元素进行追加和删除,而二叉树主要用于数据的高效检索上面。 

        所谓链表就是数组的每个元素中,除开数据的值,还会附带下一个数据的索引,即可实现列表,如下图所示,索引-1表示为为链表的末尾。

        链表的优势在于删除与追加数据比较方便,不用像传统数组一样一次性移动全部数据。

  

         二叉查找树是指在链表的基础上往数组中追加元素时,考虑到数据的大小关系,将其分为左右两个方向。其便利之处在于可以使得数据的搜索更有效率,类似于二分法提高数据查询的效率。其示意图如下:


http://chatgpt.dhexx.cn/article/1Ue28ckr.shtml

相关文章

【操作系统】计算机内存管理

文章目录 1.内存管理目标rom-ram2.计算机内存的惰性分配3.内存管理-分而治之思想4.内存不够的情况处理5.内存扩容swap配置实战6.Linux的free命令详解7.Linux的top命令详解 1.内存管理目标rom-ram (1)为啥要做内存管理 计算机不可能所以用户进程和系统所…

计算机|内存知多少

​1、硬件层面 内存就是名为内存IC的电子元件。(IC,集成电路,内存也是一种集成电路) 内存IC的引脚配置 那这个内存IC能存多少数据? 数据信号引脚有D0~D7一共8个,表示一次输入输出8位数据(一个字…

计算机底层知识之内存

❝ 渔夫出海前,并不知道鱼在哪里,可是他们还是选择出发, 因为他们相信,一定会满载而归。人生很多时候,是「选择了才有机会,是相信了才有可能」。 -- 「稻盛和夫」 ❞ 大家好,我是「柒八九」。 …

计算机基础之内存

目录 1.什么是内存2.内存的物理结构3.内存的使用4.数据在内存中为什么用二进制表示5.二进制的补码 1.什么是内存 内存是与cpu沟通的桥梁,计算机中所有程序的运行都要依靠内存,内存对计算机的影响非常大,内存又被称为主存,作用就是…

计算机基础- -认识内存

计算机基础- -认识内存 文章目录 计算机基础- -认识内存一、什么是内存二、内存的物理结构1.内存的读写过程2.内存的现实模型 三、内存的使用1.指针2.数组是内存的实现3.栈和队列4.链表5.二叉树 一、什么是内存 内存(Memory) 是计算机中最重要的部件之一,它是程序与…

电脑内存介绍(精心整理)

内存是电脑的主要硬件之一,主要用于存储和交换正在运行的程序和数据。简单的说就是,断电之后,内存存储的数据就会消失。所以我们常用的软件需要安装在硬盘等外存设备里,打开游戏或者软件时,就需要把他们调出到内存中运…

四大CPU架构的区别

我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指令的,但是其他的指令都是比较小众,只在专业的领域使用。 我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指…

四大CPU架构区别

我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指令的,但是其他的指令都是比较小众,只在专业的领域使用。 ARM架构是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。它主要从…

Linux 查看CPU架构及内核版本

涉及arch命令和/proc/version文件 1 查看CPU架构 有些软件的安装需要和CPU架构相匹配,如JDK等等,所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构,如下: arch2 查看内核版本 文件/proc/version中包含系统…

如何查看手机的CPU架构

几款专门获取手机设备信息的App: 通过这些App,你能看到你的安卓手机很多核心底层的信息,对于开发者而言,这些信息对于开发App时的写代码或者debug何其重要! 这些App都能查看像CPU架构、GPU、传感器、温度、存储、电池…

Android CPU架构

Android CPU架构有:arm64-v8a、armeabi-v7a、armeabi、x86 CPU架构 1)arm64-v8a 第8代、64位、ARM处理器 包含AArch32、AArch64两个执行状态对应32、64bit 支持arm64-v8a、armeabi-v7a、armeabi 2)armeabi-v7a 第7代、ARM处理器 …

cpu架构知识

微信公众号:运维开发故事,作者:夏老师 Part1架构概述 从系统架构来看,目前的商用服务器大体可以分为三类 对称多处理器结构(SMP:Symmetric Multi-Processor) 非一致存储访问结构(NUMA:Non-Uniform Memory…

CPU架构名称

Coffee Lake-Refresh 第九代酷睿 2018-2019年 14nm Coffee Lake 第八代酷睿 2017-2018年 14nm Kaby Lake 第七代酷睿 2016年 14nm Skylake 第六代酷睿 2015年 14nm Broadwell 第五代酷睿 2014-2015年 14nm Haswell 第四代酷睿 2013年 22nm Ivy Bridge 第三代酷睿 2012年 22nm S…

指令集与CPU架构概念与联系

指令集 指令集,顾名思义,指令的集合,CPU用来计算和控制计算机系统的,本质上是二进制机器码。 CPU依靠指令来计算和控制系统,故而需要规定一些列与硬件电路相互配合的指令系统来完成CPU的设计。以此来看,指…

Linux内核架构:CPU架构详细介绍(图例解析)

一. 概述 CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU。目前市场上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。不同品牌的CPU,其产品的…

cpu架构之体系架构

cpu架构之体系架构 1 现代CPU体系结构简介 现代的CPU基本上归为冯诺依曼结构(也称普林斯顿结构)和哈佛结构。 1.1 冯诺依曼结构 冯诺依曼结构(von Neumann architecture),也称普林斯顿结构,是一种将程序…

主流的CPU架构

cpu架构 CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU&a…

Android CPU架构之ARM和X86

Android CPU架构之ARM和X86 前言1. CPU2. CPU 架构3. ABI4. 视频资料 一、Android相关CPU架构二、如何查看Android设备 CPU架构三、CPU架构综述1. x86架构x86指令集发展x86-64 分为intel和AMD 2. ARM架构3. MIPS架构4. SPARC架构5. Alpha架构6. PowerPC系列7. 架构之间的竞争7.…

x86 CPU架构

本文是极客时间《趣谈Linux操作系统》的第6讲笔记, 链接:06 | x86架构:有了开放的架构,才能打造开放的营商环境-极客时间 Intel的8086 CPU架构 数据单元: 8个16bit 通用寄存器, 后面拓展位32bit 控制单元 IP 寄存器就…

通过命令行快速了解电脑CPU架构

Linux 和 MacOS 使用终端(小黑窗)执行下面的命令,根据输出结果查表: uname -m输出 的内容分别对应架构 输出对应架构i386, i686i386x86_64amd64arm, armelarm_garbagearmv7l, armhfarmv7*mipsmips*mips64mips64* Window 按 WinR…