计算机组成原理——CPU与存储器连接例题
计算机组成原理——CPU与存储器连接例题
设CPU共有16根地址线和8根数据线,并用(MREQ) ̅作为访存控制信号(低电平有效),(WR) ̅作为读/写命令信号(高电平读,低电平写)。现有下列存储芯片:1K4位RAM,4K8位RAM,2K*8位ROM,以及74138译码器和各种门电路,如下图所示。画出CPU和存储芯片的连接图。要求
(1) 主存地址空间分配:A000H ~ A7FFH为系统程序区;A800H ~ AFFFH为用户程序区
(2) 合理选用上述存储芯片,说明各选几片
(3) 详细画出存储芯片的片选逻辑
题目分析
1. CPU 和控制信号
- CPU:
- 16 根地址线 (A0~A15),寻址范围 0000H~FFFFH(64KB)。
- 8 根数据线 (D0~D7)。
- 控制信号:
- (MREQ)̅:访存控制信号,低电平有效。
- (WR)̅:读/写控制信号,高电平为读,低电平为写。
2. 存储芯片
- 可选芯片:
- 1K×4 位 RAM(1024×4 位)。
- 4K×8 位 RAM(4096×8 位)。
- 2K×8 位 ROM(2048×8 位)。
- 工具:74138 译码器和各种门电路。
3. 地址空间分配
- 系统程序区:A000H~A7FFH(2KB)。
- 用户程序区:A800H~AFFFH(2KB)。
4. 要求
- 合理选择存储芯片,说明选用几片。
- 写出每片存储芯片的二进制地址范围。
- 详细画出片选逻辑。
存储芯片选择与地址范围
1. 地址空间分析
- 系统程序区 (A000H~A7FFH):
- A000H = 1010 0000 0000 0000。
- A7FFH = 1010 0111 1111 1111。
- 容量:A7FFH - A000H + 1 = 2KB(2048 字节)。
- A15~A11 = 10100,A10~A0 变化。
- 用户程序区 (A800H~AFFFH):
- A800H = 1010 1000 0000 0000。
- AFFFH = 1010 1111 1111 1111。
- 容量:AFFFH - A800H + 1 = 2KB(2048 字节)。
- A15~A11 = 10101,A10~A0 变化。
2. 存储芯片选择
- 系统程序区 (2KB,ROM):
- 需要 2K×8 位 ROM,正好匹配。
- 选用 1 片 2K×8 位 ROM。
- 地址线:2K = 2048 = 2^11,需 A0~A10。
- 用户程序区 (2KB,RAM):
- 需要 2KB,但没有直接的 2K×8 位 RAM。
- 可选:
- 1K×4 位 RAM × 4 片,组合成 2K×8 位。
- 两个 1K×4 位 RAM 组成 1K×8 位,两个 1K×8 位再组成 2K×8 位。
- 4K×8 位 RAM × 1 片,仅用 2KB。
- 但浪费 2KB 容量,不够经济。
- 1K×4 位 RAM × 4 片,组合成 2K×8 位。
- 选用 4 片 1K×4 位 RAM,组合成 2K×8 位。
- 地址线:1K = 1024 = 2^10,单个 1K×4 位 RAM 需 A0~A9;两组 1K×8 位共用 A10 区分。
3. 存储芯片数量
- 1 片 2K×8 位 ROM。
- 4 片 1K×4 位 RAM。
4. 存储芯片地址范围
- 2K×8 位 ROM:
- A000H~A7FFH。
- 二进制:1010 0000 0000 0000 ~ 1010 0111 1111 1111。
- 1K×4 位 RAM × 4(组合成 2K×8 位):
- A800H~AFFFH。
- 分为两组 1K×8 位:
- RAM1 和 RAM2 (A10 = 0):A800H~ABFFH。
- 二进制:1010 1000 0000 0000 ~ 1010 1011 1111 1111。
- RAM3 和 RAM4 (A10 = 1):AC00H~AFFFH。
- 二进制:1010 1100 0000 0000 ~ 1010 1111 1111 1111。
- RAM1 和 RAM2 (A10 = 0):A800H~ABFFH。
片选逻辑设计
1. 片选信号需求
- ROM:
- 地址范围:A15~A11 = 10100。
- 片选条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0。
- RAM:
- 地址范围:A15~A11 = 10101。
- 片选条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1。
- 细分:
- RAM1 和 RAM2:A10 = 0。
- RAM3 和 RAM4:A10 = 1。
2. 74138 译码器连接
- 输入:
- A = A11。
- B = A12。
- C = A13。
- 使能:
- G1 = A15(高电平有效)。
- G2A = (A14)̅(低电平有效,需反相器)。
- G2B = (MREQ)̅(低电平有效)。
- 输出:
- Y4 (A13 A12 A11 = 100):A000H~A7FFH,接 ROM 的 CS̅。
- Y5 (A13 A12 A11 = 101):A800H~AFFFH,接 RAM 的片选控制。
3. RAM 片选细分
- Y5 控制 A800H~AFFFH,需用 A10 进一步区分:
- RAM1 和 RAM2 的 CS̅:Y5 AND (A10)̅。
- RAM3 和 RAM4 的 CS̅:Y5 AND A10。
4. RAM 读写控制
- RAM 写使能 (WE)̅:(MREQ)̅ AND (WR)̅(需与门)。
- 读操作:(WR)̅ = 1 时,RAM 输出数据。
CPU 与存储器连接图设计
1. 地址线连接
- ROM:
- A0~A10 接 ROM 的地址引脚。
- RAM:
- RAM1RAM4:A0A9 接地址引脚。
- A10 用于片选区分。
2. 数据线连接
- ROM:
- D0~D7 接 ROM 的数据引脚。
- RAM:
- RAM1 和 RAM3:D0~D3。
- RAM2 和 RAM4:D4~D7。
3. 片选逻辑
- 74138 译码器:
- 输入:A = A11, B = A12, C = A13。
- 使能:G1 = A15, G2A = (A14)̅, G2B = (MREQ)̅。
- 输出:Y4 接 ROM CS̅,Y5 接 RAM 片选。
- RAM 片选:
- RAM1 和 RAM2:Y5 AND (A10)̅。
- RAM3 和 RAM4:Y5 AND A10。
4. 控制信号
- RAM (WE)̅:(MREQ)̅ AND (WR)̅。
连接图描述
作图如下:
以下是连接图的文字描述:
-
CPU:
- A0~A15:地址线。
- D0~D7:数据线。
- (MREQ)̅ 和 (WR)̅:控制信号。
-
2K×8 位 ROM:
- 地址:A0~A10。
- 数据:D0~D7。
- CS̅:接 74138 的 Y4。
-
1K×4 位 RAM × 4:
- RAM1 和 RAM2(组成 1K×8 位):
- 地址:A0~A9。
- 数据:RAM1 (D0~D3),RAM2 (D4~D7)。
- CS̅:Y5 AND (A10)̅。
- RAM3 和 RAM4(组成 1K×8 位):
- 地址:A0~A9。
- 数据:RAM3 (D0~D3),RAM4 (D4~D7)。
- CS̅:Y5 AND A10。
- WE̅:(MREQ)̅ AND (WR)̅。
- RAM1 和 RAM2(组成 1K×8 位):
-
74138 译码器:
- A = A11, B = A12, C = A13。
- G1 = A15, G2A = (A14)̅(加反相器),G2B = (MREQ)̅。
- Y4 接 ROM CS̅。
- Y5 接两个与门:
- 与门 1:Y5 AND (A10)̅ → RAM1 和 RAM2 的 CS̅。
- 与门 2:Y5 AND A10 → RAM3 和 RAM4 的 CS̅。
-
与门(RAM 写控制):
- 输入:(MREQ)̅ 和 (WR)̅。
- 输出:接 RAM1~RAM4 的 WE̅。
回答总结
-
存储芯片选择:
- 1 片 2K×8 位 ROM。
- 4 片 1K×4 位 RAM。
-
二进制地址范围:
- ROM:1010 0000 0000 0000 ~ 1010 0111 1111 1111 (A000H~A7FFH)。
- RAM1 和 RAM2:1010 1000 0000 0000 ~ 1010 1011 1111 1111 (A800H~ABFFH)。
- RAM3 和 RAM4:1010 1100 0000 0000 ~ 1010 1111 1111 1111 (AC00H~AFFFH)。
-
片选逻辑:
- 74138 译码器:
- 输入:A11, A12, A13。
- 使能:A15, (A14)̅, (MREQ)̅。
- Y4 控制 ROM。
- Y5 结合 A10 控制 RAM:
- Y5 AND (A10)̅ → RAM1 和 RAM2。
- Y5 AND A10 → RAM3 和 RAM4。
- 74138 译码器:
拓展知识:片选原理
什么是片选?
片选(Chip Select, 简称 CS)是存储器系统中用来选择某个存储芯片的控制信号。CPU 通常会连接多个存储芯片(如 ROM 和 RAM),但在某一时刻,CPU 只会与一个存储芯片进行通信(读或写数据)。片选信号的作用就是“激活”某个存储芯片,让它与 CPU 通信,而其他芯片保持“未选中”状态。
- 片选信号:通常用 CS 或 CE(Chip Enable)表示,低电平有效时(CS̅ = 0),芯片被选中;高电平(CS̅ = 1)时,芯片未被选中。
- 片选的本质:通过地址线和控制信号,判断当前 CPU 访问的地址属于哪个存储芯片的范围,从而激活对应的芯片。
片选的原理
1. 为什么需要片选?
- CPU 有 16 根地址线,可以寻址 64KB 的地址空间(0000H~FFFFH)。
- 但存储器系统由多个芯片组成,每个芯片只占用一部分地址空间。例如:
- ROM:A000H~A7FFH(2KB)。
- RAM:A800H~AFFFH(2KB)。
- 当 CPU 访问某个地址时(比如 A500H),需要判断这个地址属于哪个芯片的范围:
- A500H 属于 ROM(A000H~A7FFH),所以选中 ROM。
- 如果访问 AC00H,属于 RAM(A800H~AFFFH),则选中 RAM。
- 片选信号通过地址线的高位部分来判断地址范围,并生成对应的控制信号。
2. 片选信号如何生成?
- 地址解码:通过地址线的高位部分,判断当前地址属于哪个芯片的范围。
- 例如,A000H~A7FFH 的高位 A15~A11 = 10100,A800H~AFFFH 的高位 A15~A11 = 10101。
- 译码器:使用译码器(如 74138)将高位地址解码,生成片选信号。
- 控制信号:结合 CPU 的控制信号(如 (MREQ)̅),确保只有在访存时才激活片选。
3. 片选的实现
- 硬件实现:通过译码器(如 74138)和逻辑门(如与门、或门)生成片选信号。
- 逻辑条件:
- 某个芯片被选中时,其 CS̅ = 0。
- 条件:当前地址在该芯片的范围内,且 CPU 正在访问存储器((MREQ)̅ = 0)。
结合题目解释片选原理
1. 存储芯片和地址范围
- ROM:2K×8 位,A000H~A7FFH。
- 2KB = 2048 字节,地址线 A0~A10(2^11 = 2048)。
- 高位:A15~A11 = 10100。
- RAM:4 片 1K×4 位 RAM,组合成 2K×8 位,A800H~AFFFH。
- 2KB,地址线 A0~A10。
- 高位:A15~A11 = 10101。
- 细分:
- RAM1 和 RAM2(1K×8 位):A800H~ABFFH,A10 = 0。
- RAM3 和 RAM4(1K×8 位):AC00H~AFFFH,A10 = 1。
2. 片选信号的生成
(1) 判断地址范围
- ROM:
- A15~A11 = 10100。
- 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0。
- RAM:
- A15~A11 = 10101。
- 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1。
- 细分:
- RAM1 和 RAM2:A10 = 0。
- RAM3 和 RAM4:A10 = 1。
(2) 使用 74138 译码器
- 74138 是一个 3-8 译码器:
- 输入:A, B, C(3 位输入)。
- 输出:Y0~Y7(8 个输出,低电平有效)。
- 使能:G1(高电平有效),G2A 和 G2B(低电平有效)。
- 连接方式:
- 输入:A = A11, B = A12, C = A13。
- 使能:
- G1 = A15(A15 = 1 时,地址在 8000H~FFFFH)。
- G2A = (A14)̅(A14 = 0 时,地址在 8000H~BFFFH)。
- G2B = (MREQ)̅(访存时有效)。
- 输出:
- 当 A15 = 1, A14 = 0, (MREQ)̅ = 0 时,74138 工作。
- Y4 (A13 A12 A11 = 100):对应 A000H~A7FFH,接 ROM 的 CS̅。
- Y5 (A13 A12 A11 = 101):对应 A800H~AFFFH,接 RAM 的片选控制。
(3) RAM 的片选细分
- Y5 控制整个 A800H~AFFFH(2KB),但 RAM 分为两组(每组 1K×8 位),需要用 A10 进一步区分:
- RAM1 和 RAM2(A800H~ABFFH):A10 = 0。
- CS̅ = Y5 AND (A10)̅。
- RAM3 和 RAM4(AC00H~AFFFH):A10 = 1。
- CS̅ = Y5 AND A10。
- RAM1 和 RAM2(A800H~ABFFH):A10 = 0。
- 这里需要两个与门:
- 与门 1:输入 Y5 和 (A10)̅,输出接 RAM1 和 RAM2 的 CS̅。
- 与门 2:输入 Y5 和 A10,输出接 RAM3 和 RAM4 的 CS̅。
3. 片选的工作过程
-
例子 1:CPU 访问地址 A500H:
- A500H = 1010 0101 0000 0000。
- A15~A11 = 10100,符合 ROM 范围。
- 74138:
- A15 = 1, A14 = 0, (MREQ)̅ = 0,译码器使能。
- A13 A12 A11 = 100,Y4 = 0。
- ROM 的 CS̅ = 0,ROM 被选中。
- Y5 = 1,RAM 未选中。
- CPU 通过 A0~A10(0101 0000 0000)访问 ROM 内的具体地址。
-
例子 2:CPU 访问地址 A900H:
- A900H = 1010 1001 0000 0000。
- A15~A11 = 10101,符合 RAM 范围。
- 74138:
- A15 = 1, A14 = 0, (MREQ)̅ = 0,译码器使能。
- A13 A12 A11 = 101,Y5 = 0。
- Y4 = 1,ROM 未选中。
- Y5 = 0:
- A10 = 0,Y5 AND (A10)̅ = 0,RAM1 和 RAM2 的 CS̅ = 0,被选中。
- A10 = 0,Y5 AND A10 = 1,RAM3 和 RAM4 未选中。
- CPU 通过 A0~A9(001 0000 0000)访问 RAM1 和 RAM2 内的具体地址。
片选的硬件实现
1. 74138 译码器
- 作用:将高位地址(A13~A11)解码,生成 ROM 和 RAM 的片选信号。
- 连接:
- A = A11, B = A12, C = A13。
- G1 = A15, G2A = (A14)̅, G2B = (MREQ)̅。
- Y4 接 ROM 的 CS̅。
- Y5 用于 RAM 的片选。
2. 逻辑门
- RAM 的片选需要细分:
- 用两个与门结合 Y5 和 A10:
- Y5 AND (A10)̅ → RAM1 和 RAM2。
- Y5 AND A10 → RAM3 和 RAM4。
- 用两个与门结合 Y5 和 A10:
- (A10)̅ 需要一个反相器生成。
3. 读写控制
- RAM 还需要读写控制:
- 写使能 (WE)̅:(MREQ)̅ AND (WR)̅(用一个与门生成)。
- 读操作:(WR)̅ = 1 时,RAM 输出数据。
总结:片选的要点
- 片选的核心:通过地址解码,判断当前地址属于哪个芯片的范围,生成对应的 CS̅ 信号。
- 地址解码:用高位地址(A15~A11)区分 ROM 和 RAM,A10 进一步细分 RAM。
- 译码器作用:74138 译码器将高位地址解码为片选信号。
- 控制信号:结合 (MREQ)̅ 确保只有访存时才激活片选。
题目中的片选逻辑(详细说明)
1. ROM 片选
- 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0, (MREQ)̅ = 0。
- 74138 输出:Y4 = 0 时,ROM 被选中。
2. RAM 片选
- 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1, (MREQ)̅ = 0。
- 74138 输出:Y5 = 0。
- 细分:
- RAM1 和 RAM2:Y5 AND (A10)̅ = 0 时选中。
- RAM3 和 RAM4:Y5 AND A10 = 0 时选中。
3. 连接图中的片选部分
- 74138 译码器:
- 输入:A11, A12, A13。
- 使能:A15, (A14)̅, (MREQ)̅。
- 输出:Y4 → ROM,Y5 → RAM。
- 与门:
- Y5 AND (A10)̅ → RAM1 和 RAM2。
- Y5 AND A10 → RAM3 和 RAM4。
再次结合题目总结
- 片选逻辑:
- ROM:Y4 直接控制。
- RAM:Y5 结合 A10 控制,分为两组。
- A10 的作用:A10 用于区分 RAM 的两个 1K×8 位块(A800H~ABFFH 和 AC00H~AFFFH)。
- 74138 的作用:将 A15~A11 解码,生成 ROM 和 RAM 的片选信号。
相关文章:
计算机组成原理——CPU与存储器连接例题
计算机组成原理——CPU与存储器连接例题 设CPU共有16根地址线和8根数据线,并用(MREQ) ̅作为访存控制信号(低电平有效),(WR) ̅作为读/写命令信号(高电平读,低电平写)。现有下列存储芯片&#…...
SQL 外键(Foreign Key)详细讲解
1. 什么是外键? 定义:外键是数据库表中的一列(或一组列),用于建立两个表之间的关联关系。外键的值必须匹配另一个表的主键(Primary Key)或唯一约束(Unique Con…...
B3647 【模板】Floyd
题目链接:点击进入 题目 思路 代码 #include <bits/stdc.h> #define inf 0x3f3f3f3f using namespace std; const int maxn 1e6 10;int n,m,g[110][5000];int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;memse…...
配置镜像端口和观察接口
top: 在G0/0/2上抓包通过其他端口ping pc4 可以看到 Wireshark 抓包没有任何反应,做个镜像端口并配置(观察接口和镜像接口) observe-port interface g0/0/2 #命令配置观察端口mirror to observe-port both …...
爬虫解决debbugger之替换文件
鼠鼠上次做一个网站的时候,遇到的debbugger问题,是通过打断点然后编辑断点解决的,现在鼠鼠又学会了一个新的技能 首先需要大家下载一个reres的插件,这里最好用谷歌浏览器 先请大家看看案例国家水质自动综合监管平台 这里我们只…...
erlang的安装-linux
1:解压 tar -zxvf 安装包 2:进入解压的目录执行: ./configure --prefix/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac 3:编译安装: m…...
Android Coil 3默认P3色域图加载/显示不出来
Android Coil 3默认P3色域图加载/显示不出来 解决,需要在Androidmanifest.xml使用Coil 3的activity配置属性: <activityandroid:colorMode"wideColorGamut"...</activity>...
【LaTeX】安装
Register - Overleaf, 在线LaTeX编辑器 注册Overleaf 安装 Latex2022 安装教程(附安装资源)_tex2022安装教程-CSDN博客 注:先安装 texlive,再安装TexStudio \documentclass{article} % 这里是导言区 \begin{document}Hello, wor…...
【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)
目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码(基于matlab)A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码(基于matlab) A题 小行星轨…...
【KWDB 创作者计划】KWDB 数据库全维度解析手册
——从原理到实践,构建下一代数据基础设施 第一章:KWDB 设计哲学与技术全景 1.1 为什么需要 KWDB? 在数据爆炸与业务场景碎片化的今天,传统数据库面临三大挑战:扩展性瓶颈(单机性能天花板ÿ…...
低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡
低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡 在科技迅猛发展的当下,软件开发领域新思潮与新技术不断涌现,引发行业内外热烈探讨。近日,笔者收到这样一个颇具争议的问题:“低代码开发能取代后端吗?…...
LeetCode hot 100—最长回文子串
题目 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cb…...
蓝桥杯知识总结
文章目录 1.常用的数学方法2.大小写转换3.数组和集合排序数组排序集合排序 4.控制小数位数5.栈6.队列7.字符串相关方法8.十进制转n进制模板字符转为十进制某进制转化为十进制 9.前缀和10.差分11.离散化12.双指针13.二分14.枚举模板组合型枚举模板排列型枚举模板 15.搜索算法BFS…...
leetcode:2839. 判断通过操作能否让字符串相等 I(python3解法)
难度:简单 给你两个字符串 s1 和 s2 ,两个字符串的长度都为 4 ,且只包含 小写 英文字母。 你可以对两个字符串中的 任意一个 执行以下操作 任意 次: 选择两个下标 i 和 j 且满足 j - i 2 ,然后 交换 这个字符串中两个…...
Python Lambda表达式详解
Python Lambda表达式详解 1. Lambda是什么? Lambda是Python中用于创建匿名函数(没有名字的函数)的关键字,核心特点是简洁。它适用于需要临时定义简单函数的场景,或直接作为参数传递给高阶函数(如map()、f…...
Matlab 平衡车的建模与控制
1、内容简介 Matlab 189-平衡车的建模与控制 可以交流、咨询、答疑 2、内容说明 略 平衡车的建模与控制 选择一款平衡车(如:小米九号平衡车等),并估计平衡车的关键参数。完成以下工作: 1. 建立平衡车模型…...
KWDB创作者计划—KWDB关系库与时序库混搭
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...
Android studio2024的第一个安卓项目
目录 一、创建项目 1、创建Empty Views Activity类型项目 2、Android项目结构解析 manifests 目录: Gradle Scripts目录 3、创建安卓应用 二、测试 1、模拟器测试效果 2、连接真机,然后直接选择真机运行即可(点击Run或Shift F10运行…...
航电系统之障碍物监测技术篇
航电系统的障碍物监测技术是保障飞行安全、提升飞行效率的核心技术之一,尤其在复杂环境和低空飞行中发挥着关键作用。以下从技术原理、传感器类型、数据处理与应用等方面进行系统介绍: 一、技术原理 航电系统的障碍物监测技术通过多传感器融合和智能算法…...
网站DDoS防护方案——构建企业级安全屏障的关键路径
本文深度解析DDoS攻击最新演变趋势与防御技术体系,通过攻击特征图谱、云原生防护架构、混合防御模型等维度,揭示企业级网站防护方案的设计逻辑。结合2023年金融行业千万级QPS攻击事件,引用Gartner最新防御技术成熟度曲线,给出可落…...
Linux系统使用lshw生成硬件报告方法
使用 lshw 生成 HTML 硬件报告指南 一、工具简介 lshw(List Hardware)是 Linux 系统下用于检测并报告硬件详细信息的命令行工具,支持输出多种格式(文本、HTML、XML 等)。 核心功能: 显示 CPU、内存、磁盘、PCI/USB 设备等完整硬件信息生成结构化报告,便于存档或分析支…...
力扣 905 按奇偶排序数组:双指针法的优雅实现
目录 问题背景 题目解析 解题思路 暴力解法 双指针法 代码实现 代码解析 算法效率 实际应用场景 总结 问题背景 在编程的世界里,数组排序问题一直是经典中的经典。今天我们要解决的是一个有趣的变种:按奇偶排序数组。题目要求我们将一个整数数…...
LeetCode hot 100—子集
题目 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2…...
BERT - BertTokenizer, BertModel API模型微调
本节代码将展示如何在预训练的BERT模型基础上进行微调,以适应特定的下游任务。 ⭐学习建议直接看文章最后的需复现代码,不懂得地方再回看 微调是自然语言处理中常见的方法,通过在预训练模型的基础上添加额外的层,并在特定任务的…...
通过代码获取接口文档工具
通过代码获取接口文档工具 介绍使用到的技术使用说明核心源码演示截图工具源码 介绍 1.通过前后端代码来生成规格化的接口文档 2.支持拖拽上传或点击选择文件,可以一次选择多个文件或选择文件夹 3.用户选择前后端代码,工具调用GPT解析,得到规…...
不再卡顿!如何根据使用需求挑选合适的电脑内存?
电脑运行内存多大合适?在选购或升级电脑时,除了关注处理器的速度、硬盘的容量之外,内存(RAM)的大小也是决定电脑性能的一个重要因素。但究竟电脑运行内存多大才合适呢?这篇文章将帮助你理解不同使用场景下适…...
leetcode589 N叉树的前序遍历
前序遍历的顺序是:根节点 -> 子节点1 -> 子节点2 -> ... -> 子节点N 递归: class Solution { private:void traverse(Node* cur, vector<int>& res){if(cur NULL) return;res.push_back(cur->val);for(Node* child: cur->…...
游戏引擎学习第216天
回顾并为当天做准备 你可以看到,游戏现在正在运行。如果我没记错的话,我们之前把调试系统关闭了,留下一个状态,让任何想要在这段时间内进行实验的人可以自由操作,因为我们还没有完全完成这个系统。所以这样做是为了确…...
JavaSE反射机制干货
1.反射(Relection) 理解 定义:程序运行状态,动态地获取程序信息及调用程序功能即为java反射机制 2.获取class对象 掌握 2.1 Java代码的3个阶段 Java代码在计算机中经历的三个阶段:Source源代码阶段-Class类对象阶段-Runt…...
[特殊字符] 第十一讲 | 空间回归模型实战:SAR / SEM / GWR逐个击破
📘 专栏:科研统计方法实战分享 | 地学/农学人的数据分析工具箱 ✍️ 作者:平常心0715 🔑 本讲关键词:空间滞后模型(SAR)、空间误差模型(SEM)、地理加权回归(G…...
AI前沿周报:2025年3月技术深度解析
以下是基于2024-2025年AI技术前沿动态的深度技术周报示例,结合行业最新突破与研究进展,突出技术原理与应用场景分析: AI前沿周报:2025年3月技术深度解析 时间范围:2025年3月1日-3月31日 本期焦点:模型透明…...
aidigu开源微博项目程序,PHP开发的开源微博系统,自媒体个人创业、网盘推广首先
一、软件介绍 文末提供程序和源码下载学习 PHP开发的开源微博系统,采用PHP MySQL开发,框架采用ThinkPHP5.1,用户登录后拥有专属ID,支持表情、关注用户,网盘分享等功能,支持图片上传,视频上传,网盘存储分享…...
Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor
Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor Decision ManifoldsTabNet1.核心思想2. 架构组成3. 工作流程4. 优点PyTorch TabNetTabNetRegressor参数1. 模型相关参数`n_d``n_a``n_steps``gamma``cat_idxs``cat_dims``cat_emb_dim`2. 训练相关参数`opti…...
格瑞普Tattu正式成为2025年中国无人机竞速联赛官方赞助商!
格瑞普Tattu正式成为2025年中国无人机竞速联赛官方赞助商! 为飞手赋能,为赛事护航! Tattu是深圳市格瑞普电池有限公司(Grepow)旗下的子品牌之一,专注为无人机、FPV和模型爱好者提供专业可靠的电池和充电器等一站式电源解决方案。凭借卓越的放电性能、稳…...
PySide6 监测设备变更事件
在PySide6中监听系统事件,判断是否有串口设备插拔,进而当串口状态变更时,实现列表数据实时更新。 在Qt中,可以使用 nativeEvent 接口来完成这一操作: [virtual protected] bool QWidget::nativeEvent(const QByteArray…...
嵌入式系统的历史与发展
目录 引言 一、嵌入式系统的早期萌芽 1、首个现代嵌入式系统 2、早期未成形嵌入式系统的应用 二、以单片机为主的初级阶段 1、工业领域应用 2、大型家电领域应用 三、处理器升级与多样化应用阶段 1、数字化电子化设备涌现 (1)智能仪表…...
mysql调试记录
ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY password; 该命令在调试python使用pymysql连接数据库出现错误时, 报错为pymysql.err.OperationalError: (1045, "Access denied for user rootlocalhost (using password: NO)") m…...
【后端开发】Spring MVC阶段总结
文章目录 快捷引入依赖lombok的使用Lombok依赖Lombok使用Lombok注解 三层架构分层的目的MVC与分层的区别三层架构分层的好处 企业命名规范常见命名命名风格介绍大驼峰风格小驼峰风格包名 常见注解Cookie与Session 快捷引入依赖 这个方法可以快捷引入依赖,但是引入依…...
netty-socketio + springboot 消息推送服务
netty-socketio springboot 消息推送服务 后端1. 目录结构:代码pom文件:application.yml:SocketIOConfig:PushMessage:ISocketIOServiceSocketIOServiceImpl:pushMessageController:启动类&…...
基于 JavaWeb 的 SSM 在线视频教育系统设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
同时打开多个Microchip MPLAB X IDE
0.引用 Microchip 32位MCU CAN驱动图文教程-附源码 - 哔哩哔哩 https://bbs.21ic.com/icview-3391426-1-1.html https://bbs.21ic.com/icview-3393632-1-1.html 1.前言 工作中接触到使用Microchip 的 MPLAB X IDE 开发工具,使用的MCU是Microchip SAMD21J18A MCU…...
dify 500错误
问题 升级到1.2.0 后所有页面接口均报错500, 环境: docker 本地部署 version:1.2.0 解决办法 1.首先关闭服务 docker compose down2.找到docker-compose.yaml里的plugin_daemon,参照下面修改参数 plugin_daemon:environment:PLUGIN_MAX_EXECUTION…...
WPF设计标准学习记录26
画刷名称功能说明SolidColorBrush使用单一的连续颜色填充区域LinearGradientBrush使用线性渐变绘制区域。RadialGradientBrush使用径向渐变绘制区域。 焦点定义渐变的开始,而圆定义渐变的终点。ImageBrush使用图像绘制区域。VisualBrush使用一个视图绘制区域。BitmapCacheBrus…...
cin,cin.get(),getchar(),getline(),cin.get line()异同点
文章目录 1.cin2.cin.get()3.getchar()4.cin.getline()5.getline() 1.cin (1)cin>>等价于cin.operator>>(),即调用成员函数operator>>()进行读取数据。 (2)当cin>>从缓冲区中读取数据时&…...
7# 5多线-7 不会停
7# 5多线-7 不会停 分析,明显线接错了,打自动时也能手动启停,打手动无法启停,这时远程只能启ka3,无法启ka4。排查手自转换2上没接线,接到8上了(13和12接错了,也就是sac的5和6接错了)…...
基于混合编码器和边缘引导的拉普拉斯金字塔网络用于遥感变化检测
Laplacian Pyramid Network With HybridEncoder and Edge Guidance for RemoteSensing Change Detection 0、摘要 遥感变化检测(CD)是观测和分析动态土地覆盖变化的一项关键任务。许多基于深度学习的CD方法表现出强大的性能,但它们的有效性…...
机器学习 从入门到精通 day_04
1. 决策树-分类 1.1 概念 1. 决策节点 通过条件判断而进行分支选择的节点。如:将某个样本中的属性值(特征值)与决策节点上的值进行比较,从而判断它的流向。 2. 叶子节点 没有子节点的节点,表示最终的决策结果。 3. 决策树的…...
CLAHE算法介绍
限制对比度自适应直方图增强 CLAHE 算法介绍 1. CLAHE算法框图2.直方图clip及重分配2.1 opencv自带2.2 scikit-image2.3 结果对比2.4 clip limit的性质3.插值参考文献上图来自 K. Zuiderveld: Contrast Limited Adaptive Histogram Equalization。 图中可以看到各种直方图均衡的…...
高并发的业务场景下,如何防止数据库事务死锁
一、 一致的锁定顺序 定义: 死锁的常见原因之一是不同的事务以不同的顺序获取锁。当多个事务获取了不同资源的锁,并且这些资源之间发生了互相依赖,就会形成死锁。 解决方法: 确保所有的事务在获取多个锁时,按照相同的顺序请求锁。例如,如果事务A需要锁定表A和表B,事务…...
使用Python从零实现一个端到端多模态 Transformer大模型
嘿,各位!今天咱们要来一场超级酷炫的多模态 Transformer 冒险之旅!想象一下,让一个模型既能看懂图片,又能理解文字,然后还能生成有趣的回答。听起来是不是很像超级英雄的超能力?别急,…...