计算机组成原理

深入浅出计算机组成原理:GPU(上)-为什么玩游戏需要使用GPU?(第30讲)

烂漫一生 提交于 2019-11-28 15:52:43
一、引子 讲完了CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为GPU的图形处理器。过去几年里,因为深度学习的大发展,GPU一下子火起来了, 似乎GPU成了一个专为深度学习而设计的处理器。那GPU的架构究竟是怎么回事儿呢?它最早是用来做什么而被设计出来的呢? 想要理解GPU的设计,我们就要从GPU的老本行图形处理说起。因为图形处理才是GPU设计用来做的事情。只有了解了图形处理的流程,我们才能搞明白, 为什么GPU要设计成现在这样;为什么在深度学习上,GPU比起CPU有那么大的优势。 二、GPU的历史进程 GPU是随着我们开始在计算机里面需要渲染三维图形的出现,而发展起来的设备。图形渲染和设备的先驱,第一个要算是SGI(Silicon Graphics Inc.)这家公司。 SGI的名字翻译成中文就是“硅谷图形公司”。这家公司从80年代起就开发了很多基于Unix操作系统的工作站。它的创始人Jim Clark是斯坦福的教授,也是图形学的专家。 后来,他也是网景公司(Netscape)的创始人之一。而Netscape,就是那个曾经和IE大战300回合的浏览器公司,虽然最终败在微软的Windows免费捆绑IE的策略下, 但是也留下了Firefox这个完全由开源基金会管理的浏览器。不过这个都是后话了。 到了90年代中期,随着个人电脑的性能越来越好,PC游戏玩家们开始有了

计算机组成原理-2

风格不统一 提交于 2019-11-28 13:00:41
原文引用 https://www.dazhuanlan.com/2019/08/25/5d622896d4e25/ 计原第二章:计算机的发展及应用。 1.计算机的发展史 1.计算机的产生和发展 世界上第一台电子计算机:1946年 美国 ENIAC 1955年退役 (用手工搬动开关和拔插电缆来编程) 2.硬件技术对计算机更新换代的影响 代 时间 硬件技术 速度(次/秒) 一 1946-1957 电子管 40,000 二 1958-1964 晶体管 200,000 三 1965-1971 中小规模集成电路 1000,000 四 1972-1977 大规模集成电路 10,000,000 五 1978-现在 超大规模集成电路 100,000,000 IBM System/360是IBM有史以来发布的最成功的产品,改变了计算机行业的发展进程。 IBM斥资50亿美元制造的System/360于1964年推出。. 2.微型计算机的出现和发展 Moore定律:微芯片上集成的晶体管数目每三年翻两番。 【Moore:Intel公司的缔造者之一】 3.软件技术的兴起和发展 1)各种语言 机器语言:面向机器 汇编语言:面向机器 高级语言:面向问题 2)系统软件 软件 功能 语言处理进程 汇编进程 编译进程 解释进程 操作系统 DOS、UNIX、Windows、Linux、Kylin Linux 服务性进程

深入浅出计算机组成原理学习笔记:SSD硬盘(上)-如何完成性能优化的KPI?(第46讲)

…衆ロ難τιáo~ 提交于 2019-11-28 05:22:34
一、引子 随着3D垂直封装技术和QLC技术的出现,今年的“618”,SSD硬盘的价格进一步大跳水,趁着这个机会,我把自己电脑上的仓库盘,从HDD换成了SSD硬盘。我的个人电脑彻底摆脱了机械硬盘。 随着智能手机的出现,互联网用户在2008年之后开始爆发性增⻓,大家在网上花的时间也越来越多。这也就意味着,隐藏在精美App和网页之后的服务端数据请求量,呈数量级的上升。 无论是用10000转的企业级机械硬盘,还是用Short Stroking这样的方式进一步提升IOPS,HDD硬盘已经满足不了我们的需求了。上面这些优化措施, 无非就是,把IOPS从100提升到300、500也就到头了。 于是,SSD硬盘在2010年前后,进入了主流的商业应用。我们在第44讲看过,一块普通的SSD硬盘,可以轻松支撑10000乃⾄20000的IOPS。那个时候,不少互联网公司想要完成性能优化的KPI, 最后的解决放案都变成了换SSD的硬盘。如果这还不够,那就换上使用PCI Express接口的SSD。 不过,只是简单地换⼀下SSD硬盘,真的最⼤限度地⽤好了SSD硬盘吗?另外,即便现在SSD硬盘很便宜了,一部分公司的批量数据处理系统,仍然在⽤传统的机械硬盘,这又是为什么呢 那么接下来这两讲,就请你和我一起来看一看, SSD硬盘的工作原理,以及怎么最大化利用SSD的工作原理,使得访问的速度最快,硬盘的使⽤寿命最长。

计算机组成原理之计算机的简化结构

不羁的心 提交于 2019-11-28 04:15:46
首先,我们开门见山 先来了解模型机的概念 模型机:计算机结构的简化模型。(这样有利于计算机结构的理解) 如图,我们可以知道:计算机主要由两个部件和系统总线拼成 [系统总线:如图] CPU和存储器之间: 1.访问 -- 内存 -- 地址总线 -- 地址总线决定了CPU可以访问的物理地址空间(cpu到底使用多大容量的内存) cpu发来的地址存放的位置在MAR -—— 存储器地址寄存器 顾名思义,存放的是cpu正在读或写的存储单元 对应的数据存放的位置在MDR —— 接受来自cpu的读写信号 或者向cpu反馈传输已经完成的信号 2.传送 -- 数据 -- 数据总线 -- 存放cpu正在读或者即将写入的数据 左半部分存储器: 存储器是由一个个存储单元组成的。 计算机的编制方式: 如果按字节编址,那么一个单元分配8个位. 右半部CPU: cpu内部需要执行指令,翻译地址,执行控制 计算机中的指令不不能直接执行,需要通过指令译码确定是哪一条指令,后发送给控制单元进行操作 cpu内部需要执行指令,翻译地址,执行控制 计算机中的指令不不能直接执行,需要通过指令译码确定是哪一条指令,后发送给控制单元进行操作 1.需要存放当前指令 -- IR -- 指令寄存器 -- 2.需要存放下一条指令 -- PC --程序计数器 -- 3.指令的翻译,确定指令的操作 -- 指令译码 -- 4.控制电路 --

深入浅出计算机组成原理学习笔记:理解虚拟机-你在云上拿到的计算机是什么样的?(第34讲)

萝らか妹 提交于 2019-11-28 03:51:54
上世纪60年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。 第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。 第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用一台计算机。 一、缘起分时系统 为了应对这两个问题,分时系统的计算机就应运而生了。 无论是个人用户,还是一个小公司或者小机构,你都不需要花大价钱自己去买一台电脑。你只需要买一个输入输出的终端,就好像一套鼠标、键盘、显示器这样的设备, 然后通过电话线,连到放在大公司机房里面的计算机就好了。这台计算机,会自动给程序或任务分配计算时间。你只需要为你花费的“计算时间”和使用的电话线路付费就可以了 比方说,比尔·盖茨中学时候用的学校的计算机,就是GE的分时系统。 二、从“黑色星期五”到公有云 1、美国的感恩节的黑色星期五、网络星期一和国内的双十一一样 现代公有云上的系统级虚拟机能够快速发展,其实和分时系统的设计思路是一脉相承的,这其实就是来自于电商巨头亚马逊大量富余的计算能力。 和国内有“双十一”一样,美国会有感恩节的“黑色星期五(Black Friday)”和“网络星期一(CyberMonday)”,这样一年一度的大型电商促销活动。几天的活动期间, 会有大量的用户进入亚马逊这样的网站,看商品、下订单、买东西。这个时候

深入浅出计算机组成原理学习笔记:理解内存(下)-解析TLB和内存保护(第41讲)

倾然丶 夕夏残阳落幕 提交于 2019-11-28 03:51:27
一、引子 性能问题 机器指令里面的内存地址都是虚拟内存地址。程序里面的每一个进程,都有一个属于自己的虚拟内存地址空间。我们可以通过地址转换来获得最终的实际物理地址。 我们每一个指令都存放在内存里面,每一条数据都存放在内存里面。因此,“地址转换”是一个非常高频的动作, “地址转换”的性能就变得至关重要了。这就是我们今天要讲的 第一个问题,也就是 性能问题 安全问题 因为我们的指令、数据都存放在内存里面,这里就会遇到我们今天要谈的 第二个问题,也就是 内存安全问题。如果被人修改了内存里面的内容, 我们的CPU就可能会去执行我们计划之外的指令。这个指令可能是破坏我们服务器里面的数据,也可能是被人获取到服务器里面的敏感信息。 二、加速地址转换:TLB 1、多级页表存在的问题 多级页表虽然节约了我们的存储空间,但是却带来了时间上的开销,变成了一个“以时间换空间”的策略。原本我们进行一次地址转换,只需要访问一次内存就能找到物理页号, 算出物理内存地址。但是用了4级页表,我们就需要访问4次内存,才能找到物理页号。 2、“加个缓存”的办法呢? 程序所需要使用的指令,都顺序存放在虚拟内存里面。我们执行的指令,也是一条条顺序执行下去的。也就是说,我们对于指令地址的访问, 存在前面几讲所说的“空间局部性”和“时间局部性”,而需要访问的数据也是一样的。 我们连续执行了5条指令。因为内存地址都是连续的

深入浅出计算机组成原理学习笔记:CISC和RISC-为什么手机芯片都是ARM?(第29讲)

久未见 提交于 2019-11-28 03:50:58
一、引子 我在第5讲讲计算机指令的时候,给你看过MIPS体系结构计算机的机器指令格式。MIPS的指令都是固定的32位长度,如果要用一个打孔卡来表示,并不复杂。 第6讲的时候,我带你编译了一些简单的C语言程序,看了x86体系结构下的汇编代码。眼尖的话,你应该能发现,每一条机器码的长度是不一样的。 而CPU的指令集里的机器码是固定长度还是可变长度,也就是 复杂指令集(Complex Instruction SetComputing,简称CISC)和 精简指令集(Reduced Instruction Set Computing,简称RISC)这两种风格的指令集一个最重要的差别。那今天我们就来看复杂指令集和精简指令集之间的对比、差异以及历史纠葛。 二、CISC VS RISC:历史的车轮不总是向前的 1、人月神话 在计算机历史的早期,其实没有什么CISC和RISC之分。或者说,所有的CPU其实都是CISC。 虽然冯·诺依曼高屋建瓴地提出了存储程序型计算机的基础架构,但是实际的计算机设计和制造还是严格受硬件层面的限制。当时的计算机很慢,存储空间也很小。 《人月神话》这本软件工程界的名著,讲的是花了好几年设计IBM 360这台计算机的经验。IBM 360的最低配置,每秒只能运行34500条指令,只有8K的内 存。为了让计算机能够做尽量多的工作,每一个字节乃至每一个比特都特别重要。 所以

深入浅出计算机组成原理学习笔记:理解内存(上)-虚拟内存和内存保护是什么?(第40讲)

半城伤御伤魂 提交于 2019-11-28 01:14:47
一、简单页表 1、页表的概念 想要把虚拟内存地址,映射到物理内存地址,最直观的办法,就是来建一张映射表。这个映射表,能够实现虚拟内存里面的页,到物理内存里面的页的一一映射。 这个映射表,在计算机里面,就叫作 页表 (PageTable)。 页表这个地址转换的办法,会把一个内存地址分成 页号(Directory)和 偏移量(Offset)两个部分。这么说太理论了,我以一个32位的内存地址为例,帮你理解这个概念。 1、其实,前面的高位,就是内存地址的页号。后面的低位,就是内存地址里面的偏移量。 2、做地址转换的页表,只需要保留虚拟内存地址的页号和物理内存地址的页号之间的映射关系就可以了。 3、同一个页里面的内存,在物理层面是连续的。以一个页的大小是4K比特(4KiB)为例,我们需要20位的高位,12位的低位。 2、内存地址转换,的三个步骤: 总结一下,对于一个内存地址转换,其实就是这样三个步骤: 1. 把虚拟内存地址,切分成页号和偏移量的组合; 2. 从页表里面,查询出虚拟页号,对应的物理页号; 3. 直接拿物理页号,加上前面的偏移量,就得到了物理内存地址。 3、一个页表需要多大的空间 不知道你算出的数字是多少?32位的内存地址空间,页表一共需要记录2^20个到物理页号的映射关系。这个存储关系,就好比一个2^20大小的数组。 一个页号是完整的32位的4字节(Byte)

03-计算机组成原理

こ雲淡風輕ζ 提交于 2019-11-27 21:56:12
目录 计算机组成原理 一.控制器 二.运算器 三.控制器+运算器(计算机的中央处理器) 四.存储器 4.1 主存 4.2 外存 五.CPU+ 外存+内存(计算机的三大核心组件) 六.输入设备 七.输出设备 八.计算机五大组成部分补充 8.1 cpu相关 8.2 存储器相关 8.3总线 8.4 启动计算机的流程 8.5 硬盘工作原理 8.6 机械硬盘 8.7 固态硬盘 计算机组成原理 计算机分成五大组成部分,分别是:控制器,运算器,存储器,输入设备和输出设备。 其中控制器+运算器是计算机的中央处理器(cpu),相当于人类的大脑。 一.控制器 计算机的指挥系统。大脑指挥全身的器官运作,但是大脑不会随意指挥身体运作,只有在收到指令后才会控制身体行动。 二.运算器 运算器是计算机的运算系统。大脑除了指挥,无时无刻都在运算。即实现算数运算和逻辑运算。 算术运算:1+1=2 逻辑运算:在逻辑代数中,有与、或、非三种基本逻辑运算。表示逻辑运算的方法有多种,如语句描述、逻代数式,逻辑图,卡诺图等。 https://baike.sogou.com/v7818085.htm?fromTitle=%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97 三.控制器+运算器(计算机的中央处理器) 吃饭流程示例: 1.当你吃饭的时候,大脑会受到吃饭的指令,之后把指令翻译成你身体需要进行的动作

重学计算机组成原理(十一)- 门电路的\"千里传音\"

余生颓废 提交于 2019-11-27 19:30:59
人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么? 为什么计算机里我们最终要选择二进制呢? 来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制。 1 怎么做到“千里传书” 马拉松的故事相信你听说过。公元前490年,在雅典附近的马拉松海边,发生了波斯和希腊之间的希波战争。雅典和斯巴达领导的希腊联军胜利之后,雅典飞毛腿菲迪皮德斯跑了历史上第一个马拉松,回雅典报喜。这个时候,人们在远距离报信的时候,采用的是派人跑腿,传口信或者送信的方式。 但是,这样靠人传口信或者送信的方式,实在是太慢了 在军事用途中,信息能否更早更准确地传递出去经常是事关成败的大事 所以我们看到中国古代的军队有“击鼓进军”和“鸣金收兵”,通过打鼓和敲钲发出不同的声音,来传递军队的号令。 如果我们把军队当成一台计算机,那“金”和“鼓”就是这台计算机的“1”和“0” 我们可以通过不同的编码方式,来指挥这支军队前进、后退、转向、追击等等。 “金”和“鼓”比起跑腿传口信,固然效率更高了,但是能够传递的范围还是非常有限,超出个几公里恐怕就听不见了。于是,人们发明了更多能够往更远距离传信的方式,比如海上的灯塔、长城上的烽火台。因为光速比声速更快,传的距离也可以更远。 亚历山大港外的法罗斯灯塔,位列世界七大奇迹之一,可惜现在只剩下遗迹了