CS61C|Lec18-IO
CPU与外界交互的方式是通过I/O接口 如何实现I/O接口呢 方法一: 使用特殊的输入输出指令和对应的硬件设计 方法二: 内存映射I/O(Memory-Mapped I/O) 定义:将I/O设备的寄存器映射到处理器的地址空间中,形成一个特定的地址范围用于I/O操作。 操作方式: 使用普通的加载(lo...
CPU与外界交互的方式是通过I/O接口 如何实现I/O接口呢 方法一: 使用特殊的输入输出指令和对应的硬件设计 方法二: 内存映射I/O(Memory-Mapped I/O) 定义:将I/O设备的寄存器映射到处理器的地址空间中,形成一个特定的地址范围用于I/O操作。 操作方式: 使用普通的加载(lo...
虚拟内存的主要功能: 大内存的幻觉:虚拟内存使得程序看起来可以访问一个非常大的主存。程序的工作集(即正在活跃使用的内存页面)保存在物理内存中,而不常用的页面则保存在磁盘上。 请求分页(Demand Paging):虚拟内存通过请求分页技术,让程序运行的内存可以超过物理内存的大小。当程序需要访问某个不在主存中的页面时,会触发页面调度,将所需页面从磁盘加载到...
操作系统的基本功能 操作系统是计算机启动时运行的第一个程序。 查找并控制所有设备 操作系统会发现并控制计算机中的所有硬件设备,例如硬盘、网络接口、显示器、键盘、鼠标等。因为每个设备的操作方式不同,操作系统依赖设备驱动程序(device drivers)来与不同的硬件进行通信。设备驱动程序是硬件制造商提供的特定程序,用于帮助操作系统与硬件正确交互。 启动服务(100多个): ...
二进制前缀 常用前缀(SI和非SI) Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta:这些是常用的存储和数据传输前缀,表示不同的数量级。 SI值 vs. 常见用法:在计算机领域,有时这些前缀的用法和国际单位制(SI)有区别。例如: “kilobyte”在常用中指的是1024字节...
前面介绍了一下关于如何衡量处理器性能,还有一些关于功耗的问题,感觉不太重要就随便听了一下,所以也没记笔记。 Pipelining 用流水线来提高吞吐量 流水线的作用: 流水线不会减少单个任务的延迟,但它可以提高整个工作负载的吞吐量。 流水线允许多个任务同时使用不同的资源。 ...
为什么挑6-9月作为一个时间阶段? 因为对于在3月还几乎是0基础(算了其实就是0基础)的我来说,前三个月的时间基本上都花在了学习基础语法上了,并没有什么做出来的项目。所以就挑6-9月(致敬大耳朵),也刚好是暑假期间的所学所感,正巧也记录下我人生中第一个没有虚度的暑假吧。 6月份主要把时间花在gitlet上 gitlet: 一个轻量版的git,我只拿到了基础的学分,也就是在本地进行管理的...
Control and Status Registers 控制状态寄存器CSRs,不属于寄存器堆中的寄存器(x0-x31),也就是不属于数据寄存器。被用于监视状态和性能,标准的RISCV最多可以有4096个CSRs。 他不属于基础指令集(因为模块化的原因被移除了),但是几乎存在于每个处理器中。 不知道为什么要提CSRs,去看了一下别的年份都没提到。 不过还是了解一下吧 CS...
What’s a CPU Your CPU in two parts Datapath(数据通路):数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件,如ALU、通用寄存器等。 Control(控制器):它需要根据输入指令做出决策,例如确定当前执行的操作类型、是否需要从内存中获取信息、是否需要将结果写入寄存器以及写入哪个寄存器。 One-Instruction...
Muxes Data Multiplexor 多路转换器是一个选择器,N-to-1 下面是一个n位的2选1多路选择器 如图所示,接受了两个n位的输入,输出一个n位 接下来我们将来实现一个1位的2选一MUX 下面是一个1位4选一MUX的示例 思考一下真值表会有多少行? 答案是$2^6$,因为我们有a,b,c,d,s1,s0六个输入,要是要列真值表太麻烦了! 我...
Hardware Design Overview Synchronous Digital Systems (SDS) Synchronous: 所有操作由中央时钟协调。 系统的“心跳(Heartbeat)”(处理器频率(processor frequency)) Digital: 将所有的值都表示成两个离散的值 ...