本章的第一个概念是计算机系统(computer system)。
计算机系统包括读取并执行程序的 中央处理单元(CPU,
保存程序和数据的存储器以及将芯片转换为实用系统的 其他子系统。
这些子系统会使CPU与显示器、打印机、Internet等外部设备之间的通信变得更加容易。
计算机的性能既取决于CPU;也取决于其他子系统。如果不能高效进行数据传输,
仅仅提高CPU的性能是毫无意义的。
Figure :
Figure :
可编程计算机接收两种类型的输入: 它将要处理的 数据,
以及准确描述要如何处理输入数据的程序。
程序 不过是计算机所执行的完成给定任务的 操作序列。
Figure :
计算机从存储器中读出指令并执行这些指令(即完成或执行指令定义的动作)。
执行指令时,可能要从存储器中读出数据,对数据进行操作,将数据写回存储器。
寄存器是CPU内部用来存放数据的存储单元。时钟提供了脉冲流,
所有内部操作都在 时钟脉冲 的触发下进行。时钟频率是决定计算机速度的一个因素
Figure :
CPU先读取一条指令;在CPU分析或解码指令;从存储器中读出这条指令所需的所有数据。
###计算机指令
尽管计算机能够执行上百种不同指令,但下面的6条 基本指令 可以将所有计算机指令进行分类:
体系结构: 描述了一些与计算机组成方式有关的内容;因为不同的用户会从完全不同的角度看待计算机。
寄存器
计算机体系结构通常被认为是程序员视角中的计算机
计算机 组成表示其体系结构的具体实现
机器码 汇编语言 高级语言
计算机上执行的代码表示为二进制1和0组成的串,被称作机器码(machine code)。
每种计算机都只能执行一种特定的机器码。
人类可读的机器码(例如 ADD R0 ,Time)叫作汇编语言。
能够在类型完全不同的计算机上运行,与底层计算机体系结构几乎没有关系的代码叫作高级语言
(比如C或Java)。在执行之前,高级语言程序必须首先被编译为计算机的本地机器码。
体系结构与组成是不能完全分离的。例如;微处理器内的32位寄存器可以按照
与16位计算机相同的方式实现,如使用16位数据总线,以16位为单位传输数据,
功能单元也是16位的。如果程序员指示计算机将寄存器A中的32位数据复制到寄存器B中,
他将要执行一个32位操作,但16位计算机将执行两个16位操作,
这对程序员来说是完全不可见的。
按照这个例子,我们可以说一台计算机的体系结构是32位的,但它的组成却是16位的。
指令集体系结构包括: 数据类型(每个字的位数以及各个位的含义),
用来保存临时结果的寄存器,指令的类型和格式,以及寻址方式
(表示数据在存储器中存放位置的方法)。
不同层次的程序员看到的计算机是不一样的。汇编语言程序员看到的计算机与C或Java
等高级语言程序员看到的有很大的区别。
即使都是高级语言程序员,C程序员所看到的也与Prolog或LISP程序员看到的有很大的不同。
微代码(Microcode)与微处理器无关。微代码定义了一组基本操作(微指令),
通过执行这些操作可以解释执行机器码。ADD P,Q,R是一条典型的机器指令,
而微指令可能像“将数据从寄存器X移到总线Y上”那么简单。
如何定义微指令是芯片设计者的职责。
Figure :
最先进的计算机使用了最新的制造技术。
Figure :
时钟
时钟是用于生成 连续 的 间隔固定 的电脉冲流。
之所以被称作时钟,是因为可用这些电脉冲来计时或确定计算机内所有事件的顺序
时钟可用它的 重复速率 或 频率 来定义。
时钟也可以用 时钟脉冲的宽度 或 持续时间 来定义,即频率的倒数
事件由时钟信号触发的数字电路被称作同步的,因为它们由时钟信号来同步。
计算机的发展历史丰富而复杂,远比许多人想象得久远。
人类是会计算的生物。
穴居人发明数学也许不是为了在湿冷的天气里玩数独游戏,而是为了丈量土地、建造房屋和报税。
罗马人将鹅卵石放在小托盘上表示数字。后来,他们沿着线滑动鹅卵石辅助进行加法或减法,从而完成计算。
中亚的一些商店,那里的人们用算盘快速地进行计算。
这些设备都不能称作现代意义上的计算机,因为它们都是不可编程的。
可编程这个概念产生于 工业革命 时期,出于工业化控制的需要。
机电( electromechanical)指那些有 活动件 但却 由电控制 的零件。
到20世纪70年代,Intel公司和摩托罗拉公司都发布了8位微处理器。
第一台可用的微机Altair 8800是由MITS公司于1975年推向市场的。
基于Intel的技术和微软的操作系统软件,IBM 在20世纪80年代推出了个人电脑(PC机)。
由于它的开放式体系结构,PC机在第三方软、硬件开发者中流行起来。
Intel将8080微处理器扩展为包括16位80286(1982年)和32位80386(1985年),
以及含有64位数据总线的Pentium(1990年)。
“摩尔定律”一词是卡沃·米德(Carver Mead)于1975年根据戈登·摩尔(GordonMoore)
所 观察 到集成电路的集成度 每两年 翻一番的现象而创造的。
摩尔定律当然是一个 经验性 的观测结果,但在过去的40年里,
技术的进步的确导致芯片内晶体管数量呈指数式增长。这一增长还伴随着集成电路速度的相应提升。
集成电路内晶体管数量的增加还导致体系结构复杂度的急剧增加以及一些极其聪明的性能提升方法的出现。
RISC(精简指令集)与CISC(复杂指令集)
计算是无所不在的。
多媒体处理能力是现代计算机(包括普适的和传统的个人计算机)的一个重要特征。
多媒体处理(处理和存储音频/视频数据)需要很大的存储容量以及完成大量简单
重复操作的实时处理声音样本和图像像素的能力。
Figure :
求最大游程,即 同一个数字连续出现的最大次数
如果我们从数串的左边开始逐个检查数字,在任何一个位置,我们都会得到以下两个结果之一:
Figure :
算法的一些符号
算法
尽管这个问题相对简单,它却含有解决任一问题所需的全部元素
Figure :
下图描述了程序怎样找出保存在一个 假想存储器 中的数串的最大序列长度。
必须强调的是,这个程序是概念上的而不是实际的,因为真正的计算机指令比其更加基础。
这幅图叫作 存储器映射,它展示了信息在存储器中的存放位置。
它是存储器的一幅快照,因为它表示存储器在某个特定时刻的状态。
存储器映射也包含程序使用的变量和数字串。
存储程序计算机会将指令、变量和常量全部保存在同一个存储器内。
Figure :
寄存器传输语言(RTL): 描述性的语言,不能被执行
RTL符号 | 描述 |
---|
存储系统
存储程序计算机的基本操作
执行指令
在这台机器上执行一条指令需要至少两次访存。
存储程序计算机的一种直观合理的指令格式可以用下面的形式表示
operation Address1 ,Address2 ,Address3
Figure :
指令的4个字段、cpu、存储器和指令执行方式之间关系: 解释执行指令
Figure :
指令格式如下
Operation Address1, Address2
实际的计算机中,一般都 不允许同一条指令中使用两个存储地址;
大多数计算机规定一个地址是存储器地址,另一个地址是寄存器。
指令格式如下
operation address
操作结果将一直保存在寄存器中,直到另一条指令将它送入存储器。
Figure :
CPU变成计算机系统的存储系统和总线系统。存储器被视作一个巨大的通过 地址访问的数组。
例如,如果用数组M表示存储器,那么它的第i个元素可以表示为M[i];
存储器非常重要,因为它的大小(即存储容量)决定了程序能够存储的数据量,
它的速度(访问时间)决定了程序的数据处理速率。
程序体积不断增加,程序所使用的数据总量增加得更快。
计算机技术正在飞速进步,而存储技术从某些方面来说却严重地滞后了。
处理器速度的增加速率远远超过了存储器的。
由于CPU与存储器的性能之间的差距不断加大,设计者们试图通过在使用数据之前将它们
从存储器中取出来消除相对慢速的存储器的影响,以 隐藏等待时间(也叫作 延迟)
上图给出了经典的存储层次图,展示了计算机中存储部件的类型、速度(访问时间)
以及它们在PC机中的典型容量。
总线 将计算机的 两个或多个 功能单元连接在一起并允许它们相互交换数据;
总线还将计算机与外设连接在一起
没有总线的情况
有公共总线情况
总线相关术语
多总线系统: 包括片内总线、功能单元间(如CPU和存储器间)的总线以及总线间的总线。
Figure :
文章浏览阅读290次,点赞8次,收藏10次。1.背景介绍稀疏编码是一种用于处理稀疏数据的编码技术,其主要应用于信息传输、存储和处理等领域。稀疏数据是指数据中大部分元素为零或近似于零的数据,例如文本、图像、音频、视频等。稀疏编码的核心思想是将稀疏数据表示为非零元素和它们对应的位置信息,从而减少存储空间和计算复杂度。稀疏编码的研究起源于1990年代,随着大数据时代的到来,稀疏编码技术的应用范围和影响力不断扩大。目前,稀疏编码已经成为计算...
文章浏览阅读217次。EasyGBS - GB28181 国标方案安装使用文档下载安装包下载,正式使用需商业授权, 功能一致在线演示在线API架构图EasySIPCMSSIP 中心信令服务, 单节点, 自带一个 Redis Server, 随 EasySIPCMS 自启动, 不需要手动运行EasySIPSMSSIP 流媒体服务, 根..._easygbs-windows-2.6.0-23042316使用文档
文章浏览阅读1.2k次,点赞27次,收藏7次。2023巅峰极客 BabyURL之前AliyunCTF Bypassit I这题考查了这样一条链子:其实就是Jackson的原生反序列化利用今天复现的这题也是大同小异,一起来整一下。_原生jackson 反序列化链子
文章浏览阅读734次,点赞9次,收藏7次。微服务架构简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])这么多小服务,他们之间如何通讯?这么多小服务,客户端怎么访问他们?(网关)这么多小服务,一旦出现问题了,应该如何自处理?(容错)这么多小服务,一旦出现问题了,应该如何排错?(链路追踪)对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。_spring cloud
文章浏览阅读5.9k次,点赞6次,收藏20次。Js实现图片点击切换与轮播图片点击切换<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/ja..._点击图片进行轮播图切换
文章浏览阅读10w+次,点赞245次,收藏1.5k次。在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。cuda、cudnn。..._tensorflow gpu版本安装
文章浏览阅读243次。0x00 简介权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞已经屡见不鲜,各种漏洞组合利用也是千奇百怪、五花八门,这里总结漏洞是为了更好地应对和预防,如有不妥之处还请业内人士多多指教。0x01 背景2014年4月,在比特币飞涨的时代某网站曾经..._使用物联网漏洞的使用者
文章浏览阅读786次。A. Epipolar geometry and triangulationThe epipolar geometry mainly adopts the feature point method, such as SIFT, SURF and ORB, etc. to obtain the feature points corresponding to two frames of images. As shown in Figure 1, let the first image be and th_normalized plane coordinates
文章浏览阅读708次,点赞2次,收藏3次。开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先关系再实体)一.第二代开放信息抽取系统背景 第一代开放信息抽取系统(Open Information Extraction, OIE, learning-based, 自学习, 先抽取实体)通常抽取大量冗余信息,为了消除这些冗余信息,诞生了第二代开放信息抽取系统。二.第二代开放信息抽取系统历史第二代开放信息抽取系统着眼于解决第一代系统的三大问题: 大量非信息性提取(即省略关键信息的提取)、_语义角色增强的关系抽取
文章浏览阅读1.1w次,点赞6次,收藏51次。快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源。鉴于网站模板的灵活性和强大的功能,现在广大设计师和开发者对html5网站的实际需求日益增长。为了造福大众,Mockplus的小伙伴整理了2018年最..._html欢迎页面
文章浏览阅读282次。原标题:2018全国计算机等级考试调整,一、二级都增加了考试科目全国计算机等级考试将于9月15-17日举行。在备考的最后冲刺阶段,小编为大家整理了今年新公布的全国计算机等级考试调整方案,希望对备考的小伙伴有所帮助,快随小编往下看吧!从2018年3月开始,全国计算机等级考试实施2018版考试大纲,并按新体系开考各个考试级别。具体调整内容如下:一、考试级别及科目1.一级新增“网络安全素质教育”科目(代..._计算机二级增报科目什么意思
文章浏览阅读240次。conan简单使用。_apt install conan