3.3Sram和Dram

news2024/11/28 3:51:00

文章目录

  • 一、引子
  • 二、存储元件
    • 1.DRAM芯片
      • (1)栅极电容
        • 1)存储
        • 2)读出
      • (2)物理特性
      • (3)DRAM刷新
      • (4)DRAM地址线复用
    • 2.SRAM芯片
      • (1)双稳态触发器
        • 1)存储
        • 2)读出
      • (2)物理特性
    • 3.对比

一、引子

在上一个小节,我们了解了存储芯片的基本原理,学习了如何存储二进制的0和1,如何根据一个地址来访问存储字。

这一小节,会介绍两种特定的存储芯片SRAMDRAM

之前,我们知道了RAM–随机访问存储器:当我们指定某个存储单元的地址,这个存储单元的读取速度并不会因为存储单元的物理位置而改变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwxe4X8N-1674720862640)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095114830.png)]

接下来,将逐步介绍下面的内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQwZkE6S-1674720862642)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095150279.png)]

二、存储元件

1.DRAM芯片

上一小节介绍的芯片,其实就是DRAM芯片。见下图:

(详情请戳:3.2主存储器的基本组成)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rlD9BzxJ-1674720862642)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095603492.png)]

DRAM芯片可以用于制作主存,上图右侧的内存条上就是DRAM芯片。

DRAM芯片和SRAM芯片的核心区别就是:存储元件不一样。

<1> DRAM芯片是用栅极电容(电容的充放电)来存储和读取信息。

<2> SRAM芯片是用双稳态触发器来存储信息的。

👉 接下来,看一下这两种存储元件的区别。

(1)栅极电容

看一下下面这个存储元:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VwYIPlPw-1674720862643)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100224261.png)]

上一节说过,如果给这个字选择线(存储元件的左侧)加一个5V的电压(假设5V为阈值),就会使MOS管接通。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XyM4vIr3-1674720862643)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100322548.png)]

如果此时数据线上也加了一个5V的高电平(也就是给了一个二进制的1),那么这个5V的高电平电压会加到电容上方的金属板上,而下方的金属板由于接地,所以下方金属板电压为0。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UU8jdKDt-1674720862644)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100546771.png)]

1)存储

当电容的两块金属板产生压差的时候,就会导致正电荷在上面的金属板聚集,负电荷在下面的金属板聚集。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ajrFx0sl-1674720862644)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100642023.png)]

这样就完成了二进制1的存储。

如果从数据线输入了一个低电平信号(0),由于电容的两块金属板之间没有电压差,此时电容不会存储电荷。

这样就完成了二进制0的存储。

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxe0Eu37-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102429181.png)]

2)读出

接下来看一下读出1和读出0如何实现。

<1> 如果此时电容里面存的是1,就是此时电容里面存储了电荷。

当字选择线接了高电平(比如5V)后,MOS管接通,这些电荷就会顺着图中蓝线从绿线(数据线)输出。

如果是二进制的1,那么数据线一端可以检测到电流信号。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zX3req5a-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101620106.png)]

<2> 如果此时电容里面存储的是0,就是此时电容里面没有存储电荷。

当字选择线接了高电平(比如5V)后,MOS管接通,数据线一端也不会检测到电流的流出。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OSqLJHEZ-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101847085.png)]

所以,用上述的方式就可以检测读出的是1还是0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rF4MPzs1-1674720862646)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101939672.png)]

DRAM存储元用栅极电容来存储二进制0和1。


(2)物理特性

<1> 栅极电容里面,如果存储的是二进制的1,那么电容上面会存储一些电荷,接通MOS管读出数据的时候,电容里面存储的电荷就会被释放了(电容放电)。

那么电容放电之后,没有电荷了,数据就会由1变为了0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EO9paF8A-1674720862647)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126105115969.png)]

所以,读出栅极电容里面存储的信息之后,栅极电容里面存储的信息就会被改动,被破坏。就是所谓的破坏性读出。里面的信息会被损坏(1->0)。

为了解决这个问题,需要进行重写操作,又叫再生,就是给电容重新进行一次充电。

<2> 接下来解释一下刷新的概念。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlbKpqk0-1674720862647)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126112139948.png)]

对于栅极电容。虽然电容里面会存放电荷,但是电荷会慢慢流失,那么同样也会使电容里面的数据出现误差(1->0)。通常电容里的电荷只能维持2ms的时间,即使不断电,2ms后信息也会消失。

由于电容里面的电荷只能存在2ms,那么在2ms之内必须刷新一次(给电容充电)。

(3)DRAM刷新

那么DRAM如何进行刷新操作呢?

先来看一下几个问题。

<1> 多久需要刷新一次?

刷新周期:一般为2ms。

由于电容只能保持2ms的电荷,所以必须在2ms之内刷新一次电荷。

<2> 每次刷新多少存储单元?

以行为单位,每次刷新一行存储单元。

每个存储单元会由多个存储元构成,所以每次刷新存储单元的次数应该以为单位,每次刷新一行。

<3> 什么叫一行存储单元

上一小节,我们给出的存储器模型中,给出n位地址后,译码器会将n位地址转换成其中某一条选通线的高电平信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-df0pPBib-1674720862648)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126113028232.png)]

如果总共有n位地址,那么译码器的输出端会有2^n根选通线。

所以,按照之前的方案,如果有20位地址,那么选通线的数量就是2^20=1M

也就是说,译码器的输出端需要接1M根选通线,大概有一百万。在译码器端接一百万根线,显然工程量很大。

为了解决这个问题,可以把存储单元从一维排列转换为二维排列,也就是将它们变为由存储单元构成的矩阵。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jbTFg8W-1674720862648)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126113720247.png)]

n位地址会被拆成行地址和列地址,分别送给行地址译码器和列地址译码器。

这样的话,每个译码器只需要处理n/2位地址信息。

原本译码器需要处理20位地址信息,对应2^20=1M根选通线。那么现在将20位地址信息分别拆分,一半行地址,一半列地址,那么每个译码器的选通线就是2^10=1K根选通线,1024根选通线在工程上很容易实现。

随着存储容量的增大,现在的存储器甚至还会有三维排列,原理类似。

所以用行列地址的目的就是减少选通线的数量,使电路变得更简单和清晰。


❓ 如何根据地址来选中某一个存储单元?

将上面的二维图示进行简单连线之后,得到下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ru76W9r5-1674720862649)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126114505112.png)]

如果此时要访问的地址是0000 0000。

①左边的译码器

译码器的输入端输入00000000,那么它的第0根选通线会被选通(选中0号存储单元)。

②右边的译码器

地址会被分为前半部分(0000)和后半部分(0000),前半部分作为行地址,送给行地址译码器;后半部分作为列地址,送给列地址译码器。

那么,行地址译码器的第0根选通线会被选通(右图蓝线),列地址译码器的第0根选通线也会被选通(右图红线)。

一个存储单元,只有行和列都被选通才能进行读和写。


<4>如何刷新

上面我们已经知道了什么叫一行存储单元。

只要我们给出一个行地址,那么行地址译码器就会选中一整行存储单元。

每一次刷新操作就会刷新一整行!

会有一个专门的刷新电路支持,刷新电路会直接读出一整行存储单元的信息,然后重新写入(重新给电容充电)。

由于刷新一整行本质上就是做了一次读操作,所以它的耗时与我们读写周期的耗时差不多。

所以,进行一次刷新操作需要占用1个读/写周期,每次可以刷新一整行的存储单元。

<5> 什么时候刷新

假设DRAM内部结构排列成128*128(128行、128列)的形式,读/写周期(存取周期)0.5us。

电容可以支持的最长时间是2ms,2ms对应4000个读写周期。

1ms=1000us

2ms=2000us

2000/0.5=4000

有128行需要刷新,每次刷新需要0.5us时间。可以有如下几种策略。

①第一种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jT4e5RA7-1674720862650)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121819051.png)]

这种方式,2ms时间内,会有2000次刷新操作。(2ms/1us=2000)

这两千次刷新操作,足够在2ms内给128行的存储单元每一行都刷新很多次。

②第二种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3AWCBGcd-1674720862652)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121842522.png)]

2ms可以分为4000个读写周期(2ms/0.5us=4000),前面3872个周期读写,后面128个周期分别刷新128行。

③第三种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-El7P3K5Y-1674720862654)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121859520.png)]

将每一行的刷新分散到不同的时间段。

在实际应用中,可以利用CPU不需要访问存储器的这段时间进行刷新。比如CPU取得指令,并对它译码的阶段。

DRAM刷新是由存储器独立完成的,不需要CPU控制。


(4)DRAM地址线复用

上面我们已经知道了什么叫行地址,什么叫列地址。

行地址和列地址的信息会同时丢给行列译码器,即同时送出行列地址

地址有多少位,就需要涉及多少根的地址线。

DRAM的存储容量会比较大,有可能需要32维地址,也就是需要32根地址线。

为了让地址线对应的电路变得更加简单,DRAM一般会采用地址线复用技术

本来需要有n位地址线来传送行和列地址,但是采用地址线复用技术之后,可以把行地址和列地址通过前后两次分别进行传输。

也就是说,只需要2/n条地址线就可以。第一次将行地址送入行地址缓冲器,第二次将列地址送入列地址缓冲器里面。

然后在控制器的控制下,行地址和列地址再送给译码器进行译码处理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFlfiGf8-1674720862654)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126124850495.png)]

原本需要n位引脚来接收n位地址,现在只需要n/2个引脚就可以,先接收行地址,再接收列地址。也就是分两次送行列地址

如果要考察DRAM芯片引脚个数的话,那么就要考虑DRAM芯片的地址线采用了复用技术,也就是和地址对应的引脚数目应该减半

2.SRAM芯片

(1)双稳态触发器

SRAM芯片的存储元就是如下的双稳态触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53tp960u-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102502602.png)]

触发器相关的知识在数字电路那门课学习的,这里只做简单的了解。

这个双稳态触发器总共有6个MOS管,图中用M1、M2、M3、M4、M5、M6表示。

这个触发器的存储元可以呈现出两种稳定的状态:

<1> A点高电平,B点低电平—>对应二进制的1

<2> A点低电平,B点高电平—>对应二进制的0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTAJ4kLt-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102907997.png)]

1)存储

写入数据很简单,比如现在想要写入0。

那么只需要给左边的绿线(BL)加上一个低电平信号,右边的绿线(BLX)加上一个高电平信号,这样就可以使得触发器A是低电平,B是高电平。

这个状态对应的就是二进制的0。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mn6V4TyA-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126104328019.png)]

写入二进制的1也是类似。

2)读出

双稳态触发器需要有两根数据线来读出0和1。

如果此时双稳态触发器里面存的是二进制的1,当我们给自选择线接通之后(给了一个高电平电压)。右边的绿线(BLX)就会输出一个低电平信号。

如果存储的是二进制的0,会由左边的线(BL)输出低电平信号,而右边的线不会输出任何电信号。

那么,可以根据左右两条数据线哪一条输出了低电平信号,来判断触发器里面原本存的是二进制的0还是1。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjPCAbcO-1674720862656)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126104530251.png)]

(2)物理特性

<1> 双稳定触发器有两种稳定的状态,当我们读出数据之后,触发器的状态还是非常稳定的。

所以它的读操作是非破坏性读出,不需要进行重写操作。

<2> 对于双稳态触发器,只要给触发器(VDD)不断供电,只要不断电,触发器的状态就不会被改变。保存的0或1是不会消失的。所以双稳态触发器不需要刷新操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AoscCEU5-1674720862656)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126112025121.png)]


3.对比

将栅极电容和双稳态触发器对比一下,会有不同的地方。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tr2PtuY4-1674720862657)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126110905435.png)]

<1> 栅极电容的数据线(绿色线)只有一根;双稳态触发器的数据线有两根

<2> 栅极电容放电信息会被破坏,就是破坏性读出,读出后应有重写(再生)操作;双稳态触发器读出数据,触发器状态保持稳定,是非破坏性读出,无需重写。

<3> 栅极电容读写速度更慢;双稳态触发器读写速度更快

<4> 栅极电容只需要一个电容和一个MOS管即可,所以它的每个存储元 制造成本更低,集成度更高,功耗低(电路简单);双稳态触发器需要六个MOS管,所以它的每个存储元制造成本更高,集成度更低,功耗大(电路复杂)

如果一块芯片面积固定不变,栅极电容的数量会比双稳态触发器分布更多更密集,就是集成度更高。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhYqS8s6-1674720862657)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126110930337.png)]

两者都是易失性存储器(断电后消失),不要和破坏性读出弄混淆!

SRAM集成度低,存储容量更小,对应的行列地址位数也会更小。所以对于SRAM这种容量小的芯片,通常会把行列地址同时送过去

DRAM芯片其实已经过时了,目前主存储器主要使用SDRAM芯片。(比如DDR3、DDR4)


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬虫之JS的解析

JS的解析 学习目标&#xff1a; 了解 定位js的方法了解 添加断点观察js的执行过程的方法应用 js2py获取js的方法 1 确定js的位置 对于前面人人网的案例&#xff0c;我们知道了url地址中有部分参数&#xff0c;但是参数是如何生成的呢&#xff1f; 毫无疑问&#xff0c;参数肯…

gin全解

文章目录介绍安装快速开始&#xff08;三种启动方式&#xff09;参数获取querystring参数其他不常用方法表单参数&#xff08;form参数&#xff09;其他不常用方法获取path参数参数绑定文件上传单个文件多个文件请求&#xff08;ctx.Request)响应gin.H{}字符串响应JSON/YAML/TO…

一起自学SLAM算法:8.2 Cartographer算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; Gmapping代码实现相对简洁&#xff0c;非常适合初学者入门学习。但是Gmapping属于基于滤波方法的SLAM系统&#xff0c;明显的缺点是无法构建大规模的地图&#xff0c;这一点已经在第7章中讨论过了。而基于优化的…

Python爬虫之findall和lxml

Python爬虫之findall和lxml 提示&#xff1a;前言 Python爬虫之findall和lxml 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python爬虫之findall和lxml前言一、导入包二、设置URL和获取视频链接三、解析视频名字…

31. 实战:PyQuery获取小电视Top100详细信息(文末源码)

目录 前言 &#xff08;链接放在评论区&#xff09;&#xff08;链接放在评论区&#xff09;&#xff08;链接放在评论区&#xff09; 目的 &#xff08;链接放在评论区&#xff09;&#xff08;链接放在评论区&#xff09;&#xff08;链接放…

趣味三角——第4章——三角学迈向解析化

第4章 三角学迈向解析化(或分析化) 目录 4.1 三角学迈向解析化的过程简述 4.2 Franois Vieter对三角学解析化的贡献 “Thus the analysis of angular sections involves geometric and arithmetic secrets which hitherto have been penetrated by no one(因此&#xf…

Idea中指定xml文件失效

目录一、&#x1f407; 项目场景&#xff1a;二、&#x1f407; 问题描述三、&#x1f407; 原因分析&#xff1a;四、&#x1f407; 解决方案&#xff1a;一、&#x1f407; 项目场景&#xff1a; 最近狮子在搞一个项目&#xff0c;需要用到数据库多表查询&#xff0c;所以在…

数据挖掘,计算机网络、操作系统刷题笔记35

数据挖掘&#xff0c;计算机网络、操作系统刷题笔记35 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;orac…

【论文翻译】Jointformer :一种基于误差预测和改进的三维人体姿态估计的单帧提升变压器

摘要 单目三维人体姿态估计技术有望极大地提高人体运动数据的可用性。表现最好的单幅图像2D3D提升模型使用图卷积网络(GCNs)&#xff0c;通常需要一些手动输入来定义不同身体关节之间的关系。我们提出了一种新的基于变压器的方法&#xff0c;该方法使用更广泛的自我注意机制来…

nodejs+vue高校网上报名系统

本课题利用nodejsVue设计实现网上报名系统。系统的主要功能是&#xff1a;用户在线注册信息之后&#xff0c;利用注册时填写的用户账号与密码&#xff0c;登入系统后&#xff0c;对注册的个人信息进行修改&#xff0c;在线报名&#xff0c;能正确的提交有送报考的基本信息&…

【图卷积网络】01-卷积神经网络:从欧氏空间到非欧氏空间

人工神经网络发展浪潮 第三次浪潮——卷积神经网络 加拿大多伦多大学教授&#xff0c;机器学习领域泰斗Geoffery Hinton及其学生在《科学》上发表了一篇论文 &#xff08;Hinton, G. E . Reducing the Dimensionality of Data with Neural Networks[J]. Science, 2006, 313(578…

【Typescript学习】使用 React 和 TypeScript 构建web应用(二)部分UI、useState、useRef、Props

教程来自freecodeCamp&#xff1a;【英字】使用 React 和 TypeScript 构建应用程序 跟做&#xff0c;仅记录用 其他资料&#xff1a;https://www.freecodecamp.org/chinese/news/learn-typescript-beginners-guide/ 第二天 以下是视频(0:18-0:40) 的内容 目录第二天1 App 函数…

【二叉树】java实现代码,详解二叉树,带大家更深刻的掌握二叉树递归思想

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#x1fa90;&#x1fa90;&#x1fa90;&#xff0c;在探索数据结构的旅程中&#xff0c;二叉树可以说是数据结构中的重点&#xff0c;笔试面试经常出现的问题&#xff0c;同时也是难点。&#x1f425;&#x1f425;&#x1f4…

【Java开发】Spring Cloud 09 :微服务网关 Gateway

Spring Cloud Gateway&#xff08;简称 Gateway&#xff09;&#xff0c;它在微服务架构中扮演的角色是“微服务网关”&#xff0c;Nginx 和 Gateway 在微服务体系中的分工是不一样的。Gateway 作为更底层的微服务网关&#xff0c;通常是作为外部 Nginx 网关和内部微服务系统之…

Markdown编辑器基本语法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

【C语言从0到1之文件操作(FILE)】(原理 画图 举例 不信教不会你 不要放收藏夹落灰 学起来好嘛)

&#x1f57a;作者&#xff1a;迷茫的启明星 &#x1f383;专栏&#xff1a;《数据库》《C语言从0到1专栏》《数据结构》《C语言杂谈》&#x1f3c7;分享喜欢的一句话&#xff1a;心如花木&#xff0c;向阳而生前言在我们的学习中&#xff0c;文件操作是被我们忽略&#xff0c;…

NodeJS 与第三方模块 mysql(基本操作)

文章目录参考描述mysql 模块连接数据库检测基本操作查询数据与代码分离原则占位符插入另一种姿态修改另一种姿态删除标记删除参考 项目描述哔哩哔哩黑马程序员搜索引擎Bing 描述 项目描述NodeJSv18.13.0nodemon2.0.20MySQL5.7.40mysql2.18.1 mysql 模块 npm&#xff08;Node…

Linux——进程

目录 冯诺依曼体系结构 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 进程 基本概念 描述进程-PCB task_struct-PCB的一种 task_ struct内容分类 组织进程 查看进程 通过系统调用获取进程…

Pycharm使用Git进行版本控制(自建远端Git仓库)

目录本地Git安装远端Git仓库搭建在Pycharm中使用Git进行版本控制设置Git可执行文件路径创建本地Git仓库设置远端Git仓库提交及推送本地Git安装 安装本地Git用于被Pycharm调用&#xff0c;安装方法参考以下博客&#xff1a; Git 的下载与安装_作者&#xff1a;fengzhx0820 远端…

四轮两驱小车(四):STM32驱动5路灰度传感器PID循迹

目录 前言&#xff1a; 小车效果展示&#xff1a; 5路数字灰度传感器&#xff1a; 巡线思路&#xff1a; 加入PID调节的代码&#xff1a; 前言&#xff1a; 之前买了一批5路灰度传感器&#xff0c;想用这传感器进行循迹&#xff0c;无奈网上和官方的资料提供的还是比较少&a…