《计算机组成与设计(硬件/软件接口)》第1章——计算机抽象及相关技术

1.1引言

1.1.1传统的计算应用分类及其特点

        1.计算机主要被用于三种不同的应用场景:

        1.个人计算机:用于个人使用的计算机,通常包含图形显示器、键盘和鼠标。

        2.服务器:用于为多个用户并行运行大型程序的计算机,通常只能通过网络访问。

        3.超级计算机:具有最高的性能和成本的一类计算机,一般被配置为服务器且通常耗费数千万美元甚至数亿美元。

        2.嵌入式计算机是用于运行某预定应用程序或软件集合的计算机,一般内嵌于其他设备中。

1.1.2欢迎来到后PC时代

        1.个人移动设备在一定程度上代替了个人电脑,它是连接到互联网的小型无线设备;依靠电池供电,并通过下载App的方式来安装软件。

        2.而云计算则接替了传统服务器,它是通过互联网提供服务的大规模服务器集群,一些服务提供商动态地将不同数量的服务器作为像水、电一样的公用资源进行租用。

1.1.3 你能从本书中学到什么

        

1.2计算机体系结构中的8个伟大思想

1.2.1面向摩尔定律的设计

        1.摩尔定律指出单芯片上所集成的晶体管资源每18至24个月翻一番。

1.2.2使用抽象简化设计

        1.提高硬件和软件生产率的主要技术之一是使用抽象来表示不同的设计层次——隐藏底层细节以提供给高层一个更简单的模型。

1.2.3加速经常性事件

        1.加速经常性事件远比优化罕见情形能够更好地提升性能。

1.2.4通过并行提高性能

        1.通过并行计算操作可以获得更高性能。

1.2.5通过流水线提高性能

1.2.6通过预测提高性能

        1.在某些情况下,假设从预测错误中恢复地代价并不高,且预测相对准确,则平均来说进行预测并开始工作可能会比等到明确结果后再执行更快。

1.2.7存储层次

        1.在存储层次中,速度最快、容量最小并且每位价格最昂贵地存储器处于顶层,而速度最慢、容量最大且每位价格最便宜地存储器处于底层。

1.2.8通过冗余提高可靠性

        1.由于任何物理设备都可能发生故障,因此我们通过引入冗余组件来使系统可靠,该组件在系统发生故障时可以替代失效组件并帮助检测故障。

1.3程序表象之下

        1.外层是应用软件,中心是硬件,系统软件位于两者之间。

              系统软件是提供常用服务的软件,包括操作系统、编译器、加载程序和汇编器等。

        2.操作系统是用户程序和硬件之间的接口,为用户提供各种服务和监控功能。

        操作系统为了使程序更好地在计算机上运行而管理计算机资源的监控程序。

        3.操作系统最重要的作用: 

        处理基本的输入和输出操作。

        分配外村和内存。

        为多个应用程序提供共享计算机资源的服务。

        4.编译器将高级语言翻译为计算机所能识别的机器语言的程序。 

        5.计算机服从于我们的命令,即计算机术语中的指令。指令是能够被计算机识别并执行的命令,可以将其视为数字。

        6.汇编器是可以将指令由主给助记符形式翻译成二进制形式的程序。

        7.汇编语言是以助记符形式表示的汲取指令。

        8.机器语言是以二进制形式表示的机器指令,可以被机器所理解。

        9.使用高级编程语言有以下几个好处:

        1.可以使程序员用更自然的语言来思考,用英文和代数符号来表示,形成的程序看卡里更像文字而不是密码表;

        2.高级语言提高了程序员的生产率;

        3.采用高级语言编写程序提高了程序相对于计算机的独立性,因为编译器和汇编程序能够把高级语言程序翻译成任何计算机的二进制指令。

         C程序编译为汇编语言程序,再汇编为二进制机器语言程序。

1.4箱盖后的硬件 

        1.任何一台计算机的基础硬件都要完成相同的基本功能:输入数据、输出数据、处理数据和存储数据。

        2.计算机的两个关键部件是输入设备和输出设备。

        输入设备:为计算机提高信息的装置。

        输出设备:将计算结果输出给用户或其他计算机的装置。

        3.组成计算机的五个经典部件是输入、输出、存储器、数据通路(在计算机中也称运算器)和控制器,其中后两个部件通常合称为处理器。

        处理器从存储器中得到指令和数据,输入部件将数据写入存储器,输出部件从存储器中读出数据,控制器向数据通路、存储器、输入和输出部件发出命令信号。

1.4.1显示器

1.4.2 触摸屏

1.4.3打开机箱

        1.处理器是计算机中最活跃的部分。它严格按照程序中的指令运行,完成数据相加、数据测试、按照结果发出控制信号使I/O设备做出动作等操作。

        处理器也被称为中央处理单元,即CPU。

        2.处理器从逻辑上包括两个主要部件:数据通路控制器

        数据通路负责完成算术运算,是处理器中执行算术操作的部分。

        控制器负责指导数据通路、存储器和I/O设备按照程序的指令正确执行。

        3.内存是程序运行时的存储空间,它同时也用于保存程序运行时所使用的数据。内存由DRAM(动态随机访问存储器)芯片组成。内存由多片DRAM芯片组成,用来承载程序的指令和数据。与串行访问内存不同的是,无论数据存储在什么位置,DRAM访问内存所需的时间基本相同。 

        4.在处理器内部使用的是另外一种存储器——高速缓存。高速缓存是一种小而快的存储器,一般作为DRAM的缓冲。高速缓存采用的是另一种存储技术,称为静态随机访问存储器,其速度更快而且不那么密集,因此价格比DRAM更贵。

        5.硬件和底层软件之间的接口被命名为计算机指令系统体系结构,或简称体系结构。计算机体系结构包含了程序员正确编写二进制机器语言程序所需的全部信息,如指令、I/O设备等。

        一般来说,操作系统需要封装I/O操作、存储器分配和其他低级的系统功能细节,以使得应用程序员无须关注这些细节。

        提供给应用程序员的基本指令系统和操作系统接口合称为应用二进制接口(ABI)

        6.应用二进制接口:用户部分的指令加上应用程序员调用的操作系统接口,定义了二进制层次可移植的计算机的标准。

1.4.4数据安全

        1.易失性存储非易失性存储

        易失性存储类似DRAM的存储器,仅在加电时保存数据。

        非易失性存储在掉电时仍可保持数据的存储器,用于存储需运行的程序。

        2.为了区分易失性存储和非易失性存储,我们将前者称为主存储或主要存储,将后者称为辅助存储。

1.4.5与其他计算机通信

        1.通过网络,一台计算机可以与其他计算机通信,从而扩展计算能力。

        2.根据传输距离和速率特点,以太网可以将一座建筑物中同一层的计算机连接起来,这就形成了通常称为局域网的一个例子。局域网通过交换机进行连接,可以提高路由与安全服务。广域网可跨越大陆,是因特网的骨干构成部分,可支持万维网。

1.5处理器和存储制造技术

1.6性能

1.6.1性能的定义

        1.个人移动设备更关注响应时间,而服务器更关注吞吐率

        响应时间:也叫执行时间,是计算机完成某任务所需的总时间,包括硬盘访问、内存访问、I/O活动、操作系统开销和CPU执行时间等。

        吞吐率:也叫做带宽,性能的另一种度量参数,表示单位时间内完成的任务数量。

1.6.2性能的度量

        1.时间是计算机性能的衡量标准:完成同样的计算任务,需要时间最少的计算机是最快的。

        对时间最直接的定义是挂钟时间,也叫响应时间、运行时间等。

        这些术语均表示完成某项任务所需的总时间,包括了磁盘访问、内存访问、I/O活动和操作系统开销等一切时间。

        2.CPU执行时间检查CPU时间,只表示在CPU上花费的时间,而不包括等待I/O或与性能其他程序的时间。

        3.CPU时间还可以进一步分为用于用户程序的时间和操作系统为用户程序执行相关任务所花去的CPU时间。前者称为用户CPU时间,后者称为系统CPU时间。 

        4.时钟周期数为计算机一个时钟周期的时间,通常是指处理器时钟,并在固定频率下运行。

1.6.3CPU性能及其度量因素

        1.程序的CPU执行时间 = 程序的CPU时钟周期数 × 时钟周期长度

1.6.4指令性能

        1.CPU时钟周期数 = 程序的指令数 × 指令平均时钟周期数

        指令平均时钟周期数表示执行每条指令所需的时钟周期平均数,缩写为CPI。 

1.6.5经典的CPU性能公式

        1.CPU时间 = 指令数 × CPI × 时钟周期长度

1.7功耗墙

        1.当前在集成电路技术中占统治地位的是CMOS,其主要的能耗来源是动态能耗,即在晶体管开关过程中产生的能耗,即晶体管的状态从0翻转到1或从1翻转到0消耗的能量。

1.8沧海巨变:从单处理器向多处理器转变

1.9实测:评测 Intel Core i7

1.10谬误与陷阱

        1.陷阱:在改进计算机的某个方面时期望总性能的提高与改进大小成正比。

        2.谬误:低利用率的计算机具有更低功耗。

        3.谬误:面向性能的设计和面向能效的设计具有不相关的目标。

        4.陷阱:用性能公式的一个子集去度量性能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1487615.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第279题完全平方数

题目: 题解: // 判断是否为完全平方数 func isPerfectSquare(x int) bool {y : int(math.Sqrt(float64(x)))return y*y x }// 判断是否能表示为 4^k*(8m7) func checkAnswer4(x int) bool {for x%4 0 {x / 4}return x%8 7 }func numSquares(n int) i…

Layui Selcet选择框动态选择问题

前言 时隔多日我也是重新回归写作,高考已经完毕,我将继续我的文章创作,今天我将分享的是我在开发我自己的一个新项目所遇到的问题,这里预告一下我的新项目: VitaApi管理系统 这个系统可以看作是萌新源api管理系统的延续&#xff…

数据结构之深入理解简单选择排序:原理、实现与示例(C,C++)

文章目录 一、简单选择排序原理二、C/C代码实现总结: 在计算机科学中,排序算法是一种非常基础且重要的算法。简单选择排序(Selection Sort)作为其中的一种,因其实现简单、易于理解而受到许多初学者的喜爱。本文将详细介…

算法日记day 19(找树左下角的值|路径总和)

一、找树左下角的值 题目: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路:…

pyenv-win | python版本管理,无需卸载当前版本

系统:windows,且已安装git。 使用 pyenv-win 在Windows中管理多个python版本,而无需卸载当前版本。安装步骤如下: 安装 pyenv-win 1. 安装 Git 和 pyenv-win: git clone https://github.com/pyenv-win/pyenv-win.git %USERPRO…

使用Fiddler进行Android和IOS抓包

Android抓包 要使用Telerik Fiddler Classic捕获Android设备的网络流量,您需要执行以下步骤: 在Fiddler Classic上进行设置: 确保已安装并使用BouncyCastle作为证书生成器。较新的Android版本会拒绝有效期超过两年的证书,目前只…

刷机维修进阶教程-----何谓“tee损坏” 指纹丢失 掉帧 传感器失效?详细修复步骤教程

TEE损坏指的是安卓机型中Key Attestation密钥认证所依赖的可信应用中的证书库被破坏了。然后拒绝为指纹密匙认证提供服务。加密的密匙由TEE负责管理。tee损坏只影响当前机型的密匙认证。不影响加密。通俗的理解。如果你机型维修或者刷机或者解锁或者格机 全檫除分区等等后有异常…

PACS医学影像临床信息系统,C#影像归档和通信系统源码,PACS源码,支持图像的获取、传输、浏览、打印、测量、重建、对比、存储、处理,电子胶片影像管理等

医学影像临床信息系统具有图像采集、显示、存储、传输和管理等功能,支持DICOM影像设备和非DICOM影像设备,可以识别CT、MR、CR/DR、X光、DSA、B超、NM、SC等设备的图像类型,可对数字影像进行无损压缩和有损压缩处理。C/S体系结构的多媒体数据库…

20240724-然后用idea创建一个Java项目/配置maven环境/本地仓储配置

1.创建一个java项目 (1)点击页面的create project,然后next (2)不勾选,继续next (3)选择新项目名称,新项目路径,然后Finsh,在新打开的页面选择…

iOS object-C 解答算法:找到所有数组中消失的数字(leetCode-448)

找到所有数组中消失的数字(leetCode-448) 题目如下图:(也可以到leetCode上看完整题目,题号448) 光看题看可能有点难以理解,我们结合示例1来理解一下这道题. 有8个整数的数组 nums [4,3,2,7,8,2,3,1], 求在闭区间[1,8]范围内(即1,2,3,4,5,6,7,8)的数字,哪几个没有出现在数组 …

达梦数据库系列—30. DTS迁移Mysql到DM

目录 1.MySQL 源端信息 2.DM 目的端信息 3.迁移评估 4.数据库迁移 4.1源端 MySQL 准备 4.2目的端达梦准备 初始化参数设置 兼容性参数设置 创建迁移用户和表空间 4.3迁移步骤 创建迁移 配置迁移对象及策略 开始迁移 对象补迁 5.数据校验 统计 MySQL 端对象及数…

C++ 代码实现局域网即时通信功能 (windows 系统 客户端)

本项目使用C实现具备多个客户端和服务器端即时通信聊天功能软件 一:项目内容 使用C实现一个具备多客户端和一个服务器端即时通信功能的聊天软件。 本项目的目的是 学习在windows平台下,进行C网络开发的基本概念:TCP/IP socket通信&#xff0…

一键解锁:科研服务器性能匹配秘籍,选择性能精准匹配科研任务和计算需求的服务器

一键解锁:科研服务器性能匹配秘籍 HPC科研工作站服务器集群细分领域迷途小书童 专注于HPC科研服务器细分领域kyfwq001 🎯在当今科技飞速发展的时代,科研工作对计算资源的需求日益增长😜。选择性能精准匹配科研任务和计算需求的服…

Elasticsearch集群配置-节点职责划分 Hot Warm 架构实践

前言 本文主要讲了ES在节点部署时可以考虑的节点职责划分,如果不考虑节点部署,那么所有节点都会身兼数职(master-eligible ,data,coordinate等),这对后期的维护拓展并不利,所以本文…

Gitops-Argo-Cli安装与使用

一、安装Argo-Cli工具 Release v2.9.21 argoproj/argo-cd GitHub **选择合适的符合你操作系统以及CPU架构的二进制文件 #依v2.9.21-X86-64-Linux操作系统为例 wget https://github.com/argoproj/argo-cd/releases/download/v2.9.21/argocd-linux-amd64 #添加执行权限并且移…

景区AR导航营销系统:技术解决方案与实施效益分析

随着旅游市场的竞争日益激烈,景区需要不断创新以吸引游客。景区 AR 导航将虚拟画面与现实场景相结合,为游客提供了更加直观、生动的导航服务。对于景区而言,这一创新技术无疑是吸引游客目光、提升景区知名度的有力武器。通过独特的 AR 导航体…

计算机网络-配置路由器ACL(访问控制列表)

配置访问控制列表ACL 拓扑结构 拓扑结构如下: 要配置一个ACL,禁止PC0访问PC3,禁止PC4访问PC0,其它正常。 配置Router0 配置接口IP地址: interface fastethernet 0/0 ip address 192.168.1.1 255.255.255.0 no shu…

elmentui this.$confirm使用模板字符串构建HTML结构

tip(){const checkingList [];const findList[入会1,入会2,入会3] //数组const sueccList [{name:入会,suecc:1000,numcot:1000},{name:aaaaa,suecc:222,numcot:3333}] //数组对象var message// 使用模板字符串构建HTML结构if(sueccList.length>0){message <div>…

缓存穿透,缓存击穿,缓存雪崩

目录 介绍 缓存穿透 缓存击穿 缓存雪崩 原因 影响 解决方案 缓存穿透 防止缓存穿透->空值缓存案例 缓存击穿 使用互斥锁解决缓存击穿 介绍 缓存穿透 定义&#xff1a;缓存穿透是指用户查询数据&#xff0c;缓存和数据库中都不存在该数据&#xff08;一般是发起恶意…

Mac应用快速启动器:Alfred 5 for Mac 激活版

Alfred 5 是一款专为 macOS 系统设计的效率提升工具。这款软件以其快速启动和高效操作功能著称&#xff0c;通过使用快捷键来呼出输入界面&#xff0c;用户可以快速完成各种任务。 最新版本 Alfred 5.5 引入了一些新功能。其中包括整合了 ChatGPT 和 DALL-E&#xff0c;这意味…