微机原理与接口技术笔记(持续更新)

news/2024/5/8 5:55:43/文章来源:https://blog.csdn.net/weixin_50295745/article/details/128163254

文章目录

  • 前言
  • 储存系统与技术
    • 材料
    • 高速储存器缓冲储存器(Cache)
      • 材料,局部性,访问方式
      • Cache全相联映射
      • Cache交换与一致性
        • 单核CPU一致性处理
        • 多核CPU的MESI协议
    • 主储存器(内存)
      • 主要技术指标
        • 容量
        • 带宽
      • 内存模组与内存颗粒
    • 辅助储存器(外存)
      • 类型、工作原理、技术指标
      • 地址计算(重点)
        • CHS编址模型
        • LBA与CHS编址互换
      • NCQ技术
  • 总线技术
  • 接口技术(重点)
    • 串行接口与应用
    • 定时和计数技术
    • 红外
    • WiFi
  • 中断技术
    • 中断概述
    • 中断处理
      • 实模式中断处理
      • 保护模式中断处理
    • 8259:可编程中断控制器(重点)
    • 高级可编程中断控制器

前言

学校这学期开了一门《汇编语言与接口技术》,这篇文章是接口技术部分。前面还有一部分微机原理,在汇编语言笔记里,本文介绍更加高层次的计算机组成原理。

汇编语言笔记
接口技术笔记TODO

储存系统与技术

除了计算以外,其他都是选择填空。

在这里插入图片描述

在这里插入图片描述

储存层次已经是老生常谈了,越往上,速度越快,成本越高,容量越小。速度快的,用于频繁访问的数据,比如程序的局部变量,速度慢的,用于偶尔访问的数据,比如一个文档。

因为是逐层的,所以内存和外存的关系,可以推广到高层和底层的关系,cache和内存的关系很像内存和外存的关系,比如cache也有交换机制。这些都是后话了,这里简单提一嘴。

材料

在这里插入图片描述

RAM分类如下:

  1. 双极性。用于Cache
  2. MOS型。
    • SRAM(Static RAM)。用于cache
    • DRAM(Dynamic RAM)。需要定期刷新,用于内存

ROM分类如下:

  1. MROM(Mask ROM)。制造的时候写入数据
  2. PROM(Programmable ROM)。支持一次编程
  3. EPROM(Erasable PROM)。可擦除,支持多次重头编程
  4. Flash。闪存。

高速储存器缓冲储存器(Cache)

Cache记录了主存中需要频繁访问的一小部分数据。

材料,局部性,访问方式

从制作材料来说:

  1. cache由SRAM制成。
  2. 内存由DRAM制成

SRAM读取速度比DRAM更快,用于制作cache,SRAM成本高,所以cache都很小。
那小小的cache为什么能支撑如此频繁的访问呢?原因就在于局部性原理:

  1. 时间局部性。相邻的时间内,程序会集中访问一个数据。
  2. 空间局部性。程序更倾向于访问空间上相邻的区域。

cache的访问结构有两种,从本质上来说,贯通查找是串行,旁路读出是并行:

  1. 贯通查找式(Look Through)。CPU先访问cache,如果cache中没有,再去内存中访问。cache平均访问时间 = cache访问时间+(1-命中率)×未命中时主存访问时间
  2. 旁路读出式(Look Aside)。读取方式类似于操作系统的快表TLB,CPU同时去cache和内存中找数据,如果cache里有那就最好,即使cache里没有,查找速度也比贯通查找要快,已经节省了读Cache的时间。cache平均访问时间 = 命中率×cache访问时间+(1-命中率)×未命中时主存访问时间

Cache全相联映射

Cache映射方式有三种,我们只介绍全相联映射。本节具体谈一下Cache的访问机制。

Cache中的内容是内存的一个子集,因此Cache中数据块大小和内存中一致。而在Cache与内存之间,通过目录表记录cache块与内存块之间的映射关系(下图中的M1与C1,M2与C2的对应关系)。内存和Cache存放数据本身,而目录表存放映射关系,记录了内存中的哪些数据块被存到cache中了。

在这里插入图片描述

CPU读数据的时候,是不会区分cache与内存的,他只是提供一个内存地址,即我们要访问某个内存数据块M。那么第一步是要检查cache中是否已经有M的数据,检查就要用到目录表。全相联映射的做法是,遍历目录表,看看M是否在目录表中,有的话就是hit,直接把M的内存地址转换成cache中的地址。之后再加上偏移量就是我们要的数据。

如果M没有记录在目录表中,就是miss,此时就去内存中找数据。

Cache交换与一致性

cache的miss和缺页中断类似,发生miss后cache会从主存调块。如果cache中没有空闲的行,就会进行替换。替换方法同操作系统中缺页中断的替换方法,比如FIFO,LRU等,还有一个额外的随机算法

写cache的时候,会对内容进行修改,就会影响到后面的交换。比如修改了cache,替换这一块数据前就得先回写到内存中去。此类问题统称为数据一致性问题。

单核CPU一致性处理

  1. miss。直接把写的内容写到内存。写完后有的计算机会把数据块调入cache。
  2. hit。
    • 直写式。写cache的同时,写内存。缺点在于,写完内存之前,cache不能用,会拖慢写入速度。
    • 回写式。实际上,没必要频繁写内存,只需要在被置换出去前写一次内存就够了,为此,需要一个dirty位,1代表cache的数据被写过(修改过),则这一行被交换出去的时候需要先写一次内存,把cache的修改同步到内存。如果没修改过,那就不用同步内存。回写式比较快,但是机制比较复杂。

多核CPU的MESI协议

多核,每个CPU都有一个cache,如果两个cpu都把一个内存块数据调到cache里,进行不同的修改,再写回去就会冲突。因此要更复杂的协议,即MESI协议。

MESI协议将数据段定义为4种状态(倒着来):

  1. I(Invalid)。无效缓存段。仅在内存中,还没有cache使用这个数据段。
  2. S(share)。共享缓存段。一个内存块在多个cache里都有拷贝,多个处理器共享。
  3. E(exclusive)。独占缓存段。一个内存块仅被一个cache使用,且没有被修改。
  4. M(modify)。修改缓存短。一个内存块仅被一个cache使用,且已经被修改。退出M状态前要先进行回写。

针对这些状态,有如下规则:

  1. 独占可写。当数据处于M和E的时候,才可以写。
  2. 共享只读。数据处于S时,只读。只要不让多个CPU同时写,就不会出现不一致问题。

主储存器(内存)

内存使用DRAM材料。

主要技术指标

容量

存储单元数量=行数×列数×数据深度×L(Bank的数量)

在这里插入图片描述

上面的三个布局都是128M,以第一个为例:

  1. 行地址是0-11,所以行为2122^{12}212
  2. 列地址是0-9与11,列为2112^{11}211
  3. 位宽(数据深度)=4
  4. bank数=4

所以212×211×22×22=227=27×220=128MB2^{12}\times 2^{11}\times 2^{2}\times 2^{2}=2^{27}=2^7\times 2^{20}=128MB212×211×22×22=227=27×220=128MB

带宽

带宽=总线宽度×总线频率/8(B/s)

PC100 SDRAM 外频100MHz时,带宽=64×100/8=800(MB/s)
PC133 SDRAM 外频133MHz时,带宽=64×133/8=1 064(MB/s)
DDR DRAM 外频100MHz时,带宽=64×100×2/8=1.6(GB/s)

SDRAM是普通内存,就用带宽公式即可。但是DDR DRAM是双通道的,所以要翻个倍。

内存模组与内存颗粒

内存颗粒可以理解为内存的储存单元。分为SDRAM和DDR DRAM两种材料,DDR的速度要翻一倍。之所以速度翻倍,是因为SDRAM一个时钟周期只在上升沿传一次数据,而DDR在上升沿和下降沿都会传输一次数据,所以翻倍(Double Date Rate SDRAM)。

现在市面上不单纯卖内存颗粒,而是把相关的控制芯片,颗粒,各种元件焊在一个PCB上组成一个内存模组,俗称内存条,只暴露出接口。

辅助储存器(外存)

类型、工作原理、技术指标

类型:

  1. 机械硬盘HHD。使用ATA标准
    • PATA接口(Parallel ATA)。我们俗称的ATA接口就是PATA接口,速度慢,抗干扰差,逐渐被取代。
    • SATA接口(Serial ATA)。支持热插拔
    • IDE接口。这是个很大的概念,有时指代PATA,有时候指代SATA
    • SCSI接口。淘汰。
  2. 固态硬盘SSD。接口与HHD相同,但是采用FLASH介质,读写速度不受储存位置影响,很快。但是FLASH材质坏块无法修复,且有擦写次数限制,寿命有限。

工作原理(机械硬盘):

  1. 盘面(一个盘片两个盘面)
  2. 磁道
  3. 扇区。注意,扇区从1开始编址,其他从0开始。

0磁头0柱面1扇区存放了磁盘的主引导区,MBR。

技术指标:

  1. 容量。
  2. 转速。很大程度上决定了访问速度
  3. 缓存。缓存在磁盘读写的初期提供较快的速度,缓存用光以后速度会降下来。
  4. 访问时间
    • 寻道时间。磁头寻道
    • 潜伏时间。磁头在磁道上,等待目标扇区转过来的时间
    • 访问时间。磁头在目标扇区上访问数据的时间

地址计算(重点)

CHS编址模型

ATA接口采用CHS编址模型:C(柱面)H(磁头)S(扇区):

  1. 柱面从0开始,总共nC个
  2. 磁头从0开始,总共nH个
  3. 扇区从1开始,总共nS个

总共有nC×nH×nS个扇区,每个扇区512B。
下图中,柱面,磁头,扇区的数字都是二进制编址的位数,IED总共有28位,即有2282^{28}228个扇区,则总空间为228×29B=27×230=128G2^{28}\times 2^{9}B=2^{7}\times 2^{30}=128G228×29B=27×230=128G。如果是十进制(1G=1000M),则硬盘上限是237109=137G\dfrac{2^{37}}{10^{9}}=137G109237=137G

在这里插入图片描述

LBA与CHS编址互换

LBA(Logical Block Address)是线性的逻辑地址,CHS是物理地址。

在<C,H,S>编址模式中,范围如下:

  1. 0≤C≤nC−1
  2. 0≤H≤nH−1
  3. 1≤S≤nS

如果是1柱面,则代表当前访问的内容在(0,1]柱面之间。CHS转LBA公式:
最后-1是因为S从1开始编址,导致基地址会虚高1个扇区。

L=[(C×nH+H)×nS]+S–1L=[(C×nH + H)×nS]+S–1 L=[(C×nH+H)×nS]+S–1

LAB转CHS公式:
S需要额外+1,因为从1开始编址的
C不需要求模,因为除完以后不可能大于nC了,求不求模都一样。注意,这里的除,是C语言中的整除。

S=L%nS+1H=(L÷nS)%nHC=(L÷nS÷nH)\begin{gather} S =L\%nS+1 \\ H =(L÷nS)\%nH \\ C =(L÷nS÷nH) \\ \end{gather} S=L%nS+1H=(L÷nS)%nHC=(L÷nS÷nH)

例题:

在这里插入图片描述

211×24×26×29B=230B=1GB2^{11}\times 2^{4}\times 2^6 \times 2^9B=2^{30}B=1GB211×24×26×29B=230B=1GB如果折算成10进制,就是(10241000)3GB(\dfrac{1024}{1000})^3GB(10001024)3GB

逻辑盘块2K,513号(从0开始)对应的逻辑地址为513×2K,对应的LBS地址为L=513×2K512=513×4=2052L=\dfrac{513\times2K}{512}=513\times 4=2052L=512513×2K=513×4=2052。接下来计算SHC:

  1. S=2052mod64+1=5S=2052\mod 64+1=5S=2052mod64+1=5
  2. H=(2052/64)mod16=0H=(2052/ 64)\mod 16=0H=(2052/64)mod16=0
  3. C=(2052/64/16)=2C=(2052/ 64 / 16)=2C=(2052/64/16)=2

结果为CHS=<2,0,5>

NCQ技术

如果磁盘按照FIFO算法去寻道,可能会花费很久的时间。
NCQ技术对请求序列重新排列,使得数据传输更快速,磁头移动的路径更短:

在这里插入图片描述

总线技术

全是概念。

在这里插入图片描述

总线概述

PCI总线

PCI-E总线

USB总线

I2I^2I2C总线(Inter Integrated Circuit)

接口技术(重点)

在这里插入图片描述

串行接口与应用

8.9

在这里插入图片描述
1MB数据,没说有效数据,所以就直接1M×89600\dfrac{1M\times 8}{9600}96001M×8即可。

有效数据传输率=数据传输效率,是百分比,与异步串行帧格式有关。这里应该还有个起始位,所以是70%

定时和计数技术

红外

WiFi

中断技术

在这里插入图片描述

中断概述

中断处理

实模式中断处理

保护模式中断处理

8259:可编程中断控制器(重点)

高级可编程中断控制器

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++进阶】C++11新特性上篇(万字详解)

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…

[附源码]计算机毕业设计Python餐馆点餐管理系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

244. 谜一样的牛——二分+树状数组

有 n 头奶牛&#xff0c;已知它们的身高为 1∼n 且各不相同&#xff0c;但不知道每头奶牛的具体身高。 现在这 n 头奶牛站成一列&#xff0c;已知第 i 头牛前面有 Ai 头牛比它低&#xff0c;求每头奶牛的身高。 输入格式 第 1 行&#xff1a;输入整数 n。 第 2…n 行&#x…

UOS SDN

​ 文章目录 一.安装相关软件包二.上传并解压opendaylight软件包三.创建拓扑四.下发流表五.启动HTTP-server服务六.截图测试启动 OpenDayLight 的 karaf 程序,并安装如下组件: feature:install odl-restconf feature:install odl-l2switch-switch-ui feature:install odl-…

python制作问题搜索解答器,从此学习无忧

前言 大家早好、午好、晚好吖 ❤ ~ 今天博主给大家带来一个问题搜索解答器&#xff01;&#xff01; 需要素材 以及一双慧手和一个灵活的脑子~ 效果展示 代码展示 导入模块 import requests import tkinter as tk from tkinter import ttk import webbrowserdef search(wor…

Python中的魔法方法

python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的 Python的魔法方法&#xff0c;也称为dunder(双下划线)方法。大多数的时候&#xff0c;我们将它们用于简单的事情&#xff0c;例如构造函数(init)、字符串表示(str&#xff0c; r…

基于Geehy APM32F4移植使用letter-shell命令行终端

1. letter-shell简介 letter shell是一个C语言编写的&#xff0c;可以嵌入在程序中的嵌入式shell&#xff0c;主要面向嵌入式设备。 说得直白点他就是一个命令行交互软件&#xff0c;可以读取用户输入的命令&#xff0c;找到并执行命令对应的函数。 letter-shell的功能十分强…

XXL-Job分布式任务调度框架-- 集群HA的配置3

一 xxl-job集群概述 1.1 xxl-job集群HA的作用 为了避免单点故障&#xff0c;任务调度系统通常需要通过集群实现系统高可用 由于任务调度系统的特殊性&#xff0c;“调度”和“任务”两个模块需要均支持集群部署&#xff0c;由于职责不同&#xff0c;因此各自集群侧重点也有…

适合零基础人群学习的Python入门教程,快来学习吧

适合零基础人群学习的Python入门教程学什么&#xff1f;小编为大家准备的Python学习教程&#xff0c;课程主要讲解&#xff1a;Python核心编程、Linux基础、前端开发、Web开发、爬虫开发、人工智能等内容。 对于初学者想更轻松的学好Python开发&#xff0c;爬虫技术&#xff0c…

Go环境搭建与IDE开发工具配置

安装Go语言编译器 Go语言编译器》编译器将源代码编译为可执行程序》源代码程序员使用高级语言所书写的代码文件》高级语言c/c/go…》机器语言0和1构成&#xff0c;机器能直接识别》汇编语言比机器语言稍微可读一点点的指令集 编译器下载地址 根据系统下载对应的go编译器版本…

三分查找算法

目录 一 算法简介 详细介绍 两种基本方法 二 算法实践 1&#xff09;实数三分 拓展&#xff1a;秦九韶算法计算多项式 方法1&#xff1a;直接模拟累加 方法二&#xff1a;根据秦九韶算法 1&#xff09;模板三分法 题目描述 解法 2&#xff09;三分求极值 题目描述 …

Python:遗传算法最优路径

Hello&#xff0c;大家好&#xff01;读研前写过一篇遗传算法的代码&#xff0c;比较简单&#xff0c;算是个入门&#xff0c;当时就有想用它来解决最优路径的问题&#xff0c;上算法导论课时碰巧有听到同学有分享过&#xff0c;但由于自己研究的方向不是这块&#xff0c;就没有…

C# 绘图基本方法

一得到Graphics对象 1 OnPaint事件中使用 Protected overrid void OnPaint(PaintEventArgs e) {Graphics ge.Graphics;...... }2 其他情况实现 Graphics gthis.CreaateGraphics();二 关于Graphics的释放 1 对于CreateGraphics&#xff08;&#xff09;得到的Graphics对象&a…

【Linux权限】文件权限值,权限掩码,粘滞位,普通用户添加信任名单

目录 1.权限分为2种用户&#xff1a;超级用户&#xff0c;普通用户 2.文件类型和访问权限 ​3.权限掩码&#xff08;八进制&#xff09; 4.sudo短暂提升权限 5.粘滞位 1.权限分为2种用户&#xff1a;超级用户&#xff0c;普通用户 超级用户&#xff08;通常为root&#x…

ArcGIS Pro 加载项(5)——样式符号属性对调

之前是已经通过Python构建脚本工具&#xff0c;实现了stylx文件的符号属性的对调。 ArcGIS Pro脚本工具&#xff08;12&#xff09;——样式符号属性对调_学学GIS的博客-CSDN博客为地类做样式符号匹配经常碰到这样的问题&#xff1a;属性表里面只有地类代码&#xff0c;但是做…

安全分析模型

安全分析模型自动化调优 MLOps&#xff08;Machine Learning Operations&#xff09;是一种人工智能 的工程实践&#xff0c;是面向机器学习项目的研发运营管理体系 。旨在实现 ML 管道的操作、ML 模型的部署和管理标准化&#xff0c;支持ML 模型的发布、激活、监控、性能跟踪…

MacOS配置GitHub SSH-key

mac和linux配置方法基本类似 打开终端连接到账户 git config --global user.name "xxxx" git config --global user.email "xxxxqq.com" 创建ssh-key ssh-keygen -t rsa -C "xxxxqq.com" 一路enter选择默认项&#xff0c;创建完成 查…

【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法

一、负载均衡基本原理概述协议/端口轮询策略会话保持二、云服务器 ECS 负载均衡相关配置协议&监听配置后端服务器配置健康检查配置测试在上期文章中&#xff0c;介绍了负载均衡的概述及优势&#xff0c;并详细演示了阿里云服务器负载均衡服务的选型与购买配置。本期文章我们…

【YOLOv7-环境搭建③】PyCharm安装和环境、解释器配置

下载链接&#xff1a; 来源&#xff1a;&#xff08;博主&#xff09;唐三. 链接:https://pan.baidu.com/s/1y6s_EScOqvraFcx7iPSy1g 提取码:m1oa 安装&#xff1a; 以管理员身份打开安装完成后&#xff0c;打开软件到达以下界面&#xff0c;框框全选到达以下界面&#xf…

一起Talk Android吧(第四百四十五回:UI控件之TimePicker)

文章目录概念介绍使用方法内容总结各位看官们大家好&#xff0c;上一回中咱们说的例子是"UI控件之DatePicker",这一回中说的例子是"UI控件之TimePicker"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01; 概念介绍 看官们…