数据结构-U2 线性表
2.1 线性表线性表 是具有相同数据类型的n个元素的有限序列。有前驱和后继。 是一种逻辑结构。 根据不同的存储方式,分为: 顺序存储→顺序表 链式存储→单链表,双链表,循环链表,静态链表 线性表的基本操作 初始化表,InitList(&L) 初始化表,构造一个空的线性表。 求表长,Length(L) 返回线性表L的长度,即L中数据元素的个数。 按位(键位)查找操作,GetElem(L,i) 获取表中第i个位置的元素的值。 按值(关键字)查找操作,LocateElem(L,e) 获取表L中查找具有给定值e的元素。 插入操作,ListInsert(&L,i,e) 在表L中的第i个位置上,插入指定元素e。 删除操作,ListDelete(&L,i,&e) 删除表L中第i个位置的元素,并用e返回删除元素的值。 只需要读取L → 用L(传值) 需要修改L本身 → 用&L(传地址) 2.2...
数据结构-U3 栈、队列和数组
3.1 栈栈 注:每定义一种新的数据结构,都应该从逻辑结构,存储结构和运算三个方面入手。 栈是只允许在一端进行插入或删除操作的-线性表。 栈顶TOP:允许进出的一端 栈底Bottom。空栈:不含任何元素的空表。 栈的操作:后进先出(LIFO) 栈的一个数学性质:n个不同元素入栈时,出站元素不同排列的个数为$$\frac{1}{n+1} C_{2n}^{n}$$ 栈的操作 初始化一个空栈S InitStack(&S) 判断一个栈是否为空 StackEmpty(S) 入栈 Push(&S,x) 若栈S未满,则将x加入使之成为新栈顶。 出栈 Pop(&S,&x) 若栈S非空,则弹出栈顶元素,并用x返回。 读栈顶元素 GetTop(S,&x) 读栈顶元素,但不出栈,若栈S非空,则用x返回栈顶元素。 销毁栈 DestroyStack(&S) 销毁栈,并释放栈S占用的存储空间 栈的顺序存储结构 1.顺序栈的实现 123456//栈的顺序存储类型可描述为:#define MaxSize 50; //定义栈中元素的最大个数typedef...
计网-U4 网络层
4.1 网络层的功能(16) 4.2 IPv4(300) 4.3 IPv6(36) 4.4 路由算法与路由协议(240) 4.5 IP多播(18) 4.6 移动IP(26) 4.7 网络层设备(20) 前言 4.1 网络层的功能〇 OSI参考模型主张在网络层使用:面向连接的虚电路服务 TCP/IP体系结构的网络层提供的是:无连接的数据报服务 即通信的可靠性由高一级的传输层负责。 这样子可以使得网络中的路由器做得简单,价格低廉。 ① 异构网络互连网络互连:用中继系统对网络进行互连。 异构网络互连:对 物理层 / 数据链路层 / 网络层 不同的网络进行互连。 中继系统: 物理层中继系统:转发器,集线器 数据链路层中继系统:网桥或交换机 网络层中继系统:路由器 网络层以上的中继系统:网关 ② 路由与转发路由表的核心功能:==路由选择== 和 ==分组转发== ③ 网络层提供的两种服务虚电路: 在网络层建立一条...
计网-U3 数据链路层
3.1 数据链路层的功能向上层下层要做的事情 物理链路:传输介质(0层)+ 物理层(1层)实现了相邻节点之间的“物理链路” 逻辑链路:数据链路层基于“物理链路”,添加了实现通信协议的软硬件,实现相邻节点之间逻辑上无差错的“数据链路/逻辑链路” **==数据链路层向下(使用服务)==**:使用物理层提供的 “比特传输” 服务。 ==数据链路层向上(提供服务)==:为网络层提供服务,将网络层的 分组(IP数据报) 封装成帧,传输给下一个相邻节点。 帧 = 首部 + 数据 + 尾部 首部和尾部包含各种控制信息。 数据链路层实现的功能(5) 之后一小节就是跟一个功能相关。 ①封装成帧(组帧):⭐ 组帧即:定义数据格式。 帧定界:即如何让 接收方(对面的数据链路层) 能够 确定帧的界限。 透明传输:接收方...
计网-U2 物理层
物理层 数据长这样:01001010001011011110001010… 物理层任务:实现相邻节点之间的比特(0/1)的传输。 通信基础 信源:信号的来源 信宿:信号的归宿 信道:信号的通道 信号:数据的载体 数字信号:信号值是离散的。 模拟信号:信号值是连续的。 可作为信号的物理量:电压,电磁波等。 基带信号:由信源发出的未经调制的原始电信号。(用于短距离通信)(在信道的传输称为基带传输) 宽带信号:将基带信号调制到高频加载波上形成的信号。(在信道的传输称为宽带传输) 需要远距离或者无线传输时,需要将数字信号“搭载”到一个高频载波上, 这个过程叫调制。转换后的信号信道的传输叫 频带传输, 而宽带传输指利用频分复用等技术,将一条物理线路划分为多个频带信道,每个信道可以独立进行频带传输。 数据 数据的传输方式分为串行传输和并行传输。 串行传输:长距离通信,如计算机网络 并行传输:短距离通信,如计算机内部 码元 ==每个信号(n位二进制码)就是一个...
计网-U1 计算机网络体系结构
U1 计算机网络体系结构 体系结构是抽象的,实现是具体的。 计算机网络概念 计算机网络是: ==一个== 将众多分散的、自治的 计算机系统, 通过 通信设备与线路 连接起来, 使 软件 实现...
OS-5.3 磁盘
磁盘的结构磁盘是由表面涂有磁性物质的盘片构成的存储设备。 磁盘 磁道 扇区 每个盘面分成一个个磁道,每个磁道分成一个个扇区。 每个扇区存放的数据量相同。因此内侧的扇区数据密度大。 盘面 柱面 磁盘不止一个盘面的。会有多个盘面。(甚至每个面还可能是双面的) 所有磁头都是连接在同一个磁臂。 柱面:所有盘面中相对位置相同的磁道组成柱面 磁盘的物理地址 (柱面号,盘面号,扇区号) 如何在磁盘中读写数据 ①根据柱面号移动磁臂。让磁头指向指定柱面(即磁道)。 ②激活指定盘面对应的磁头。 ③磁盘旋转的过程中,指定的扇区会从磁头下面划过,这样子就完成了对指定扇区的读写。 磁盘的分类 活动头磁盘:磁头可以在不同磁道间移动的。 固定头磁盘:每一个磁道都有一个磁头。(磁头也就不需要移动了) 可换盘磁盘:盘片可以更换 固定盘磁盘:… 回顾 磁盘调度算法 磁盘调度算法是为了减少寻道时间。 一次磁盘读写操作需要的时间 ==①寻道时间==:磁头移动寻找磁道的时间 启动磁头臂s 移动磁头跨越n条磁道,跨越一条时间m 总寻道时间 Ts =...
OS-5.2 I/O核心子系统
==IO==核心子系统 用户层软件假脱机技术Spooling 脱机技术批处理阶段引入了脱机技术(用磁带完成) ==假脱机技术==(SPOOLing技术)==以高速磁盘为输入输出井==,==用软件(SPOOLing)模拟脱机技术。== 需要使用**==磁盘空间==(输入井和输出井),==内存空间==**(输入和输出缓冲区)。 不需要外围计算机的支持! 设备与输入井输出井之间的数据传送是OS支持的,而不是外围计算机(用户作业控制设备) ==“假”==:以多道程序技术和磁盘空间替代外围机。【以空间换时间】 假脱机技术作用:将一台物理独占设备,**==虚拟成多台逻辑设备==,实现设备共享**。 也提高了系统和IO设备的利用率,进程不必等待IO操作的完成...
OS-5.1 I/O管理简述
IO设备的分类 按使用特性分类: 人机交互类IO 存储设备 网络通信设备 按传输速率分类: 低速设备(eg鼠标,键盘) 中速设备(eg激光打印机) 高速设备(eg移动硬盘) 按信息交换设备的单位分类: 块设备:数据传输基本单位是 块 ,(传输快,可寻址) 字符设备:数据传输的基本单位是 字符(传输慢,不可寻址,常采用中断驱动方式) 按共享属性分类: 独占设备:(静态分配方式) 共享设备:必须是可寻址,可随机访问的设备哦。(动态分配方式) 虚拟设备:将独占设备改造成多个逻辑设备。 IO接口 /...
OS-4 文件管理
前言一个文件有哪些属性? 文件名。(note:同一目录下不允许有重名文件) 标识符。(os用来区分不同文件内部名称,对用户无意义) 文件类型。 文件位置。 文件存放的位置,让用户使用的。 在外存中的地址,让os使用的,用户不可见。 AND 大小、创建时间、保护信息等等。 文件内部的数据应该怎样组织起来?– 文件的逻辑结构。⭐ 无结构文件 有结构文件 文件之间应该怎样组织起来?– 目录结构⭐ 目录 – 就是我们平时见到的文件夹 目录本质是一种有结构文件 (从上往下看)文件应该如何存放到外存?– 文件的物理结构⭐类似于内存,外存也被分成一个一个块。 OS同样需要将逻辑地址(逻辑块号,块内地址)转化为外存的物理地址(物理块号,块内地址)。 (从下往上看)OS应该向上提供哪些功能?–...
数据结构-U2 线性表
2.1 线性表线性表,具有相同类型的,有序序列。 除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。 线性表是逻辑结构。顺序表和链表是存储结构。 线性表元素的序号从1开始,数组元素的需要从0开始。 基本操作 123456789101112初始化表,InitList(&L)求表长,Length(L)按值查找操作,LocateElem(L,e)按位查找操作,GetElem(L,i)插入操作,ListInsert(&L,i,e)删除操作,ListDelete(&L,i,&e).【删除表L中的第i个位置的元素,并用e返回删除元素的值】输出操作,PrintList(L)判空操作,Empty(L)销毁操作,DestoryList(&L)【销毁线性表,并放出线性表L所占用的内存空间】# elem,是element元素的缩写# &表示c++中的引用调用。&在C中是取地址符 2.2 线性表的顺序表示又叫顺序表。 123456// 静态分配的顺序表的存储结构#define MaxSize 50...
数据结构-2.1 顺序表
01. ①从顺序表中删除具有最小值的元素(假设唯一),并由函数返回被删元素的值。 ②空出的位置由最后一个元素填补。 ③若顺序表为空,则显示出错信息并退出运行。 12345678910111213141516int Q1(SqList &L){ if(L.length==0){ // return -1; // ③ (返回 -1 表示出错) // } // int last = L.data[L.length-1]; // int min = L.data[0]; int j = 0; // for(int i=1;i<L.length;i++) // ① 跳过第一个元素 if (L.data[i]<min){ min = L.data[i]; j = i; } // L.data[j] = last; // ② L.length--; // 顺序表长度减小了 // ...
OS-3.1 内存扩展 -- 虚拟内存
前言 虚拟内存基本概念 传统存储方式的缺点①一次性:作业必须一次性全部转入内存后才能运行。 作业很大塞不进内存 大作业塞进去后,小作业塞不进去,并发度下降。 ② 驻留性:作业被转入内存,就会一直驻留在内存中,(无论部分数据是否用得到),直到作业运行结束。 局部性原理时间局部性,空间局部性。 虚拟内存基于局部性原理。 从逻辑上扩充了容量。 特征: 多次性:无需在作业运行时一次性装入内存。 对换性:作业运行时无需常驻内存,可换入换出。 虚拟性:逻辑上扩充了内存容量。 额外的功能: 请求调页/段。当访问信息不在内存块时,os负责将信息从外存调入内存。 页面/段置换。内存空间不够时,os将内存中暂时用不到的内存块调出到外存。 如何实现虚拟内存虚拟内存需要建立在离散分配(而不是连续分配)的内存管理方式上。 请求 分页存储管理 请求 分段存储管理 请求 段页式存储管理 回顾 请求分页(VS基本分页!)与 基本分页 相比,请求分页 ...
OS-3.1 内存
3.1 内存1.内存的基础知识 内存有什么用? 程序从硬盘调入内存,被CPU处理。 如何区分内存中的多个程序放置的位置呢? →需要对内存进行编址。 从写程序 到 程序运行编写源代码 –→ 编译(高级语言(高级代码)到机器语言(机器指令)–→ 链接(把code连接到一起,加上库函数,且形成逻辑地址)–→ 装入(装入内存,形成物理地址) 链接的三种方式 静态链接:程序运行前一次性链接,之后不拆开。 装入时动态链接:边装入内存边链接。 运行时动态链接:程序运行时才链接。(便于修改和更新,便于实现对目标模块的共享) 机器指令的工作原理 结构:操作码+若干参数(可能包含地址参数) 指令告诉CPU从哪个地址读/写数据。 或者告诉CPU对数据进行什么处理。 物理地址 VS 逻辑地址 程序经过编译、链接后生成的指令中指明的地址是逻辑地址。 HOW...
OS-2.4 死锁
2.4...
OS-2.3 同步和互斥
同步和互斥进程同步,进程互斥①进程同步:解决进程的异步问题,协调工作顺序。 ②进程互斥:对于临界资源 / 共享资源,必须互斥地进行访问。(or结果就像两个文档打印混一起了) 不同线程 对 同一个进程 的共享变量 的访问才可能需要互斥,不同进程的不同线程不存在互斥访问。 临界资源:互斥,共享 – 资源。 临界区:访问临界资源的那一个 代码段。 临界区是为了保护临界资源而存在的。(所以5个并发进程就有5个共享操作变量X的代码段) 实现互斥的四个代码段: 进入区。临界区。退出区。剩余区。 ==实现同步遵循的四个原则:== 空闲让进。忙则等待。有限等待。让权等待。 note: 可重入代码:不允许被修改的代码,又叫纯代码。 所以这种代码能在多个时刻被任意进程共享,无需互斥。(EG:进程映像中的程序(段)) 回顾 进程互斥的软件实现方法 ①单标志法一个进程在访问完临界区后,会把使用临界区的权限 交给...
DeepLearnProj
灵魂写手检测仪 · 余弦相似度版 | 文风拓扑引擎 /* ========== 全局样式重置 & 基础布局 ========== */ * { margin: 0; padding: 0; box-sizing: border-box; } title: 微信聊天界面(仿) date: 2026-04-03 tags: ui categories: ins 'top_img': 'https://picsum.photos/200/300' body { overflow: hidden; /* 隐藏页面滚动条,避免与内部滚动冲突 */ font-family: 'PingFang SC', 'Microsoft YaHei', 'Segoe UI', system-ui,...
OS-2.2 CPU调度方式
2.2 CPU调度一 . 处理机调度概念、层次 “调度”概念 假设一堆人需要服务,就需要有某种规则(先后,VIP等)来决定谁先谁后。 三个层次 高级调度 又称作业调度。 按照某种规则,把作业从外存调入内存,并创建进程。 每个作业在生命周期中,只会调入一次,调出一次。 作业调入时建立PCB,调出时撤销PCB。 (现代的分时/实时系统中,用户进程直接由交互式命令直接创建,一般没有独立的作业调度模块了。) 低级调度 又称进程调度(处理机调度) 按照某种算法进行 – 进程间的调度。 进程调度的频率最高。 中级调度 又称内存调度。 按照某种策略,把暂存到外存的、挂起状态 的进程,重新调回 内存。 存在原因:内存不够时,一些进程的数据会被调去外存。 一个进程可能会被多次调入调出,所以中级调度发生的频率比高级调度高。 进程状态的补充 挂起态 挂起态:暂时调到外存等待的进程的状态。 有两种挂起态:就绪挂起和阻塞挂起 回顾 二 . 进程调度的时机,切换与过程,调度调度方式 **进程调度的时机 ** –什么时候...
微信聊天界面(仿)
微信聊天 * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: #ededed; height: 100vh; overflow: hidden; display: flex; flex-direction: column; } /* 状态栏 */ ...
微信聊天界面(仿)
微信聊天 * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: #ededed; height: 100vh; overflow: hidden; display: flex; flex-direction: column; } /*...
OS-2 2.1进程
2.1 进程进程的概念,特征和组成进程的概念和特征程序:是静态的,存放在磁盘里的可执行文件(一系列指令集合)。 进程(process):动态的(最本质的区别),是程序的一次执行过程。 进程实体(进程映像):是静态的,是进程在某一时刻的状态。 进程支撑起了OS两大基本特性:并发性和共享性。 解决了:①失去封闭性。②执行过程间断性。③结果不可再现性。 生命周期:一个进程在生命周期内可以执行一个或多个程序。 区别“一个进程执行多个程序”≠“一个进程运行多个程序” 串行执行:一个时刻只执行一个程序,是先后替换关系 不是并行:不是同时运行多个程序(那是多线程或多进程的事) 一个进程执行多个程序 同一个进程(PID 不变),先后运行不同的可执行文件 父子进程 一个进程创建另一个新进程(pid不同),两个进程“同时”存在(不共享虚拟地址⭐) 进程切换 CPU...
OS-1 OS简述
1.1 操作系统OS概念定义OS 是 计算机资源(硬件和软件) 的管理者 提供给用户/软件接口和环境 →向上层提供方便的服务 cs系统中最基本的**==系统软件== ** →是最接近硬件的一层软件 功能==一.OS是系统资源的管理者==文件管理(U4) 存储器管理(U3):为(多道)程序提供内存运行环境 处理机管理(U2):处理机的分配和运行都以进程/线程为单位,所以本质上是对进程的管理。 设备管理(U5):处理用户IO请求。 二.向上(下)层提供接口A. 用户接口 GUI(图形用户界面) 命令接口 联机命令接口(交互式命令接口)【用户说一句,系统做一句】 脱机命令接口(批处理接口)【用户说一堆,系统做一一堆】 B. 程序接口:本质是...
计组-7.3 I/O控制方式
7.3 I/O控制方式详解 1.程序查询方式工作流程 ①检查CPU状态寄存器是否busy。 不 busy 后,CPU发送(要打印的)数据到数据缓冲寄存器。 打印机开始工作,同时把状态寄存器设置为busy。 CPU速度比打印机快很多,打印机工作的时候,计算机发送询问,重复第①步 ==程序查询方式有两种:独占查询。定时查询。== 打印机完成后,发送ready信号,busy位清零。 CPU可以打印 下一个...
计组-7.2 I/O接口
7.2 IO接口/IO控制器IO接口,即==IO控制器,设备控制器== 主要功能是==完成主机和外部设备之间的信息交换== 1.I/O接口的作用⭐ 数据缓冲:通过数据缓冲寄存器(DBR)达到主机与外设工作速度的匹配 错误或状态检测:通过状态寄存器反馈设备的各种错误,状态信息,供CPU查用 控制和定时:IO控制逻辑接受从 控制总线 发来的控制信号,时钟信号。 ==数据格式转换==:串-并,并-串等格式转换 地址信号映射:地址译码逻辑负责,将地址信号映射到指定的IO端口 与主机和设备通信:⭐ ==主存 —– IO接口 —– 外设== CPU和主存—–IO总线(数据控制地址线)—–IO接口 —- 通信总线(电缆)...
计组-7.1 I/O系统
7.1 I/O系统基本概念==I/O接口 == I/O控制器 == 设备控制器== 1.IO方式(==CPU如何和I/O设备交互==)a.程序查询方式 CPU等待,直到I/O设备数据准备完成。 b.程序中断方式 CPU忙别的,I/O设备准备好数据 再向CPU发送中断请求。 ==c....
计组-6.1 总线概述
6.1 概述1.基本概念 总线是一组能为多个部件 ==分时 共享== 的公共信息传送线路 总线的由来: 早期外部设备少,用的是分散连接方式 后来外部设备多,采用总线连接方式 (设计)总线的特性 2.总线的分类及经典结构 A.按数据传输格式串行总线: 一次发送一个位(bit) 优点:成本低(只用一根),适用于长距离传输 缺点:数据收发需要进行串行-并行转换。(eg电脑内部一次发送的数据一般是64位) attention: 串行:强调的是 *”一位一位传输”*(物理层面) 复用:强调的是 *”多个功能/信号,分时共享同一套线路”*(逻辑层面) 并行总线: 一次能并行发送很多个位(eg数据总线就是并行总线) 优点:总线的逻辑时序简单,电路实现容易。 缺点:布线空间大。远距离传输成本高。工作频率不能太高(or造成不同线的数据有的到了有的没到)。高频数据线干扰。 造成的问题:并行总线不一定比串行总线快 (v = 数据线宽度*频率) B.按总线功能 a.片内总线:CPU内部...
计组-6.2 总线周期
6.2...
计组-6.3 总线标准
6.3...
计组-5.6 指令流水线
5.6 指令流水线1.基本概念不同(指令)执行方式的总耗时 1.顺序执行方式 没有并行,一次只能执行一条指令。 总耗时 :==指令数n * 指令执行的总时间3t==(3个阶段时间3t) =3nt 2.一次重叠方式 重叠了一个阶段的时间(第n个的最末阶段和第n+1个的最初阶段重叠) 总耗时:==第一条指令all 3t,后面的(n-1)条指令都是 2t。== =(1+2n)t 3.二次重叠执行方式 重叠了两个阶段。 总耗时:==第一条指令all 3t,后面的(n-1)条指令都是 t。== =(2+n)t 流水线的表示方法 指令执行过程图:for分析影响流水线的因素 时空图:for分析流水线的性能 2.性能指标吞吐率 ==单位时间流水线完成的任务数量。== TP = ==任务数n /...
计组-5.7 多处理器
5.7 多处理器的基本概念 只考选择题 多处理器的基本概念总结 补充知识: 并发:间隔进行 并行:同时进行 SISD单指令流单数据流 ==指令只能并发不能并行== 提升方法是采用指令流水线【则主存储器需要用到多模块交叉存储器】 ==一直学的就是SISD== ==一个ALU,一个主存== 不是数据级别的并行技术,也不是线程级别的并行技术 SIMD单指令流多数据流 ==每一时刻只有一条指令在执行== 但是==一条指令可以同时并行地处理多个不同的数据== ...
计组-5.5 异常和中断机制
5.5 异常和中断机制异常:CPU内部产生的意外事件 中断:CPU外部的设备向CPU发出的中断请求 异常和中断的分类异常: ① 硬件中断 终止 ② 软件中断(程序性异常) 故障:在引起故障的指令启动后,执行结束前被检测到的异常事件。无法通过异常处理程序恢复故障,必须终止进程的执行。 自陷:预先安排的一种“异常”事件。 中断: 可屏蔽中断 不可屏蔽中断 ==异常和中断的不同点==: 关联问题:一些异常(eg缺页溢出)是由特定指令在执行过程中发生的。而中断不和任何指令相关联,也不阻止任何指令的完成。 检测问题:异常的检测由CPU自身完成。对于中断,CPU必须通过中断请求线获取中断源的信息,才能知道哪个设备发生了何种中断。 ==断点(处理结束后返回的点)== 异常:一般是返回原点【特殊情况是非法指令...
计组-5.4 微程序控制器
5.4 微程序控制器 一、基本原理设计思路⭐ ==一条机器/汇编/高级指令对应一个微程序== ==一个微程序有多条微指令==(==微周期==,通常为一个机器周期) ==一条微指令可以做多个微操作(微命令)==(构成控制序列的最小单位) 简记:微程序→微指令/周期→微操作/命令 基本结构CU的输入信号来源: ①译码器产生的指令信息 ②时序系统产生的节拍信号 ③执行单元的反馈信息(标志) 工作原理⭐ ==一条机器/汇编指令 的执行过程== = 取指微程序(入口地址一般为CM的0号单元) + 执行微程序(不同指令微程序不同) ==微程序个数== = 机器指令数(每一条指令都有自己的执行微程序) +...
无标题
5.4 硬布线控制器前言:微程序控制器 CU(控制单元)⭐==控制单元CU由一个个小的微操作==(也是控制信号)的电路构成(==物理构成,拼一起==) ==设计CU:==⭐ 列出所有指令在各个阶段的微操作序列,就可以知道所有指令使用微操作的情况→ 得到每一个微操作的电路图→合并得CU ==如何确定(该节拍下)CU应该发出哪些微命令:== by...
计组-5.3 数据通路的功能和基本结构
5.3 数据通路(功能和基本结构)==CPU内部==可视为:==数据通路 + 控制部件== 两大部分。 ⭐ ==数据通路:数据在功能部件之间传送的路径,包括路径上的部件!== 【==不包括控制部件==,因为数据通路由控制部件控制】 例题:ALU,通用寄存器,PSW,Cache,异常和中断处理逻辑等等,都是数据通路的一部分。 1.CPU内数据的流动 寄存器和寄存器 寄存器和主存 寄存器和ALU (可以发现ALU和主存之间没有数据流动,因为主存速度比ALU慢很多。) (主存更多的是拿来当MAR和MDR之间的中转站,且主存相连的寄存器也只有MAR,MDR了) 2.==数据通路的基本结构==⭐① CPU内部单总线方式:CPU内数据通过一条总线传输。(常搭配–多周期处理器,CPI>1) ② CPU内部多总线方式:(常搭配–周期处理器,CPI=1) ③...
计组-5.1 CPU的功能和基本结构
5.1 CPU的功能和基本结构 ==问题:CPU需要提供哪些功能?对应功能需要有哪些结构?== 1.运算器 专用数据通路方式:根据指令执行过程中的数据和地址流动方向安排连接线路 内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。 2.控制器 ==PC的值什么时候修改?== 顺序执行时:取值周期结束后立即修改 转移指令时:执行周期中修改(覆盖掉了取值周期结束后的+1) 条件转移时:如果满足转移:在执行周期中修改;如果不满足转移:保持为取值周期结束后的+1。 ==PC的位数?== 取决于:存储器容量 和 指令字长。 如果用字节地址(8bit)表示指令地址,PC位数=存储器的地址长度 如果用字地址(多少多少个字节凑一起)表示指令地址,PC位数 = 存储器的地址长度 - log₂(需要存储的指令的字节数) 原因是:eg一个指令4字节,变长了,存储器放不下那么多个指令了,得减少一点。 32 -...
计组-5.0 前言
① 计算机与CPU组成 ② 计算机的工作过程 ③ 第五章总览
计组-5.2 指令执行过程
5.2 指令执行过程1.指令周期 ==区分:指令周期,机器周期,时间周期== 指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。【一个指令周期 = x个机器周期】 机器周期:==指令有多少步,就有几个机器周期。==分为 定长机器周期 和 不定长机器周期。又call:==CPU周期==。 时间周期:即节拍,==是CPU的最基本操作单位。== 时间周期是CPU出厂设定好的(主频倒数)。但是不同的CPU的时间周期有长有短。 ==每个指令周期内的机器数可以不等,每个机器周期内的节拍数也可以不等(当机器周期不定长的情况下)。== **==指令完整周期:==**取值 – (间址) – 执行 – (中断)周期。...
计组-4.4 CISC和RISC
相比于CISC==,RISC的特点==是:(Complex / Reduced) ==极简==,速度快。 指令条数少; ==指令长度固定==,指令格式和寻址种类少;**==(功能性不强)==**(编程不方便) 只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作均在寄存器进行; CPU中通用寄存器多; 大部分指令在一个时钟周期内完成;(指令执行时间) 以硬布线逻辑为主,不用或少用微程序控制器控制。 ==必须实现指令流水线控制== 用优化的编译程序,生成的代码高效。
计组-4.3 指令的汇编格式
4.3 指令的汇编级别表示4.3.1-1 汇编语言中的 地址码==指令格式 = 操作码 + 地址码== ==探讨的:汇编指令的数据(地址码)存放在什么地方。(关注于地址码)== 答案哈哈哈:地址码的内容可以放在:寄存器,主存,或者指令里面。 ==下一节:汇编指令可以对数据进行哪些处理。(关注于操作码)== 前言 高级语言→汇编语言→机器语言 汇编角度看待指令 寄存器 寄存器都是==32bit==。(特殊的:通用寄存器可以把E去掉,用低16bit,甚至用低8bit。) 三类常见寄存器:通用寄存器,变址寄存器,堆栈寄存器 通用寄存器 ==..X==【Extended】(EAX,EBX,ECX,EDX) 变址寄存器 ==..I==【Index】(ESI,EDI) 堆栈寄存器 ...
计组-4.2 指令的寻址方式
4.2 指令的寻址方式1.指令寻址(先)指令寻址:寻找 下一条 将要执行 ==指令== 的 ==指令地址==。 程序总是 **根据PC的内容 **去主存(相应位置)取指令的。 PC的位数 取决于存储器总字数 N 。按字寻址时,位数 =log2N (PC可表示的范围 N) 每一条指令的执行都分为:==“取指令”==,“执行指令”两个阶段。 ==PC+1是发生在 取指令 之后!执行指令之前!== 顺序寻址:PC(程序计数器) ==+ “1”==(1指的是指令字长)【为定长而非变长的指令字】 跳跃寻址:通过转移类指令实现。 2.数据寻址(后)==数据寻址:寻找 本条指令 的地址码指明的...
计组-4.1 指令系统
4.1 指令系统0.前言指令系统是 控制器 部分的内容。 从上面可以看出: PC保存的是:当前执行指令的地址(准确的来说 是下一条要执行的指令的地址) 指令的地址码字段保存的是:被操作数的地址(准确来说是 数据或者指令的机器码 的地址) 1.指令集体系结构(ISA) ISA是软件和硬件之间接口的完整定义,包含了:基本数据类型,指令集,寄存器,寻址模式,储存体系,中断和异常处理及外部I/O 一台计算机所有的指令的集合构成该机的指令系统,由叫指令集。 一台计算机只能执行自己指令系统的指令,不能执行其他系统的指令。eg:PC的x86架构,手机的ARM架构。 ==2.指令的基本格式== ==操作码+地址码== 操作码 :给出指令/操作 地址码 :对谁操作/操作对象(给出被操作对象(数据或指令的机器码)存放在内存中的地址。【注释:例如JMP 0x200】 指令字长 ==...
proj3(review)
3.1 Sequential Logic(逻辑时序) The Clock ⭐ Combinatorial Logic vs. Sequential Logic 3.2 Flip Flops 触发器制作允许上一步操作的芯片 ⭐ D 触发器换句话说,DFF 简单地将前一个时间周期的输入值作为当前周期的输出。𝑜𝑢𝑡(𝑡)=𝑖𝑛(𝑡−1) 时序逻辑的原理 寄存器 Bit【寄存器(也)是一种常用的时序逻辑电路】 implement show 3.3 Memory Units Memory The most basic memory element: Register ⭐ (并着排列的) RAM unit (逻辑时序的芯片) RAM / Read Logic RAM / Write Logic A family of 16-bit RAM chips 3.4 Counters (Inc 代表增量[+1]) 3.5 codepreview:DFF 1-bit register...
proj2(review)
2.1 Binary Numbers (an easy way: choose numbers from high to low) 2.2 Binary Addtion Half Adder Full Adder Multi-bit Adder Half Adder – Full Adder – Multi-bit Adder – 16-bit adder 2.3 Negative Numbers① Expression of negative numbers way1 way2: 前一半的二进制数字(0-7)用来表示正数,后一半的二进制数字(8-15)留作表示负数(eg 表示-3,16-3=13) ② Addtion in 2’s Complement -2+(-3)=-5,-5的补码就是11(1011) ③ Computing -x...
proj1(review)
1.1 Boolean Logic==The Formula == The Truth table.== So if you ‘re struggling with the formula, you can use the truth table instead. (This is a function we define. You can define other functions as desired.) ⭐Some useful equations Note that the last two equations are particularly important. Boolean Algebra can be simplified (2 ways) 1.2 Boolean...
proj6
6.1 AssemblerP5 review What we need: an Assembler 汇编器:把汇编语言,转化成机器语言的一个sofe ware(the first sofeware layer above the hard ware) A fun way to look at Assembler We already have our first computer. It is difficult to write machine language. So we can bulid our second computer(is acutally a sofeware haha), which is called Assembler ( can translate assembly language to machine language) Basic Assembler Logicbasic other We have something to deal with - the Symbols. We have two kinds of...
proj5
5.1 Elements Infomation Flows Element + 三条总线 (大概看看,具体的看后面) The Arithmetic Logic Unit data接入ALU,得到输出 输出值返回数据总线 我觉得是输出out或者回去内存? control总线 告诉ALU进行何种操作 ALU 返回告诉 Control 系统其他部分进行什么操作 当 CPU 从程序内存中获取到指令后,会对指令进行解析。对于指令中的控制信息,通过控制总线传出去(让算术逻辑单元、寄存器、内存等部件按要求操作,比如让算术逻辑单元进行加法运算等) 例如如果ALU发现某个数字大于零,他将告诉Control下一个指令的跳转以及下一个指令是什么 Address Register 寄存器储存中间结果。所以数据总线接到Register里 有的寄存器还用作地址储存器,所以register要接入地址总线 (将数字,也就是地址放入寄存器中,然后它就指定了我们想要访问的位置。) Memory Data Memory Data...
proj4
Machine Language4.1 Machine Languages : Overview 内部: 内存包括:程序内存和数据内存 硬件是固定的,软件可更改 软件变化,故计算机可做不同的事情(计算机的universality) let us see how hardware can do many things: by硬件逐个执行指令,把整个指令序列执行完放在一起,就得到了整个程序的功能。 ⭐3-Question machine language ← assembly language 我们写程序用的是高级语言,但电脑真正理解和执行的是机器语言 (其实里面的编译器是分两部的,第一步是高级语言→汇编语言,第二步是汇编语言→机器语言,now看的是part1) 第一种解释 第二种解释 next 4.2 Machine Languages : ElementsMachine Language Memory Hierarchy Registers (in...
proj3
3.1 Sequential Logic(逻辑时序) The Clock ⭐ Combinatorial Logic vs. Sequential Logic 3.2 Flip Flops 触发器制作:允许上一步操作的芯片 ⭐ D 触发器换句话说,DFF 简单地将前一个时间周期的输入值作为当前周期的输出。𝑜𝑢𝑡(𝑡)=𝑖𝑛(𝑡−1) 时序逻辑的原理 寄存器 Bit【寄存器(也)是一种常用的时序逻辑电路】 implement show 3.3 Memory Units Memory The most basic memory element: Register ⭐ (并着排列的) RAM unit (逻辑时序的芯片) RAM / Read Logic RAM / Write Logic A family of 16-bit RAM chips 3.4 Counters (Inc 代表增量[+1]) 3.5 codepreview:DFF 1-bit register...
proj2
2.1 Binary Numbers 2.2 Binary Addtion 2.3 Negative NumbersExpression of negative numbersway1 way2: 前一半的二进制数字(0-7)用来表示正数,后一半的二进制数字(8-15)留作表示负数(eg 表示-3,16-3=13) Addtion in 2’s Complement -2+(-3)=-5,-5的补码就是11(1011) Computing -x Eg算-4的二进制表达:4=100,1111-0100(1111怎么来的,令n=4(意味着用4位二进制数来表示值)) 取反码:1111-0100=1011,求补码:1011+1=1100 1100=12,就是4的补码(16-4=2) Eg 具体步骤: 2.4 ALU The Hack ALU The Hack ALU operation example zr,ng(other...
proj1
Proj11.1 Boolean Logic ⭐Some useful equations →Boolean Algebra can be 化简 (Two way : ①equations,②write down the truth table) 1.2 Boolean Function001: 理论上,任何布尔函数都可以用NotAndOr等表示出来(通过真值表选取f=1的情况)(做芯片有用) 002: (or可以通过And和Not表示) 003: 而Nand可以表示出AndNot芯片(根本的根本) 1.3 Logic Gates上一节是抽象的逻辑运算,这一节是实际的芯片/逻辑门 一个接口,可以有不同的实现 1.4 Hardware Description Language一种硬件描述语言(做硬件/芯片用的) 芯片接口 和 芯片实现 ⭐实现:用真值表看1,写出布尔函数化简,画出逻辑图 1.5 Hardware Simulation for 模拟芯片测试 way:在给定的硬件模拟器中 +...

