热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微程序级计算机系统,[计组原理篇]计算机系统概论

计算机系统简介软硬件概念计算机系统由硬件和软件两大部分组成.所谓“硬件”:是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机

计算机系统简介

软硬件概念

计算机系统 由"硬件"和"软件"两大部分组成.

5c2295bf7f9029065311eab2a27357c3.png

所谓“硬件”:

是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外部设备等.

所谓“软件” :

它看不见摸不着,由人们事先编制的各种具有各类特殊功能的程序组成.

66a6feb29a398a934663be4aa4c3147e.png

计算机系统层次结构

计算机系统层次结构,指的是计算机系统由硬件和软件两大部分所构成,而如果按功能再细分,可分为7层。

把计算机系统按功能分为多级层次结构,就是有利于正确理解计算机系统的工作过程,明确软件,硬件在计算机系统中的地位和作用。

3e42a8d688ac41171e762765c013e5e8.png

硬联逻辑级:

这是计算机的硬件,

由存储器、控制器、中央处理器和输入输出设备组成。

微程序级:

这级的机器语言是微指令集,

程序员用微指令编写的微程序,

一般是直接由硬件直接执行的。

传统机器级:

这级的机器语言是该机的指令集,

程序员用机器指令编写的程序可以由微程序进行解释。

操作系统级:

从操作系统的基本功能来看,

一方面它要直接管理传统机器中的软硬件资源,

另一方面它又是传统机器的延伸.

汇编语言级:

这级的机器语言是汇编语言

完成汇编语言翻译的程序叫做汇编程序.

高级语言级:

这级的机器语言就是各种高级语言

通常用编译程序来完成高级语言翻译的工作

应用语言级:

为了使计算机满足某种用途而专门设计的

因此这一级语言就是各种面向问题的应用语言.

8170ca911017826ac3b4e77dcba4043b.png

组成和体系结构

注意:这是两个不同的概念

计算机体系结构

是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构和功能特性.

机器属性:

指令系统

数据类型

存储器寻址技术

I/O机理

...

计算机组成

是指如何实现计算机体系结构所体现的属性,包硬件细节.(具体指令的实现)

举例说明:

指令系统体现的是机器的属性,所以归类为计算机体系结构的问题;但是如何取指令、分析指令、取操作数、运算等则属于计算机组成的问题.

计算机基本组成

冯-诺依曼计算机特点归结:

组成(五大部件):运算器、存储器、控制器、输入设备和输出设备

指令和数据以同等地位存储与存储器,可按地址寻访

指令和数据用二进制表示

指令由操作码和地址码组成

#操作码用来表示操作的性质

#地址码用来表示操作数在存储器中的位置

指令在存储器内按顺序存放

机器以运算器为中心

计算机硬件框图:

冯诺依曼计算机硬件框图:

2eb4fca291a9eaf7428bb333069ed737.png

以存储器为中心的计算机硬件框图:

50475e4e6dbd2ae7c5bf252877ad6001.png

现代计算机硬件框图:

b7a723aabacdfa2844c4c4e64d3cde11.png

各部件功能如下:

运算器:

完成算术运算和逻辑运算

并将运算的中间结果暂存在运算器内

存储器:

存放数据和程序

控制器:

控制、指挥程序和数据输入、运行以及处理运算结果

输入设备:

将人类的信息形式转换为机器可识别的信息形式

输出设备:

将机器运算结果转换为人类熟悉的信息形式

五大部件的组成:

下图是细化的计算机组成框图:

8bd802f222c2a9d87a778884e69cc842.png

主存储器

主存储器(简称主存/内存)包括存储体M、各种逻辑部件及控制电路.

存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元,存储元),每个存储元件能寄存一位二进制代码"0"或"1".

98e1959968a8562c48e35a59d62a036d.png

为了能实现按地址访问的方式,主存中还必须配有两个寄存器MAR和MDR.

MAR(Memory Address Register)是存储地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(如MAR为10位,则有2^10=1024个存储单元,记为1K).

MDR(Memory Data Register)是存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储器单元存入的代码,其位数与存储字长相等.

83777f8983f806303cc6c70cf23e17ff.png

运算器

运算器最少包括3个寄存器(通用寄存器组)和一个算术逻辑单元(ALU).其中ACC(Accumulator)为累加器,MQ(Multiplier-Quotient Register)为乘商寄存器,X为操作数寄存器.

ca5547b989f495b3776171dba1fd1840.png

控制器

控制器由程序计数器(Program Counter, PC)、指令寄存器(Instruction Register, IR)以及控制单元(CU)组成.

PC用来存放当前欲执行指令的地址,它与主存的MDR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址.

IR用来存放当前的指令,IR的内容来自主存的MDR.

CU用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象.

17dbedc708545521cf9ff694b3b94639.png

I/O

I/O子系统包括各种I/O设备及其相应的接口.每一种I/O设备都由I/O接口和主机联系,它接收CU发出的各种控制指令,并完成相应的操作.

各种语言的特点

高级语言:

这类语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性.

汇编语言:

用符号表示操作, 并用符号表示指令或数据所在存储单元的地址, 使程序员可以不再使用繁杂而又易错的二进制代码来编写程序.

机器语言:

用户必须用二进制代码来编写程序。 要求程序员对他们所使用的计算机硬件及其指令系统十分熟悉,编写程序难度很大,操作过程也极容易出错.

硬件的技术指标

机器字长

机器字长是指 CPU一次能处理的数据的位数,通常与 CPU的寄存器位数有关.

机器的字长会影响机器的运算速度.

存储容量

存储器的容量包括主存容量和辅存容量.

主存容量是指主存中存放二进制代码的总位数.即

存储容量 = 存储单元 x 存储字长

辅存容量通常用字节数表示

1字节=8bit=8位二进制代码

如某辅存(机械硬盘)的容量为80GB(1G=1024M=210 x 220=230)

运算速度

计算机的运算速度与许多因素有关,如机器的主频、操作的性质、主存本身的速度(主存速度快,取指令、取数据就快)等都有关.

5aefedddcabe623e094ff4bf8c5dcced.png

参考资料:

《计算机组成原理》



推荐阅读
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
author-avatar
倾其h所有只为爱你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有