基于大型主机的计算机组成原理实验教学改革
2020-07-09冯巾松张冬冬尹学锋
高 珍,黄 杰,冯巾松,张冬冬,尹学锋
(1.同济大学 软件学院,上海 201804;2.同济大学 电子与信息工程学院,上海 201804)
0 引言
在计算机学科中,计算机组成原理一直作为核心基础课程而备受重视,但是课程对硬件知识的高要求使它被公认为枯燥难学的课程,为了加深学生对理论知识的理解,需要辅助实践环节增强学生掌握课程内容。国内外大学纷纷开展计算机组成原理的课程设计,比如美国斯坦福大学要求学生独立使用VHDL 语言实现CPU 或VGA显示控制模块等,并最终在FPGA 中完成软硬件调试。
同济大学采用“口袋”式实验平台Xilinx Nexys4 DDR 开发板,学生人手一块,要求每位学生独立完成基本逻辑部件、运算部件、指令系统、中央处理器、三级存储结构及综合应用实验,但是,目前国内外的实验多数还是以验证性的插箱实验为主,学生只能从抽象层面理解各部分知识点,知其然而不知其所以然,且当前的实验设计与改革探索多数集中在中央处理器CPU上[1],因硬件支撑困难等原因,鲜有存储管理与输入输出通道管理的完整实验,使实验教学内容不完整,学生无法从系统层面对计算机的组成原理有深入的理解和掌握。
1 大型主机作为实验平台的必要性及可行性分析
1964年IBM公司推出了System/360 计算机,尽管在过去几十年中计算机的发展速度令人吃惊,但System/360 包含的基本技术概念仍是通用计算机行业骨干的组成部分,System/360 的诞生标志着现代计算时代的来临,计算机组成原理与计算机系统结构的很多基础性知识依然是从System/360 而来。
至今,大型主机在全球依然发挥着重要作用,在银行、金融、医疗、保险、公用事业、政府机关和大量的其他公有及私有企业中,主机继续构成现代商务的基础,也因其极高的可用性、可靠性及可维护性,大型主机广泛应用在我国银行业。
为了建立大型主机的生态系统,2005 年IBM 公司向国内高校捐赠5 台IBM z900 主机,与国内高校携手共建主机课程,同济大学作为华东地区唯一一所高校加入IBM 大型主机系统教育合作计划,同济大学“主机系统教育中心”面向软件工程学科开设大型主机系列课程,至今已经有14 届学生选修[2];2014 年IBM 与同济大学等6 所高等院校再次合作建设6 个“新一代主机中心”,对大型主机进行了更新换代;2019 年同济大学首次在IBM 公司的支持下采用开源技术建设了大型主机虚拟仿真实验平台,主机教学不再受制于高昂的硬件采购及维护费用,基于虚拟主机平台进行计算机课程的日常教学成为可能。
2 虚实结合的实验架构
在计算机组成原理传统的教学方法[3-4]中,授课教师以理论讲述为主,实验以验证性的插箱实验为主,学生只能从抽象层面理解各部分知识点,知其然而不知其所以然,更无法从系统层面对计算机的组成原理有深入的理解和掌握[5-6]。为了打破这种局面,可以设计从芯片到大型主机的虚实联动计算机组成原理系统实验,本着“能实不虚”的原则,实的部分要求学生基于FPGA开发板自底向上从CPU 部件做起,直至实现自己的单周期/多周期、非流水线/流水线CPU,并完成三级存储结构、设计基于IO 接口的计算机综合应用实验,理论和实践有效结合以提高学生对于CPU 原理的理解,提升学生的动手能力和实践能力。虚的部分对于计算机的存储系统和输入输出系统的组织和管理等不能做实的实验内容,基于IBM 大型机的虚拟仿真平台设计存储管理及I/O 通道管理虚拟实验,涉及的内容见图1,以加深学生对理论知识的消化和理解,从而使学生从芯片到大型主机对计算机组成原理有更全面深入的掌握。
3 实验设计
3.1 大型主机虚拟仿真实验平台
图1 实验教改范围
大型主机有两类虚拟机,一类是IBM 公司提供的zPDT 平台,一类是开源Hercules 平台,考虑到实验平台的可扩展性,采用Hercules 构建仿真平台,在虚拟机上部署IBM 公司为高校人才培养提供的主机操作系统ADCD(Application Developers Controlled Distributions)版本,基于主机虚拟机,采用Spring Cloud 的微服务技术,调用主机z/OS MF (Management Facility)提供的RESTful API 编程接口,开发建设大型主机虚拟仿真实验平台,对外提供网络服务。
3.2 存储管理实验设计
计算机使用两种类型的物理存储,包括中央存储器(又称内存)和辅存实现虚拟存储。虚拟存储的使用是现代操作系统的一大特征,使计算机在处理大量工作负载的同时并发地和大量用户交互。以大型主机为例,z/OS 操作系统支持64位地址,这允许一个程序寻址高达16EX 的存储空间。在实际中,主机一般会装配比这个小得多的中央存储器。为了使每个用户执行时感觉计算机系统中好像真有这大的存储空间,z/OS 只把每个程序的活动部分存放于中央存储器中,而把其余的代码和数据保存在辅助存储器的页数据集(Page Data Sets)文件中,PDS 文件就位于硬盘辅存上。
对虚拟存储的访问使用虚拟地址,以主机为例,地址空间(Address Space,即操作系统分配给用户或独立运行程序的虚拟地址范围)被划分成4KB 大小的虚拟存储单元,称为“页”;地址空间被划分成1MB 大小的单元,称为“段”。一个段是连续的跨越兆字节的虚拟地址块,它从1MB 的边界处开始。譬如,一个2GB 的地址空间由2 048 个段组成。地址空间被划分成2~8GB大小的单元,称为“区域”。一个区域由跨越2~8GB 的连续虚拟地址块组成,它从2GB 的边界开始,一个2TB 的地址空间由2 048 个区域组成。因此,64 位的虚拟地址被划分为4 个主要区域,0~32 位为区域索引(RX),33~43 位为段索引(SX),44~51 位为页索引(PX),52~63 位为字节索引(BX),结构见图2。
图2 虚拟地址划分
操作系统可以使用查表确定一个页是在实存还是在辅存中,并确定其在存储器中的位置。在查找程序的一个页时,系统得到该页的虚拟地址,根据需要将该页调入中央存储器或者调出辅存中。在辅存和实存之间的页面移动称为页面调度。页面调度是理解虚拟存储的关键。
大型主机依赖实存管理器、辅存管理器以及虚存管理器对存储系统有效监管。实存管理器主要负责页面调度活动;辅存管理器主要用于跟踪辅存的使用情况;虚存管理器响应获得或释放虚存的请求。页面在内存、虚存和辅存中对应的名字分别为页框、页面和页槽。
为了让学生更深入地了解虚拟存储的运作机制,可以设计虚拟存储管理实验,见表1。学生需要:①监控内存使用率,通过查看UIC(Unreferenced Interval Count)等指数判断内存大小是否够用;②配置辅存大小并监控,如果长期维持在30%以上,则需要增加辅存空间。眼见为实,通过这些实验练习,虚存调度不再是书本上的抽象算法,学生对虚存的运作机制有了更直观的认识和更深入的理解。不仅如此,学生更掌握了如何查看监控、分析原因、通过修改辅存配置等方法切实提升虚存的使用性能。
表1 存储管理实验设计
3.3 I/O 通道管理实验设计
对于输入输出设备,控制其正常工作需要依赖通道子系统(Channel SubSystem,CSS)。通道子系统一般只在大型计算机系统中才有,在大型计算机系统中,外围设备的台数一般比较多,设备的种类、工作方式和工作速度的差别也比较大。为了把对外围设备的管理工作从CPU 中分离出来,从IBM 360 系列机开始,普遍采用通道处理机技术。通道技术能够使CPU 摆脱繁重的输入输出负担和共享I/O 接口,通道处理机能够负担外围设备的大部分I/O 工作,通道处理机虽然不是一台具有完整指令系统的处理机,但是可以把它看作一台能够执行有限I/O 指令,并能被多台外围设备共享的小型专用处理机。在一台大型计算机系统中可以有多个通道,一个通道可以连接多个设备控制器,而一个设备控制器又可以管理一台或多台外围设备,这样就形成了一个非常典型的I/O 系统多级层次结构。以大型主机为例,I/O 系统包括6 层。
(1)逻辑分区(Logical Partition,LPAR),是一种虚拟机,在每个逻辑分区上都可以运行一个单独的操作系统。通过LPAR 技术可以将一台主机划分为多个逻辑上独立的机器,每一个LPAR 所占的内存是相互独立的,但是CPU、通道等是共享的。
(2)通道子系统(Channel Subsystem,CSS),主要由两部分构成:SAP 和Channel。SAP(System Assist Processor) 称为系统辅助处理器,与中央处理器CP(Central Processor)唯一的不同之处在于两者拥有不同的指令集,这主要取决于两者的职责不同。SAP 的主要功能是为即将执行的I/O 操作寻找可用的通道(Channel)和控制单元(Control Unit)。
(3)通道(Channel),负责I/O 操作,即在内存和外设之间进行数据传输。
(4)交换机(Switch),是一种将通道和控制单元连接起来的中间设备,包含多个端口,这些端口在物理上是两两相连的,可以实现一个通道与多个设备连接,从而增加了通路,提高了并发性和可用性。
(5)控制单元(Control Unit,CU),是通道与I/O 设备之间的接口,它接收通道命令,控制I/O 设备工作。
(6)I/O 设备(Device),也称输入输出设备,包括打印机、打孔机、磁带、磁盘、控制台等。
I/O 系统多级层次结构示意图见图3。
图3 大型主机I/O 系统多级层次结构
为了让学生深入了解通道控制及输入输出系统,基于大型主机的HCD 设计一组硬件管理的实验如下。HCD(Hardware Configuration Definition)是主机操作系统z/OS 的一个重要组件,它提供ISPF 交互界面定义硬件资源,包括服务器、逻辑通道子系统、逻辑分区、通道、交换机、控制单元、设备等。实验目的为掌握I/O系统中各层级软硬件的定义、配置和控制。具体的实验设计见表2。
HCD 可以按照任何顺序配置定义硬件,但如果随意定义硬件配置,很可能导致逻辑混乱,影响硬件配置定义的工作。因此,要有一个逻辑上的顺序作为参考,推荐的硬件配置逻辑关系见图4。
通过I/O 通道管理实验,学生学习到I/O 系统中各层级软硬件的定义、配置和控制方法,加深理解了I/O 通道的运行机制,并且掌握了大型主机I/O 设备配置管理的实际技能。
4 结语
计算机组成原理是计算机专业及软件工程专业本科生的重要必修专业基础课程。它涵盖计算机的基本逻辑部件、运算部件、指令系统、中央处理器、存储系统、输入输出系统的基本原理。同济大学计算机与信息技术国家实验教学示范中心整合了教育部IBM 精品课程大型主机系统管理与计算机组成原理传统教学,在2019 年建设完成的大型主机虚拟仿真实验平台上,为计算机组成原理课程开发了存储管理实验与I/O 通道管理实验,对原有CPU 综合实验进行了有效补充,使学生能够全面掌握并深入理解计算机的运算部件、指令系统、中央处理器、存储系统、输入输出系统的基本原理。经统计,计算机组成原理实践环节的年级平均成绩比改革之前提升了30%,取得了理想的教学效果。
表2 I/O 通道管理实验设计
图4 硬件配置管理逻辑关系