CS:APP 第一章:计算机系统漫游(2)

1.4 处理器读并解释存储在存储器中的指令

在前面的章节中,已经将hello.c编译为了可执行文件hello。在Unix/Linux中,我们要在Shell中输入命令执行该文件。当然,现在有了GUI的存在我们要执行文件不再仅仅是通过Shell了。

$./hello

在Shell中执行后,程序将会打印出hello, world。在这一小节中,将是介绍存储在磁盘中的可执行文件时如何被执行的。

1.4.1 系统的硬件组成

下图是Intel Pentium系统产品系列的模型图。一个典型系统的硬件一般都包含以下几个部分:处理器、主存、总线、I/O设备。
硬件组成模型
1. 总线
总线是贯穿整个系统的一组电子管道,负责携带信息在各个部件之间传递。总线通常被设计为传输一定的长度的字节块,该长度被称之为字长,即总线一次内能传输的字节个数。现在计算机的总线字长大多被设计为4个字节(32位)或8个字节(64位)。
2. I/O设备
I/O设备是连接计算机与外界的设备,如在图中的鼠标、键盘、显示器与磁盘。每个I/O设备通过控制器或者适配器(如网络适配器,即网卡)与I/O总线进行连接。控制器通常置于I/O设备本身或系统的主板之上,而适配器通常是可以插在主板扩展槽上的卡。
3. 主存
主存是在处理器执行程序的过程中,用来临时存放程序和程序处理的数据的一组由动态随机存取存储器(DRAM)芯片组成的设备。主存在逻辑上是一个从零开始的线性字节数组,每个字节拥有一个固定且唯一的地址。
4. 处理器
处理器通常被称之为CPU(Central Processing Unit,中央处理单元),是一个执行在主存中的指令的设备。处理器的核心是一个字长的寄存器,称为程序计数器(PC),它指向主存中某条指令的地址。在系统通电期间,处理器不断执行PC指向的指令,并更新PC使其指向下一条指令,但下一条指令不一定与当前指令的地址相邻(如jmp xxxx)。上述处理器的操作主要是围绕着主存、寄存器文件和算术/逻辑单元(ALU, Arithmetic/Logic Unit)进行的。寄存器文件是由拥有各自唯一名字的1字长的寄存器组成,用来临时存储数据,具有极快的读写速度(将在1.6中提及)。ALU负责计算新的数据和地址值。下述是CPU在执行指令时可能会执行的几种操作:
加载:从主存复制一个字节或一个字长的内容到寄存器,并覆盖原内容。
存储:与加载相反,从寄存器复制至主存
操作:将两个寄存器的内容复制至ALU,ALU对其进行算术运算后将结果存放到一个寄存器中。
跳转:将一个字的内容复制至PC中,即将其设为下一条执行的指令的地址。

1.4.2 运行hello程序

在运行hello程序的时,我们需要在Shell中输入./hello,Shell会将我们从键盘上输入的字符逐一读入寄存器中,之后再将其存放至主存中。
从键盘上读取hello命令
当我们输完命令敲下回车键后,代表着命令的输入已经结束,然后Shell会加载可执行文件hello,将hello中的指令与数据从磁盘复制至主存中。
从磁盘中加载可执行文件到主存
当hello中的数据与指令已经被加载至主存中,处理器就将会开始执行hello程序的指令。指令执行的结果会将”hello, world\n”中的字节从主存中复制至寄存器中,再从寄存器复制至显示设备上。完成这一过程后,将可以在显示屏上看到hello, world(\n代表换行)。
将输出的字符串从内存写到显示器


1.5 高速缓存至关重要

在程序运行的过程中,需要花费大量的时间将信息在不同设备之间传输。根据机械原理,较大的设备运行速度要慢于较小的设备,但价格远低于较小的设备。例如典型的寄存器文件只能存储几百字节信息,而主存里可存放几十亿字节,但寄存器的数据读取速度比主存将近快100倍且差距持续增大(加快处理器运行速度比加快主存速度要经济且较容易)。
为了针对这种差异,系统设计者采用了较主存更小、更快的存储设备,即高速缓存存储器,用以临时存放处理器近期可能需要的信息。位于处理器芯片上的L1告诉缓存容量可以达到数万字节(例如i5-2450M的L1的大小是2*64KB),而访问速度接近寄存器文件的速度。
除L1高速缓存外,还有容量更大的L2高速缓存和L3高速缓存通过一条特殊的总线连接到处理器中(现在随着技术发展大多已集成在处理器芯片中)。L2与L3高速缓存虽然速度小于L1高速缓存,但仍然比直接访问主存快数倍。
高速缓存存储器是使用一种叫静态随机访问存储器(SRAM)的硬件技术实现的。在程序的运行过程中高速缓存存放了程序可能经常需要访问的数据,大大减少了信息读取过程中时间的消耗,提高了程序运行的速度。
高速缓存


1.6 存储设备形成层次结构

下图是不同存储设备之间的关系。在存储设备金字塔中,越靠近塔尖的设备运行速度越快,但其容量小于下层设备且价格更贵;相反,越靠近底端的设备容量大且价格较为便宜,但运行速度较慢。在计算机系统中,CPU中的寄存器文件位于金字塔最顶端,L1至L3高度缓存低于寄存器文件但高于主存,而本地磁盘和远程网络服务器的磁盘文件位于金字塔的最底端。
在一个较快的存储设备(如CPU寄存器)与一个较慢的存储设备(如主存)之间插入一个比后者更小但更快的设备(如L1-L3高速缓存)能有效得提高计算机系统的运行速度。
存储器的层次结构示例


其它

文中内容主要源自深入理解计算机系统第二版,部分图片来自于该书中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值