2.计算机基础

news2024/11/15 16:25:26

文章目录

  • 1.冯·诺依曼体系结构
    • (1)冯·诺依曼体系结构思想
    • (2)五大部件介绍
    • (3)现代计算机逻辑架构
  • 2.现代计算机硬件图 和 CPU
    • (1)现代计算机硬件图
    • (2)CPU
      • 运算器结构
      • 算术运算的执行过程
    • (3)执行CPU指令的过程
      • 指令的组成
      • 一个指令周期的过程
  • 3.主存
    • (1)内存的构成方式
    • (2)内存的寻址方式
    • (3)典型真题:内存容量计算
  • 4.存储器
    • (1)存储器的分类
    • (2)典型真题:存储器的分类
    • (3)存储器之间的层级关系
  • 5.校验码
    • (1)码距与检错纠错公式
    • (2)码距与检错纠错举例
    • (3)奇偶校验码
    • (4)海明码
      • 实例
        • (1)计算分组数
        • (2)确定校验码位置
        • (3)确定分组
        • (4)计算偶校验时校验码的值
        • (5)海明码纠正
      • 典型真题:海明码中校验位的数量
    • (5)CRC 循环冗余校验码
      • 实例1
        • (1)化简多项式
        • (2)信息码加 0 ,做模二除运算(不进位加法)
        • (3)得到的余数即为校验码
        • (4)用校验码替换信息码0的占位得到最终传输的数据![在这里插入图片描述](https://img-blog.csdnimg.cn/dc7c1503895a4a31af3f84b789f6b5e1.png)
      • 实例2
  • 6.指令
    • (1)指令周期
    • (2)指令执行的方式
      • (1)顺序方式
      • (2)重叠方式
      • (3)流水方式
        • 指令流水技术
        • 流水线建立时间与流水线周期
        • 流水线的执行时间
        • 典型真题:计算流水线的执行时间
        • 流水线的吞吐率、最大吞吐率、加速比
        • 典型真题:流水线的吞吐率、最大吞吐率、加速比
  • 7.高速缓冲存储器
    • (1)程序的局部性原理
      • 数据引用的局部性
      • 取指令的局部性
      • 局部性小结
    • (2)Cache 与主存、CPU 的交互过程
    • (3)Cache 的映像方法
      • 直接映像
      • 全相联映像
      • 组相联映像
      • 小结
    • (4)Cache 的性能
    • (5)写策略
      • 写回法
      • 写直达法
      • 标记法
    • (6)Cache 的替换策略
  • 8.磁盘存储器

1.冯·诺依曼体系结构

(1)冯·诺依曼体系结构思想

  • 采用二进制逻辑。指令和数据用二进制表示。
  • 程序存储执行。指令和数据以同等地位存于存储器,可按地址寻址。
  • 计算机由五大部件组成(运算器、控制器、存储器、输入设备、输出设备)

补充:

  • 指令由操作码和地址码组成。操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
  • 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
  • 以运算器为中心。输入输出设备与存储器间的数据处理通过运算器完成(现代计算机已转化为以存储器为中心)。

(2)五大部件介绍

  • 运算器:算术运算、逻辑运算。
  • 存储器:存放程序和数据。
  • 控制器:指挥程序运行。
  • 输入设备:将信息转换成计算机能识别的形式。
  • 输出设备:将结果转换成人们熟悉的形式。
    在这里插入图片描述

(3)现代计算机逻辑架构

  • 运算器和控制器合在一起称为中央处理器,简称CPU。
  • 以存储器为中心
    在这里插入图片描述

2.现代计算机硬件图 和 CPU

(1)现代计算机硬件图

在这里插入图片描述

(2)CPU

运算器结构

  • 算术逻辑单元 (Arithmetic&logical Unit,ALU):数据的算术运算和逻辑运算。
  • 累加器(Accumulator,ACC):为 ALU 提供一个工作区,用来暂存数据。
  • 乘商寄存器(MQ)。
  • 操作数寄存器(X)。
  • 程序状态寄存器(PSW):存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等;另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等。
  • 不同的计算机,部件组成是不一样的,下图为模型机例子。
    在这里插入图片描述

算术运算的执行过程

加法运算:5 + 2

  1. 将存储器中的 5 取出,放到 ACC 中。
  2. 将存储器中的 2 取出,暂存到 X 寄存器。
  3. ALU 计算,将结果存放到 ACC 中。

(3)执行CPU指令的过程

指令的组成

  • 指令:操作码 + 地址码
    在这里插入图片描述

一个指令周期的过程

  • 程序计数器(Program Counter,PC)中存储的是下一条指令所在的内存单元地址(程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC。在拥有 MMU 的情况下,其中存放的是虚拟地址,在无 MMU 平台中,其中存放的是物理地址)。因为冯诺依曼体系结构计算机中的指令是顺序存储在内存中的,所以 PC 每一次加一就得到了下一条指令的内存单元地址。
  • 指令寄存器(Instruction Register,IR)中存储的是即将执行的指令。
  • 指令译码器(Instruction Decoder,ID)对指令中的操作码字段进行分析解释。
  • 地址寄存器(Memory Address Register,MAR)用来存放预访问的指令在物理内存中的真实地址,其位数对应存储单元的个数。假如一个存储体中共有 8 个 存储单元,用 3 位二进制数就可以表示所有的地址,地址总线的个数为 3。
  • 数据寄存器(Memory Data Register,MDR)用来存放从存储体某单元取出的代码。
  • 时序部件:同步数字系统都需要“时钟” (Clock)。时钟是一种信号,它给数字系统中每一个时序逻辑指定一个开始工作的时间点。假想一条流水生产线:每一个加工步骤的工人在完成对一个部件的加工后, 如果啥也不管就直接扔给下一步骤的工人,同时下一步骤完成加工比前一工位慢;那么可以想见 ,部件就在比较慢的这个工位上堆积起来, 越堆越多, 最后造成生产线的阻塞。所以为了保持流水线流畅不阻塞的运转,我们需要找出最慢的工位, 并把最慢工位处理一个部件需要的时间作为 “时钟周期”,然后由工长通过哨音,每隔一个时钟周期吹响一次哨子,工人们只在哨子吹响的时候才把部件传递给下一工位,这样就可以保证流水线不再发生阻塞。时钟频率就是时钟周期的倒数,也就是上面例子中,每秒钟工长吹响哨子的次数。再扩展一下,如果这个流水线特别长,比如有数公里长,工长的哨音传播到每个工位的时间其实可以相差很久,这样一来哨音的同步作用就失效了。所以我们必须采取措施来保证每个工位能同时听到哨音。在实际的同步数字电路中,设计者采用专门的线路来传输时钟,并且通过对较短的路径插入时钟缓冲器来保证时钟到达每个时序元件的时间完全一致(延迟平衡)。异步系统不需要时钟,它一般用握手信号来保证系统的流畅运行。也就工位之间商量好了再传递部件。

在这里插入图片描述
取指:

  1. 程序计数器(Program Counter,PC)中存储的是指令的虚拟地址,送到总线上,去地址寄存器(Memory Address Register,MAR)找到指令的物理地址(现在的 MAR 已经集成到 CPU 中)。
  2. 根据地址映射表找到指令的物理地址。
  3. 把指令取出来放到数据寄存器(Memory Data Register,MDR)中(MDR 已经集成到 CPU 中)。
  4. 将指令从 MDR 送到指令寄存器(Instruction Register,IR)中。

分析:

  1. 从 IR 送到指令译码器(Instruction Decoder,ID)对指令进行翻译。
  2. CU 控制单元控制 CPU 做运算。

执行:

  1. 将 IR 中 “数字1” 的数据地址送到 MAR。
  2. 找到 “数字1” 的物理地址,将数据送到MDR。
  3. 将 MDR 中“数字1” 的数据送到累加器(Accumulator,ACC)中。
  4. 将 IR 中 “数字2” 的数据地址送到 MAR。
  5. 找到 “数字2” 的物理地址,将数据送到 MDR。
  6. 将 MDR 中“数字2” 的数据送到 X 寄存器中。
  7. ALU 计算,将结果存放到 ACC 中。

3.主存

(1)内存的构成方式

  • 冯诺依曼计算机把指令和数据以同等的地位存到主存(内存)当中。
  • 内存由一个大的存储体组成,存储体是由一个个的存储单元构成。
  • 一个存储单元的容量大小一般是8 bit(即1 Byte,1个字节)。一个 int 型变量占 4 个字节,那么需要用 4 个存储单元存储,变量的地址以存储单元的首地址为准 。
  • 每个存储单元都有一个地址,地址用十六进制数表示(前缀表示:0x00000000,后缀表示:00000000H)。
    在这里插入图片描述

(2)内存的寻址方式

  • 总线可以分为控制总线数据总线地址总线
    • 地址总线:传递地址的信息。假如需要 n 位二进制来表示所有的地址,则地址总线的个数为 n。假如一个存储体中共有 8 个 存储单元,用 3 位二进制数就可以表示所有的地址,地址总线的个数为 3。
    • 数据总线:传递数据的信息。CPU 一次能处理 n 位的数据,则数据总线的长度为 n 。n 的位数为一个字的长度。

在这里插入图片描述

(3)典型真题:内存容量计算

内存按字节编址:数据总线长度为 8。
地址总个数:CBFFFFH - A4000H + 1 = CC0000H - A4000H = 28000H 。
转为十进制数:28000H = 2 * (16 ^ 4)+ 8 * (16 ^ 3)= 2 ^ 17 + 2 * 15 = (2 ^ 7 + 2 * 5 )* (2 ^ 10)= 160 KB(个)。
芯片个数:160KB / 32KB = 5(个)。
在这里插入图片描述
内存按字节编址:数据总线长度为 8。
地址总个数:8FFFFH - 84000H + 1 = 90000H - 84000H = 0C000H 。
转为十进制数:0C000H = 12 * (16 ^ 3)= 48 * (2 ^ 10)= 48 KB(个)。
芯片个数:48 KB / 4 KB = 12(个)。
在这里插入图片描述

4.存储器

(1)存储器的分类

  • 按照构成材料分类:机械硬盘和固态硬盘均属于外部存储设备,机械硬盘属于磁存储器,固态硬盘属于半导体存储器(闪存颗粒)。
  • 按照工作方式分类:内存和外存属于 RAM。
  • 按照访问方式分类:内存属于按照地址访问的存储器,Cache属于按照内容访问的存储器。
    • 缓存补充
      • 本地缓存(如 HashMap、Guava Cache),本地缓存没有成熟的超时机制;其次本地缓存使用的是jvm的内存;各个进程间的缓存不可以共享;这种缓存没有持久化机制,随着服务的重启,缓存所占用的空间会释放掉;
      • 集中式缓存(如 redis),他们一般由成熟的 expire 超时机制;是和业务分离的独立的服务,使用的是 redis 本进程分配的缓存,不是 jvm 的缓存;这种缓存也叫分布式缓存,各个进程间可以共享,不需要在各个进程本地都缓存一份,可以保证各个进程间的缓存一致;支持持久化;

在这里插入图片描述

(2)典型真题:存储器的分类

在这里插入图片描述

(3)存储器之间的层级关系

在这里插入图片描述

5.校验码

  • 存储器中的信息保存在电容中。
  • 校验码的思想:信息的错误无法避免,但是如果信息错了,能够发现并且纠正错误。
    在这里插入图片描述

(1)码距与检错纠错公式

码距的判断:两个码字逐位比较,看有几位是不同的。
在这里插入图片描述

(2)码距与检错纠错举例

  • 长度为 1 时不能检测纠错
  • 长度为 2 时可以检测 1 个误码,不能纠错
  • 长度为 3 时可以检测 1 个误码,纠正1 个误码
    在这里插入图片描述
    在这里插入图片描述

(3)奇偶校验码

  • 结论:奇偶校验码只能发现奇数个位出错的情况,偶数个位出错发现不了。
  • 偶校验:在信息的 最前面 或者 最后面 加上1个校验位,使得传输数据中1的个数变为偶数。
  • 奇校验:在信息的 最前面 或者 最后面 加上1个校验位,使得传输数据中1的个数变为奇数。
    在这里插入图片描述

(4)海明码

  • 结论:建立在奇偶校验码的基础之上
  • 奇偶校验码只能发现奇数个位出错的情况,偶数个位出错发现不了。产生这种缺点的原因在于奇偶校验码的校验位加少了。
  • 海明码是建立在奇偶校验码的基础之上,但是不再是一串信息只加一个校验码,而是采用分组校验的方式(并不是简单的分组校验),具有检验并纠正一位错误的能力

实例

现在有一个二进制编码 1011,求按偶校验配置的海明码:

(1)计算分组数

  • 分组数 k 需满足公式: 2 ^ k >= n + k + 1(信息位是 n 位,校验位是 k 位)
    • 公式可转换为 2 ^ k - 1 >= n + k,n + k 为海明码的位数
  • k 应该取满足公式的最小值,以保证信息的传输速率
  • n 和 k 对应关系:
信息码位数(n)12~45~1112~2627~5758~120
校验码位数(k)234567

答:二进制编码 1011 的 n 为 4,由上可知,k 为 3,即分为 3 组。

(2)确定校验码位置

  • 校验码的位置:必须是在 2 ^ n 位置(n 从 0 开始,分别代表从右边数起分别是1、2、4、8、16…)。
  • 信息码的位置:非 2 ^ n 位置。
    在这里插入图片描述
    答:校验码在编码中的位置为:D4 D3 D2 P3 D1 P2 P1

(3)确定分组

在这里插入图片描述

位置(从右至左)所在位置的二进制编码
P1(校验码)0011
P2(校验码)0102
D10111,2
P3(校验码)1003
D21011,3
D31102,3
D41111,2,3

答:

  • 第一组:P1(校验码),D1(值为1),D2(值为0),D4(值为1)
  • 第二组:P2(校验码),D1(值为1),D3(值为1),D4(值为1)
  • 第三组:P3(校验码),D2(值为0),D3(值为1),D4(值为1)

(4)计算偶校验时校验码的值

  • 偶校验:看1的个数,如果是偶数,校验码为0,如果是奇数,校验码为1。

答:

  • P1 = 0
  • P2 = 1
  • P3 = 0

D4(1) D3(1) D2(0) P3(0) D1(1)P2(1) P1(0),生成的海明码为:1 1 0 0 1 1 0。

(5)海明码纠正

假设传输中 D3 发生了错误,原码变为了: 1 0 0 0 1 1 0,如何检错纠错:

答:

  • 第一组:P1(0),D1(1),D2(0),D4(1)
    • 与校验值码值对比相同:0
  • 第二组:P2(1),D1(1),D3(0),D4(1)
    • 与校验码的值对比不同:1
  • 第三组:P3(0),D2(0),D3(0),D4(1)
    • 与校验码的值对比不同:1

检错结果的二进制编码为 110 ,转换为十进制为 6,即第 6 位发生了错误,纠正后为 1 1 0 0 1 1 0。

典型真题:海明码中校验位的数量

在这里插入图片描述

(5)CRC 循环冗余校验码

实例1

在这里插入图片描述

(1)化简多项式

  • 把 X 都当成是 2,得到初步的结果。
  • 把缺少的 2 ^ 3, 2 ^ 2 虚拟上去。
  • 把题目中现有的 2 ^ 4、2 ^ 1、2 ^ 0 用二进制 1 代替,虚拟出来的 2 ^ 3、2 ^ 2 用 0 代替。

答:
多项式化简为:1 0 0 1 1。
在这里插入图片描述

(2)信息码加 0 ,做模二除运算(不进位加法)

  • 信息码后面加 0 ,多项式最高是几,就加几个 0。
  • 除数和被除数做模二除运算(不进位加法)
  • 够除时商为 1,不够除时商为 0。
    在这里插入图片描述

(3)得到的余数即为校验码

答:
余数为 1 1 0 0。

(4)用校验码替换信息码0的占位得到最终传输的数据在这里插入图片描述

答:
最终传输的数据 = 信息位 + 校验位 = 1 0 1 1 1 1 1 0 0

实例2

在这里插入图片描述

6.指令

(1)指令周期

  • 指令周期:取出(解释)并执行一条指令所需的全部时间。
  • 一个指令周期可以大概分为:取指周期、分析周期、执行周期。
    在这里插入图片描述

(2)指令执行的方式

(1)顺序方式

在这里插入图片描述

(2)重叠方式

  • 假设每一段的执行时间是相同的。
    在这里插入图片描述

(3)流水方式

指令流水技术

在这里插入图片描述

流水线建立时间与流水线周期

  • 流水线周期:△t,执行时间最长的一段。如取指 2ns、分析 3ns、执行 1ns,则 △t 为 3ns。
  • 流水线建立时间:第一条指令执行完毕所需的时间。理论上是各部分时间之和(t1 + t2 + … + tk),实践中每个部分的执行时间是相同的,都是 △t。
    在这里插入图片描述
    在这里插入图片描述

流水线的执行时间

  • 理论公式:(t1 + t2 + … + tk) + (n - 1)* △t
  • 实践公式:k * △t + (n -1 )* △t
    在这里插入图片描述

典型真题:计算流水线的执行时间

在这里插入图片描述
答:

  • 流水线周期是 2ns。
  • 理论公式:(2 + 2 + 1)+ 99 * 2 = 203ns。
  • 实践公式:3 * 2 + 99 * 2 = 6 + 204ns。

流水线的吞吐率、最大吞吐率、加速比

  • 最大吞吐率:指令周期的倒数。
  • 流水线加速比:串行方式执行时间 / 流水线方式执行时间
    在这里插入图片描述

典型真题:流水线的吞吐率、最大吞吐率、加速比

在这里插入图片描述

答:

  • 最大吞吐率 = 指令周期的倒数 = 1 / (3△t)
  • 加速比 = (9△t * 10)/ (9△t + 9 * 3△t)= 90△t / 36△t = 5 : 2

7.高速缓冲存储器

在这里插入图片描述

(1)程序的局部性原理

一个优秀的程序、优美的代码,一般都具有良好的局部性。简洁、高效是每个程序员的追求。了解程序的局部性,能编写出更高效的代码。因为有良好局部性的程序能更好的利用缓存。

  • 时间局部性(temporal locality):被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
  • 空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

参考:局部性原理浅析——良好代码的基本素质

数据引用的局部性

在这里插入图片描述

  • 图(a)中的 sum 具有良好的时间局部性。因为在 for 循环结束之前,每次执行循环体都有对 sum 的访问。sum 没有空间局部性,因为sum 是标量,即通过 sum 这个地址(可认为是基址)只能得到一个值。
  • 循环体中对 a[][] 的引用具有良好的空间局部性。for循环体中,是以行序为主序对元素进行遍历,也就是说内层循环先访问第一行的元素,然后第二行。图 (b)中是二维数组的存储情况。可以看出,在存储器中也是按照行序为主序来进行存储的,存储顺序和访问顺序一致,所以对 a[][] 的引用有良好的空间局部性。对 a[][] 的引用没有时间局部性,因为每个元素只被访问一次。
  • 按顺序、连续的对数组进行引用,我们称为步长为1的引用模式。同理,在一个连续的向量中,每隔 k 个元素对向量进行访问,称为步长为 k 的引用。一般来说,随着步长的增加,空间局部性会下降对于多维数组而言,步长对空间局部性的影响显得尤为重要。例子中对a[][] 实行的是步长为1 的引用。
    继续看下面的例子:
  • 例子中交换了索引 i、j 的位置。也就是说在对 a[][] 进行遍历的时候,以列序为主序。即先访问第一列,在访问第二列。图 (b)中是二维数组的存储情况,可以看出,对 a[][] 的存储仍是行序为主序。这意味着每访问一个元素,就要跳过 k 个存储器才能访问下一个。于是得到一个简单的结论:该例中对 a[][] 的访问是以步长为 k 的模式(k 为每行的元素个数)没有良好的空间局部性。
  • 在对向量的访问中,如果访问数序和存储顺序一致,并且是连续访问,那么这种访问具有良好的空间局部性。

取指令的局部性

  • 指令存在于存储器中,cpu 要读指令就必须取出指令。所以也能评价对于取指令的局部性。
  • 在 for 循环中,循环体内的指令多次被执行,所以有良好的时间局部性。
  • 循环体中的指令是桉顺序执行的,有良好的空间局部性(指令在存储器中是顺序存放的)。

局部性小结

  • 重复引用同一个变量有良好的时间局部性。
  • 对于步长为 k 的引用的程序,步长越小,空间局部性越小。步长为 1 的引用具有良好的空间局部性。k 越大,空间局部性越差。
  • 对于取指令来说、循环有较好的时间和空间局部性。

(2)Cache 与主存、CPU 的交互过程

  1. CPU 将数据的主存地址发送到地址总线上。
  2. 主存地址与主存Cache地址变换机构做映射(主存和 Cache 不是一一对应的关系,主存当中的第一页可能存在 Cache 中的任何一页当中,映射关系在操作系统章节)。
  3. 判断要找的数据在不在 Cache 当中。
    • 命中:将映射到的 Cache 内块号与块内地址拼接起来得到信息在 Cache 中的真正地址,经过数据总线把数据取出来。
    • 不命中:判断 Cache 中还有没有相应的空间,如果有,直接把主存中这部分内容装入 Cache。如果没有,经过 Cache 替换机构,用一定替换算法,把需要的内容替换到 Cache 中,不需要的数据替换出来,放入主存中。

在这里插入图片描述

(3)Cache 的映像方法

直接映像

  • 主存分为了 128 个区,每个区的大小相同。每个区分为 16 个页,每一页的大小相同。Cache 的大小等于每个区的大小。
  • 每个区的第 0 页都映射到 Cache 的第 0 页,每个区的第 1 页都映射到 Cache 的第 1 页,以此类推。
  • Cache 中除了划分的页,还有标记位(记录相映射的内存页数)。
    在这里插入图片描述
  • 优点:地址变换简单
  • 缺点:不灵活,页冲突率高

全相联映像

  • 主存和 Cache 不分区。
  • 主存中的任何一页都可以映射到 Cache 中的任何一页。
    在这里插入图片描述
  • 优点:不会有冲突的情况
  • 缺点:不能从主存的页号直接获得 Cache 的页号,变换比较复杂,速度比较慢,需要查看所有标记位

组相联映像

  • 主存分区,每个区又划分成若干个组。Cache 的大小等于每个区的大小,内部也划分成组。
  • 组间是直接映像,每个区的第 0 组都映射到 Cache 的第 0 组,每个区的第 1 组都映射到 Cache 的第 1 组,以此类推。
  • 组内是全相联映像
    在这里插入图片描述
  • 缺点:更加复杂。

小结

  • 距离 CPU 近:直接映像或组相联映像,速度快。
  • 距离 CPU 远:全相联映像。、

(4)Cache 的性能

  • Cache 的平均访问时间 = 访问命中率 * Cache 的存取时间 + (1 - 访问命中率)* 主存的访问时间 = 98% * 2ns + 2% * 5ns。
    在这里插入图片描述

(5)写策略

写回法

在这里插入图片描述

写直达法

在这里插入图片描述

标记法

在这里插入图片描述

(6)Cache 的替换策略

在这里插入图片描述
在这里插入图片描述

8.磁盘存储器

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

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

相关文章

微软正式宣布 Win10 死刑,Win11 LTSC要来了

微软在 2015 年带来了 Windows 10,PC 操作系统也由此进入到一个新的篇章。 如此前每代新系统一样,Windows 10 发布之初,稳定性不足,BUG 众多。 全新的界面设计、交互逻辑以及操作习惯上的强行改变让其很长一段时间都不那么受待见。…

static的常见用法

参考链接:https://blog.csdn.net/guotianqing/article/details/79828100 C语言 作用:提高代码的模块化,提高代码的可读性。 普通的局部变量:在最开始的时候不会进行初始化,存储在栈空间,使用完毕就会释放…

100ASK_全志V853-PRO开发板 环境配置及编译烧写

0.前言 本章主要介绍关于100ASK-V853-PRO开发板的Tina SDK包的下载和编译打包生成镜像,并将镜像烧录到100ASK-V853-PRO开发板上。在进行100ASK-V853-PRO开发板的环境配置前需要获取配置虚拟机系统,可以参考:https://dongshanpi.com/Dongshan…

「蓝桥杯」扫地机器人

扫地机器人 题目描述 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所示。 走廊内部署了 K 台扫地机器人,其中第 i 台在第 A_i 个方格区域中。已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干…

图的着色学习

图的边着色 排课表问题:设有m位教师,n个班级,教师xi要给班级yj上pij节课,求如何在最少节次排完所有课。 图论模型:令X{x1,x2,…,xm},Y{y1,y2,…,yn},xi与yj间连pij条边,得偶图G(X,…

【prism系列】子窗口中如何实现区域(Region)管理

前言 在之前系列文章《Region的用法》中,我提到无法在子窗口中实现区域管理,最近经过尝试发现其实是可以的,只是少了一个步骤而已!Region具体细节还请参考这篇。 【Prism系列】Region的用法_prism region_code bean的博客-CSDN博…

一文全览各种 ES 查询在 Java 中的实现

ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现 以下为摘录自用,非本人撰写 本文基于elasticsearch 7.13.2版本,es从7.0以后,发生了很大的更新。7.3以后,已经不推荐使用TransportClient这个client&#xf…

浅谈自动驾驶技术

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

【Linux】5. 开发工具的使用(gcc/gdb/makefile)

Linux编译器-gcc/g使用 1. 复习编译链接过程 2. 理解选项当中的含义 这些选项难记住,怎么办? – ESc - iso(对应) gcc选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面-S 编译到汇编语言不进行汇编和链接-c 编译到目标代码-o …

基于OpenHarmony开发的健康生活应用(ArkTS)

健康生活应用(ArkTS) 介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用,主要功能包括: 用户可以创建最多6个健康生活任务(早起,喝水,吃苹果,每日微笑,刷牙&#…

【python语法大练习】【题库】Python 基础练习题库大全

【题库】Python 基础练习题库大全 编程题1. 从键盘输入两个数,求它们的和并输出2. 从键盘输入三个数到a,b,c中,按公式值输出 (input().split())3. 输出“人生苦短,我学Python”4. 计算 111213...m (sum函数)5. 计算分段函数[1] (format)6. 阶…

Ubuntu连接Xshell

Ubuntu连接Xshell 1、安装ssh,开启服务 1、安装ssh sudo apt-get install openssl-server 2、启动ssh服务 /etc/init.d/ssh start 3、修改文件,允许远程登陆 sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password #默认为禁止登录 PermitR…

ESP-IDF中的event loop library事件循环库

文章目录 简介事件循环库的使用示例: 简介 Event Loop Library是一种信号传递机制,事件循环库允许组件声明事件,其他组件可以向其注册处理程序——当这些事件发生时将执行的代码。这允许松散耦合的组件将所需的行为附加到其他组件的状态更改…

华为OD机试(20222023)真题目录 + 考点 + 通过率

目录 华为OD机试是什么?华为OD面试流程?华为OD机试通过率高吗?华为OD薪资待遇?华为OD晋升空间?华为OD刷题列表,一天三题,刷出算法新高度,刷出人生新际遇。 大家好,我是哪…

基于Hebb学习的深度学习方法总结

基于Hebb学习的深度学习方法总结 0 引言1 前置知识1.1 Hebb学习规则1.2 Delta学习规则 3 SoftHebb学习算法3.1 WTA(Winner Take All)3.2 SoftHebb3.3 多层Hebb网络3.4 Hebb学习的性能测评 参考文献 0 引言 总所周知,反向传播算法(back-propagating, BP&…

你想要的【微前端】都在这里了! | 京东云技术团队

作者:京东零售 郑炳懿 开篇: 如果你不知道微前端是什么,或者不知道微前端能解决什么问题,那么你可能不需要微前端。 在我看来,对于每一个没有使用过的新技术,都应该有以下几个过程: 1、调研…

【Android签名文件META-INF】

android安装包apk中,有一个META-INF文件夹,该文件夹下面必须有以下几个扩展名的文件:.SF,.RSA,*.MF。一般为MANIFEST.MF,包名.SF,包名.RSA(也有可能是EC或者DSA)。 其中…

聊聊ClickHouse向量化执行引擎-过滤操作

俄罗斯Yandex开发的ClickHouse是一款性能黑马的OLAP数据库,其对SIMD的灵活运用给其带来了难以置信的性能。本文我们聊聊它如何对过滤操作进行SIMD优化。 基本思想 1、有一个数组data,即ColumnVector::data,存放数据 2、使用uint8类型&#xf…

Metasploit渗透测试:工作区使用帮助

目录 ​编辑 help 查看工作区 添加工作区 显示工作区详情

《智能手机心率和呼吸率测量算法的前瞻性验证》阅读笔记

目录 一、论文摘要 1.背景 2.方法 3.结果 4.结论 二、论文十问 Q1:论文试图解决什么问题? Q2:这是否是一个新的问题? Q3:这篇文章要验证一个什么科学假设? Q4:有哪些相关研究&#xff…