计算机组成
文章平均质量分 93
了不起的盖茨比。
如果把一切都准备好了再前行,那我们永远迈不出第一步。
展开
-
并行处理器:从客户端到云(二)
1.写在前面前面的博客我们简单的介绍并行的处理器,这节我们介绍下GPU,一种新型的图像处理器。2.GPU简介最初将SIMD指令添加到现有体系结构中的理由是:许多微处理器被用于PC和工作站中图形显示器上,以至于越来越多的处理时间被用于图形上。随着处理器上的晶体管数量根据摩尔定律持续增长,改进图形处理效率逐渐成为一个值得研究的问题。改进图形处理的主要驱动力来自计算机游戏行业。快速增长的游戏市场鼓励许多公司加大了在开发更快速的图形硬件上的投资,这种正反馈使得图形处理的改进速度比主流微处理器中通用处理快得多原创 2022-05-19 11:50:39 · 522 阅读 · 0 评论 -
并行处理器:从客户端到云(一)
1.写在前面前面的博客我们介绍完了计算机系统的存储系统,今天我们来介绍下并行处理器。2.引言长久以来,计算机架构师一直在寻找计算机设计的"黄金之城":只需要简单地连接许多现有的小计算机,就可以制造出一台功能强大的计算机。这个"黄金愿景"就是多处理器产生的根源。在理想情况下,客户根据自己的支付能力订购尽可能多的处理器,并希望以获得相应多的性能。因此,必须将运行在多处理器上的软件设计为可以运行在数量可变的处理器之上。能耗已经成为微处理器和数据中心要面对的首要问题。如果软件可以有效地使用处理器,那么使用大量原创 2022-05-12 23:18:31 · 684 阅读 · 0 评论 -
大而快:层次化存储(七)
1.写在前面前面的博客我们已经简单的介绍完了虚拟存储,虚拟存储的一些概念,然后还有就是缓存的一些概念,今天我们来介绍一下存储层次结构的一般框架。介绍之前,我们先看看几种不同类型的存储层次结构。虽然存储层次结构的很多方面都有量的区别,但是很多决定层次结构功能的策略和特征在本质上是相似的。在构建存储层次结构之前,我们需要解决一些问题,具体的问题如下:2.存储层次的问题2.1问题一:块可以被放在何处我们已经看到,在较高存储层次结构中,块的放置可以使用一系列方案,从直接映射到组相联,再到全相联。如上所述原创 2022-05-10 17:19:04 · 620 阅读 · 0 评论 -
大而快:层次化存储(六)
1.写在前面上一篇博客我们介绍了虚拟存储,以及虚拟存储页的存放和查找、缺页失效、支持大虚拟地址空间的虚拟存储这些内容,这篇博客我们继续介绍剩下的虚拟的存储的内容。2.虚拟存储2.1关于写访问cache和主存的时间相差几十到几百个时钟周期,如果采用写穿透策略,则需要一个写缓冲区向处理器隐藏写操作的延迟。在虚拟存储系统中,写入存储层次结构的下一级可能需要数百万个处理器的时钟周期;因此,如果创建一个写缓冲区,允许系统采用写穿透的方式以对磁盘进行写方法是完全不可行的。相反,虚拟存储系统必须使用写回策略,对内原创 2022-04-28 22:44:49 · 1262 阅读 · 0 评论 -
大而快:层次化存储(五)
1.写在前面我在前面介绍了对应的虚拟机,以及一些虚拟机的的指令的模式,这节我们主要讲一下虚拟存储。2.虚拟存储我们知道了cache如何对程序中最近访问的代码和数据提供快速访问。同样,主存可以为通常由磁盘实现的辅助存储充当cache。这种技术被称为虚拟存储。从历史上看,提供虚拟存储的主要动机有两个:允许在多个程序之间高效安全地共享内存,例如云计算的多个虚拟机所需的内存,以及消除小而受限的主存容量对程序设计造成的影响。50年后,第一条变成主要设计动机。当然,为了允许多个虚拟机共享内存,必须保护虚拟机免受原创 2022-04-14 11:50:07 · 1186 阅读 · 0 评论 -
大而快:层次化存储(四)
1.写在前面前面的博客我们已经介绍完了缓存,以及缓存失效的如何处理,还有就是缓存失效的处理策略等等。以及我们创建了多级缓存的机制,来最大的程度上对缓存的失效的时候的处理。2.可靠的存储器层次本章前面几节隐含了一个前提,即存储层次不会失效。如果这个前提不成立,只追求速度而没有可靠性就毫无吸引力的。正如第1章所述,增加可靠性的最好方法就是冗余。本节将首先回顾和可靠性有关的术语和度量,然后展开讲述如何采用冗余技术构造可靠的存储器。2.1失效的定义假设有某种服务的需求,用户可以看到一个系统在两种分别有需求原创 2022-04-11 19:23:06 · 274 阅读 · 0 评论 -
大而快:层次化存储(三)
1.写在前面前面的我们已经介绍简单的缓存的如何生成?缓存失效的时候我们如何处理?以及缓存失效的两种策略。今天我们这节介绍缓存的性能评估和改进。2.cache的性能评估和改进在本节中,先从评估和分析cache性能的方法开始,之后介绍两种不同的改善cache性能技术。第一项技术主要关注通过减少两个不同的内存块争夺同一缓存位置的发生概率来降低失效率。第二项技术是通过添加额外的一个存储层次来减少失效代价。这项技术被称为多级缓存。CPU时间可被分成CPU用于执行程序的时间和CPU用来等待访问的时间。通常,假设原创 2022-04-08 20:00:09 · 1789 阅读 · 1 评论 -
大而快:层次化存储(二)
1.写在前面前面的博客我们介绍完了存储的一些简单的内容,同时的我们简单的入了个门的缓存。今天我们继续讲缓存。2.cache2.1cache访问下面是对一个大小为8个数据块的空cache进行9次存储访问的操作序列,包括每次存储访问的具体操作。如下图,给出每次失效后cache中的内容变化。由于该 cache中有8个数据块,地址的低3位用来表示数据快号。由于cache初始为空,许多地址的首次访问都为失效。上面描述了每一次访存后的具体操作。在第8次访存后产生了数据块的地址冲突,地址18(10010原创 2022-04-07 19:04:58 · 498 阅读 · 1 评论 -
大而快:层次化存储(一)
1.写在前面前面的博客我们简单的介绍了CPU,现在我们开启新的章节了,我们开始来学习存储结构了。2.引言从最早的计算开始,编程者就希望有无限大的高速存储。我们先来做一个简单的类比。假设你是一个学生,正在写关于计算机硬件重要发展历史的毕业论文。你坐在图书馆的书桌前,桌子上堆满了从书架上抽出来的各种书籍。你发现许多你要写到的重要计算机能从书中找到,但是唯独没有EDSAC。因此,你回到书架前开始寻找。你找到了一本记录英国早期计算机书籍,里面涉及EDSAC。如果之前摆在你书桌上的那堆书是经过精心挑选的,那么很原创 2022-04-03 15:02:59 · 978 阅读 · 0 评论 -
你了解CPU吗?(五)
1.写在前面前面我们已经介绍了CPU的一些基础的信息,以及如何构建一个数据通路,以及如何构建CPU的流水线,以及CPU流水线会带来那些问题,但是在历史的长河里面,CPU做到这些还远远不够,还需要更快,也是一直奋斗的目标。今天我们会讲剩下的部分,还有一种比较重要的控制冒险,就是CPU的中断,同时会介绍一些新的机制来加速CPU的流水线。2.中断(例外)控制逻辑是处理器设计中最有挑战的部分:验证正确性最为困难,同时也最难进行时序优化。exception和interrupt是控制逻辑需要实现的任务之一。除分支原创 2022-03-27 23:07:19 · 2163 阅读 · 0 评论 -
你了解CPU吗?(四)
1.写在前面前面我们已经介绍完了CPU的流水线的工作的原理,以及影响流水线的操作的几个因素,结构冒险、数据冒险、控制冒险。但是我没有更深层次的介绍完。现在我们需要更深层次的介绍这些东西。然后如果篇幅够的话,我们可以介绍下中断的一些知识。2.数据冒险:前递与停顿现在从一个更实际的例子出发,看看在程序真正执行的时候会发生什么。现在来看一个下面的指令序列,具体的指令序列如下:sub x2,x1,x3 // Register z2 written by suband x12,x2,x5 // lst op原创 2022-03-19 15:58:26 · 1409 阅读 · 0 评论 -
你了解CPU吗?(三)
1.写在前面前面我介绍了如何简单的构建一个CPU的,但是我们似乎没有知道指令在CPU中是如何流转的,是单个时间周期中就执行一个指令吗?还是什么方式呢?2.流水线概述流水线是一种能使用多条指令重叠执行的实现技术。目前,流水线技术广泛应用。我们先来看一个非流水线的例子。将一批脏衣服放入洗衣机。洗衣机洗完后,将湿衣服取出并放入烘干机。烘干机完成后,将干衣取出,放在桌子上并叠起来。叠好后,请你的舍友帮忙把衣服收好。但是如果换一种思路,当第一批衣服洗完过后,这个时候洗衣机就是空着的了,为什么我们不原创 2022-03-17 17:27:11 · 5988 阅读 · 3 评论 -
你了解CPU吗?(二)
1.写在前面上一篇博客我们简单的介绍了如何CPU的一些核心的指令集,这节博客我们继续讲剩下的部分。2.一个简单的实现方案2.1ALU的控制下图定义了四根输入控制线的以下四种组合:根据不同的指令类型,ALU嘘执行以上四种功能的中的一种。对于load和store指令,ALU做加法计算存储地址。对于R型指令,根据指令的7位funct7字段和3位funct3字段,ALU需执行四种操作(与、或、加、减)中的一种,对于条件分支指令,ALU将两个操作数做减法(本质还是作差法)并检测结果是否为0。4位ALU的原创 2022-03-11 10:58:38 · 1311 阅读 · 0 评论 -
你了解CPU吗?(一)
1.写在前面前面我们已经简简单单的介绍RISC-V的指令,以及我们如何跟CPU进行交流的,CPU如何实现加法、减法、乘法、除法这些。这节博客我们主要介绍下CPU。2.概述我们都知道计算机性能取决于三个因素:指令数、时钟周期长度和每条指令的时钟周期数(CPI)。这节我们主要介绍处理器所要用到的原理和技术。首先从一个高度抽象和简化的概述开始,之后以此为基础为RISC-V指令系统构建数据通路,并设计一种简单的、能够实现指令系统的处理器。然而,更接近实际情况的是流水线RISC-V,所以本章的大部分篇幅将介绍这原创 2022-03-07 22:56:42 · 2806 阅读 · 0 评论 -
计算机是如何进行计算的?(二)
1.写在前面我们上一节介绍了正数的加法、减法、乘法、除法,这节博客我们来介绍下浮点数的加法、减法、乘法、除法。2.浮点运算除了有符号和无符号的整数外,编程语言还支持小数,在数学中被称作实数。科学记数法,该记数法在小数点左边只有一个数字。科学记数法中整数部分没有前导0的数字称为规格化数,这是一种常用的表示方法。为了保证二进制数的规格化形式,我们需要一个基数,使得这个二进制数在移位后(相当于增大或减小基数的指数),小数点左侧必须只剩一位非零数。只有以2为基数才符合我们的要求。由于基数不是10,我们还需要原创 2022-03-04 16:17:56 · 2717 阅读 · 1 评论 -
计算机是如何进行计算的?(一)
1.写在前面前面我们已经学了各种指令,我们都知道计算机的主要的工作就是收集数据,采集数据,然后处理数据,最后输出数据。但是我们还是不知道数据在计算机中如何进行计算和处理的。2.前言计算机的字由位组成,因此,字可以被表示为二进制数字。整数可以用十进制或二进制形式表示,但其他常用数字又该如何表示呢?如何表示小数和其他实数?如何运算产生了一个大到无法表示的数该如何处理?这些问题中隐藏着一个谜:硬件如何真正实现乘法或除法?3.加法和减法加法是计算机中的必备操作。数字从右到左逐位相加,并将进位传送原创 2022-03-03 15:30:17 · 10268 阅读 · 1 评论 -
我们如何与计算进进行沟通?(三)
1.写在前面前面的博客的我们已经介绍了大部分的指令了,这个时候我们需要了解一下MIPS指令和X86指令,也就是把计算机组成的第二章剩下的部分给整理完。2.以C排序程序为例的汇总整理2.1swap过程交换的代码如下:void swap(long long int v[], size_t k){ long long int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;}当手动把C程序翻译成汇编语言时,具体的步骤如下:为程序中原创 2022-03-02 15:56:36 · 1508 阅读 · 0 评论 -
我们如何与计算机进行沟通?(二)
1.写在前面上篇博客中我们介绍如何和计算机进行沟通的一些简单的内容,讲了一些简单的指令。这篇博客我们继续讲后面的内容,这个系列的博客应该会写三篇。今天开始我们的第二篇的内容。2.人机交互计算机的发明是为了数字计算,但很快被用于商业方面的文本处理。当前大多数计算机使用字节来表示字符,也就是每个人都遵循的表示方法ASCII。大写和小写字母恰好相差32,这个观察可以用作检查或切换大小写的捷径。一系列指令可以从双字中提取一个字节,因此对双字的加载和存储足以传输字节和字。但由于某些程序中文本的流行,所以R原创 2022-02-26 17:33:54 · 1046 阅读 · 0 评论 -
我们如何和计算机进行沟通?(一)
1.写在前面人与人沟通需要说话,需要语言,我们中国人说的是汉语,那么与计算机进行沟通的话,我们需要什么语言呢?高级语言,低级语言,汇编语言,机器语言。今天我们要讲的就是与计算机进行沟通的语言,指令:计算机的语言。2.概述要控制计算机硬件,就必须用它的语言。计算机语言中的单词称为指令,其词汇称为指令系统。而我们主要所选的指令系统为RISC-V,2010年初由加州大学伯克利分销开发。指令系统主要是以下的两种,一种是MIPS是设计与20世纪80年代的指令系统典范。在许多方面,RISC-V都遵循类似的设计。还原创 2022-02-25 15:31:57 · 2796 阅读 · 0 评论 -
计算机抽象及相关技术
1.写在前面前面已经将整个C语言的体系学完了,这个时候开启我们的计算机的组成的学习了,很多优化都是基于硬件来的,所以我们多少要了解下计算机的硬件的部分,计算机的组成。2.概述计算机的科学幻想,车载计算机、手机、人类基因组项目、万维网、搜索引擎等等。如今已经成为了现实。不管是家电还是手机再或者是超级计算机,虽然都是使用了一套通用的硬件技术,但不同的应用具有不同的世界要求,并以不同的方式使用核心硬件技术。主要是下面三种不同的应用场景中:个人计算机:用于个人使用的计算机,通常包含图形显示器、键盘和鼠标原创 2022-02-24 10:27:44 · 1593 阅读 · 0 评论