计算机科学拓展学习

计算机科学拓展学习

  • 编程语言一般分为三类:机器语言,汇编语言,高级语言

    1. C++ 是在C语言的基础上发展起来的,C++ 包含了C语言的所有内容,C语言是C++的一个部分,它们往往混合在一起使用,所以统称为 C/C++。C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统。

    2. Java 是一门通用型的语言,可以用于网站后台开发、Android 开发、PC软件开发,近年来又涉足了大数据领域(归功于 Hadoop 框架的流行)。

    3. C# 是微软开发的用来对抗 Java 的一门语言,实现机制和 Java 类似,不过 C# 显然失败了,目前主要用于 Windows 平台的软件开发,以及少量的网站后台开发。

    4. Python 也是一门通用型的语言,主要用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域,近年来势头强劲,增长非常快。

    5. PHP 是一门专用型的语言,主要用来开发网站后台程序。

    6. JavaScript 最初只能用于网站前端开发,而且是前端开发的唯一语言,没有可替代性。近年来由于 Node.js 的流行,JavaScript 在网站后台开发中也占有了一席之地,并且在迅速增长。

    7. Go语言是 2009 年由 Google 发布的一款编程语言,成长非常迅速,在国内外已经有大量的应用。Go 语言主要用于服务器端的编程,对 C/C++、Java 都形成了不小的挑战。

    8. Objective-C 和 Swift 都只能用于苹果产品的开发,包括 Mac、MacBook、iPhone、iPad、iWatch 等。

    9. 汇编语言是计算机发展初期的一门语言,它的执行效率非常高,但是开发效率非常低,所以在常见的应用程序开发中不会使用汇编语言,只有在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等。

  • 怎么做到文件被压缩的

    1. 压缩分为无损压缩和有损压缩两种。
    2. 有损压缩就是通过删除一些已有数据中对人耳听觉影响较小的高频部分数据来达到压缩目的;无损压缩就是通过优化排列方式来达到压缩目的。
    3. 压缩通俗点来说,就是抓取文本中经常出现的词汇或较长的字符串,再用相对较短的代码去表示,起到减少压缩的目的。

    行程长度压缩算法:
    计算机科学拓展学习_第1张图片

    哈夫曼树压缩法:
    计算机科学拓展学习_第2张图片

  • 计算机CPU 的工作原理

    CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。
    计算机科学拓展学习_第3张图片

    1. 取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值,用来指示当前指令在主存中的位置。当 一条指令被取出后,程序计数器(PC)中的数值将根据指令字长度自动递增。
    2. 指令译码阶段(ID,instruction decode),取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类 别以及各种获取操作数的方法。现代CISC处理器会将拆分已提高并行率和效率。
    3. 执行指令阶段(EX,execute),具体实现指令的功能。CPU的不同部分被连接起来,以执行所需的操作。
    4. 访存取数阶段(MEM,memory),根据指令需要访问主存、读取操作数,CPU得到操作数在主存中的地址,并从主存中读取该操作数用于运算。部分指令不需要访问主存,则可以跳过该阶段。
    5. 结果写回阶段(WB,write back),作为最后一个阶段,结果写回阶段把执行指令阶段的运行结果数据“写回”到某种存储形式。结果数据一般会被写到CPU的内部寄存器中,以便被后续的指令快速地存取;许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。
    6. 指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就从程序计数器中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。 [1] 许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。
  • CPU深入了解

    1. CPU的两大生产厂商,都是来自美国的,英特尔(蓝厂)和AMD(红厂)。

    2. 因特尔有很多个种类的CPU,分别是 酷睿,至强,奔腾,赛扬,安腾,凌动,主流的是酷睿。AMD的主流则是锐龙系列。

    3. 英特尔处理器型号的含义:
      计算机科学拓展学习_第4张图片
      计算机科学拓展学习_第5张图片

    4. 锐龙处理器的型号含义:
      计算机科学拓展学习_第6张图片
      计算机科学拓展学习_第7张图片

    5. 决定一颗CPU战斗力的主要参数包括“三大两小”,三大:核心数/线程数、频率、架构;两小:缓存、工艺。 8. 先说核心数,一个核心就好比是一个在流水线上的工人,那四核cpu就是有四个在流水线上的工人,而一条流水线就是一个线程,一般一个核心就只能同时处理一个线程。后来有了超线程的出现,允许一个核心能同时处理两个线程,充分利用了cpu的空闲时间,相当于给工人又增加了一条流水线,减少了工人偷闲的时间,由此可见用超线程cpu的都是万恶的资本家!

    6. 频率就是工人干活速度的快慢,一般以Ghz作为单位,数值越大干活速度越快,根据干活速度的不同档位,频率可分为基频,睿频,超频三种。基频,基准频率,又称默频,是CPU轻度工作时的频率,你平时看看电影刷刷网页,CPU基本就是以这个频率工作的,当电脑闲置或者开启大型程序时,CPU也会自动调低或者调高频率。睿频又称加速频率,就是在高负荷的情况下,CPU自动调节后能达到的最高频率,就像是流水线上的任务多了,工人们自动加快干活速度一样,不论是基频还是睿频,都是厂商标注的,能保证CPU正常运行的频率。超频则是用户自行修改一些设置,使得CPU超负荷运作,就像给工人喝了红牛,想激发出工人的全部潜能一样,不过要注意CPU在超频的频率下不一定能正常工作,普通用户超频带来的性能提升也是很小的。

    7. CPU的架构,稍微抽象一点,你可以理解为工厂布局和设施。新架构就相当于给工厂和工人配备了更先进的设施与装备,让工人能更高效的工作,所以新架构就往往意味着更强的性能与更好的能耗比。改动CPU架构是一个很困难的工作,一般Intel和AMD每年都是进行一些优化,隔几年才会大改,一般伴随着制造工艺一起进行。

    8. 接下来我们看“两小”,制造工艺和缓存,制造工艺,又简称“制程”, 指的是晶体管栅极 的宽度,制程越小,相同面积下就能放下更多的晶体管,能耗比越高,主要是影响功耗表现,相同性能下,制程先进的CPU往往功耗越低(省电)。

    9. 缓存,cpu处理数据的速度非常快,而硬盘的传输数据的速度特别慢,根本跟不上cpu的速度,为了不拖cpu后腿,我们加了个能更快交换数据的内存,把可能需要用到的数据块,预先加载进来。而现实情况是,即使是内存的速度也还是跟不上cpu的速度,所以我们请来了靠计算核心更近,交换数据更快的缓存,从内存中更精确地提取出将要用到的数据块,更快的去配合CPU的速度,缓存又分为一二三级,一级离CPU最近,数据交互也最快,CPU在运算时会优先从离自己最近的一级缓存开始获取必要的数据,如果CPU找到了需要的数据,我们称之为“命中”,如果一级缓存里没有命中,CPU就会去二级缓存找,再没有命中就会去三级缓存,还是没有就会去内存找。

  • 内存和外存,移动存储

    1. 内存是计算机运行时的数据都运行在内存中,外存就是长期保存的数据。
    2. 内存储器(内存条)就是计算机通电运行时,所有的正在运行的程序和数据都是运行在内存中的,内存越大,计算机可供同时存取得数据就越多,也就是我们常说的大内存条速度快。
    3. 外存储器(机械硬盘,固态硬盘)就是在计算机断电的情况下,也可以长期的保存数据,当计算机需要从外存储器中读取数据时,首先将数据从外存主机读入到内存储器中,然后计算机再进行下一步处理。
    4. 移动存储(U盘,光盘)
  • GPU显卡

    1. 显示主芯片显卡的核心俗称GPU,它的主要任务是对系统输人的视频信息进行构建和渲染。一般常见的GPU有两大厂商:AMD、NVIDIA。也就是我们常说的的A卡和N卡。
    2. N卡主要有低功耗、驱动成熟、产品线完善(低、中、高端产品型号全)等优势,是很多游戏玩家热选;而A卡则主要是性价比相对更高,计算能力强,绘图/挖矿更有优势,画质较好,只不过目前在游戏优化驱动上面是一个短板,而且在高端的游戏显卡产品比较少,高端的能耗较差,性价比不高。
    3. 英伟达的命名规则分为前缀、代号和后缀三个部分。前缀分别有GT、GTS、GTX和RTX,性能指数分别对应:低端、入门、中端、高端。代号数字第一至第二位代表系列(代数),代数越新越好,毕竟时代在召唤。后两位代表性能,后缀常见的有super和ti,分别都是代表是这个型号的加强版。以RTX2080ti为例,就是高端20系列,性能指数80的加强版显卡。
    4. AMD显卡的命名虽然说比较混乱,但是梳理之后还是有迹可循的。它和英伟达的命名规则同样分为前缀、代号和后缀三个部分。老规矩我们先说前缀,三代之前前缀分为:R9高端、R7中端、R5入门以及R3低端,在往前就是远古时代的HD开头了。
    5. 近几年AMD都用RX开头,比如常见的RX580,数字第一位代表的是代数,后面80代表的是性能等级,RX580>RX570>RX550,依次排序。值得一提的是RX400系列跟RX500系列之后,不再是600系列,而是RX Vega系列。分别是RX Vega56、RX Vega64,当时也是为了狙击GTX1080临时起的系列。还有一个另类就是50周年纪念版,RX5700和RX5700XT,对标的是N卡的2060跟2070,再往上就是顶级的Radeon VII.后缀字母分别是X2代表双芯片,X代表完整的核心,GE代表BOOST,XT代表PRO加强版,D核心阉割。比如R9 295 X2,虽然说是上一代的旗舰,但性能比RX590都强。比如RX560D就是第五代中低端核心阉割的显卡。再比如RX560XT就是加强版。
    6. 显卡的参数
    • 架构:相当于运行布局,布局越好跑的越流畅。
    • 工艺:制程越小精度越高,越能发挥更多性能。
    • 光栅以及流处理器:相当于劳动力,人越多执行力越强。
    • 核心频率:反应速度,相当于跑车百米提速效率。
    • 显存频率:相当于限速标志,决定了最大运行速度。
    • 显存位宽:相当于划线,决定了最大运行通道。
    • 显存容量:相当于道路限宽,决定了最大承载量。
  • TPU机器算法学习

你可能感兴趣的:(学习)