计算机系统层次结构

计算机系统层次结构

计算机系统的组成

硬件系统和软件系统共同构成了一个完整的计算机系统

计算机硬件
冯 诺依曼机

特点:

  • 采用“存储程序”的工作方式
  • 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部分组成
  • 指令和数据以同等的地位存储在存储器中,形式上没有区别,但计算机能区分
  • 指令和数据均用二进制代码表示,指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址

存储程序 的基本思想:将事先编制好的程序和原始数据送入主存后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束

计算机的功能部件
输入设备

将程序和数据以机器所能识别和接受的信息形式输入计算机

输出设备

将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出

存储器
  • 主存储器
  • 辅助存储器

CPU能够直接访问主存储器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0d6JZky5-1659450461394)(C:\Users\wyy0828\AppData\Roaming\Typora\typora-user-images\image-20220729224812805.png)]

地址寄存器(MAR):存放访存地址

数据寄存器(MDR):暂存要从存储器中读或写的信息

时序控制逻辑:用于产生存储器操作所需的各种时序信号

MAR为10位,则有 2 10 2^{10} 210=1024个存储单元

MDR的位数和存储字长相等

MAR与MDR虽然是存储器的一部分,但在现代计算机中却是存在于CPU中的

高速缓存(Cache)也存在于CPU中

运算器

进行算数运算和逻辑运算

运算器的核心是算数逻辑单元(ALU)

包含若干通用寄存器:暂存操作数和中间结果

  • 累加器(ACC):必须
  • 乘商寄存器(MQ):必须
  • 操作数寄存器(X):必须
  • 变址寄存器(IX)
  • 基址寄存器(BR)

程序状态寄存器(PSW):标志寄存器,存放ALU运算得到的一些标志信息或处理机的状态信息

控制器

计算机的指挥中心

组成:

  • 程序计数器(PC):存放当前欲执行指令的地址,可以自动加一指向下一条指令
  • 指令寄存器(IR):存放当前的指令,其内容来自主存的MDR
  • 控制单元(CU):分析指令并发出各种微操作命令序列

中央处理器(CPU):一般将运算器和控制器集成到同一个芯片上

CPU和主存储器构成主机

除主机外的硬件装置为外设

计算机软件

按其功能分类:

  • 系统软件:一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用,主要有:操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等
  • 应用软件:用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程序
三个级别的语言
  • 机器语言:二进制代码语言,计算机唯一可以识别和执行的语言
  • 汇编语言:用助记符编写,以便记忆
  • 高级语言:(C、C++、JAVA等)

翻译程序:

  • 汇编程序(汇编器):将汇编语言翻译成机器语言
  • 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行
  • 编译程序(编译器):将高级语言翻译成汇编语言或机器语言程序
软件和硬件逻辑功能等价性

硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现

计算机系统的层次结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QqEw6Z4p-1659450461395)(C:\Users\wyy0828\AppData\Roaming\Typora\typora-user-images\image-20220802183723244.png)]

  • 微程序机器层
  • 传统机器语言层
  • 操作系统层
  • 汇编语言层
  • 高级语言层

下层是上层的基础,上层是下层的扩展

计算机系统的工作原理
从源程序到可执行文件

翻译四个阶段:

  • 预处理阶段
  • 编译阶段
  • 汇编阶段
  • 链接阶段
指令执行过程的描述

取数指令:

取指令:

根据PC取指令到IR

PC->MAR->M->MAR->IR

分析指令:

指令译码并送出控制信号

OP(IR)->CU

执行指令:

取数操作

Ad(IR)->MAR->M->MDR->ACC

计算机的性能指标

字长

是指计算机进行一次整数运算所能处理的二进制数据的位数

数据通路带宽

是指数据总线一次所能并行传送信息的位数

主存容量

是指主存储器所能存储信息的最大容量

运算速度
吞吐量

指系统在单位时间内处理请求的数量

响应时间

用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间

主频(CPU的时钟频率)

机器内部主时钟的频率,是衡量机器速度的重要参数

CPU时钟周期

主频的倒数,CPU中最小的时间单位

CPI

执行一条指令所需的时钟周期数

CPU执行时间

运行一个程序所花的时间

CPU执行时间 = CPU时钟周期数 / 主频 = (指令条数 * CPI)/ 主频

CPU的性能取决三要素:

  • 主频
  • 每条指令执行所用的时钟周期数(CPI)
  • 指令条数
MIPS

每秒执行多少百万条指令

MIPS = 指令条数 / (执行时间 * 1 0 6 10^6 106) = 主频 / (CPI * 1 0 6 10^6 106

MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS和ZFLOPS
  • MFLOPS:每秒执行多少百万次浮点运算;MFLOPS = 浮点操作次数 / (执行时间 * 1 0 6 10^6 106
  • GFLOPS:每秒执行多少十亿次浮点运算;GFLOPS = 浮点操作次数 / (执行时间 * 1 0 9 10^9 109
  • TFLOPS:每秒执行多少万亿次浮点运算;TFLOPS = 浮点操作次数 / (执行时间 * 1 0 12 10^{12} 1012
  • PFLOPS = 浮点操作次数 / (执行时间 * 1 0 15 10^{15} 1015
  • EFLOPS = 浮点操作次数 / (执行时间 * 1 0 18 10^{18} 1018
  • ZFLOPS = 浮点操作次数 / (执行时间 * 1 0 21 10^{21} 1021
基准程序

专门用来进行性能评估的一组程序,能够很好的反映机器在运行实际负载时的性能

专业术语
  • 系列机:具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列
  • 兼容:软件或硬件的通用性
  • 软件可移植性:把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性
  • 固件:将程序固化在ROM中组成的部件称为固件

Tips

冯 诺依曼机的基本工作方式是控制流驱动方式

寄存器在CPU内部,速度最快

Cache采用高速的SRAM制作,内存常用DRAM制作,速度比Cache慢

数据库系统是应用软件,数据库管理系统是系统软件

存储字长是一个存储单元中的二进制代码的位数

存储字长等于MDR的位数

数据字长是数据总线一次能并行传送信息的位数,可以不等于MDR的位数

汇编程序员可以通过指定待执行指令的地址来设置PC的值,状态寄存器、通用寄存器只有为汇编程序员可见

IR、MAR、MDR是CPU的内部工作寄存器,对程序员均不可见

提高CPU主频、扩大主存容量对性能的提升是有限度的,采用并行技术是实现高性能激素那的重要途径

字长,也称机器字长,是指CPU内部用于整数运算的数据通路的宽度,也等于CPU内部用于整数运算的运算器位数和通用寄存器宽度

指令字长:一个指令字中包含的二进制代码的位数

存储字长:一个存储单元存储的二进制代码的长度

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xy66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值