MoreRSS

site iconsmilejay | 笑遍世界修改

履历:点评、阿里。博客内容:云计算、虚拟化、Linux技术等
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

smilejay | 笑遍世界的 RSS 预览

PCIe代次及传输速率,Gen3/Gen4/Gen5等

2024-11-16 01:12:58

PCIe版本简介

PCIe 是 "Peripheral Component Interconnect Express" 的缩写,中文意思是“外设组件互连快速通道”。这是一种高速串行计算机扩展总线标准,用于计算机内部硬件设备之间的连接,特别是用于连接中央处理单元(CPU)和外设,如图形处理单元(GPU)、固态硬盘(SSD)和其他高速设备。

PCI Express是一种用于连接高速组件的高速串行计算机扩展总线标准,它取代了PCI和PCI- X总线标准,并经过了多次调整改进。PCIe 1.0最初在2002年发布,为了满足日益增长的高带宽需求,之后又相继推出了不同的版本。目前共有五种不同的PCIe标准:PCIe 1.0、PCIe 2.0、PCIe 3.0、PCIe 4.0、PCIe 5.0、PCIe 6.0(于 2022.01 发布),传输速率每过一代增加一倍,PCIe 7.0计划在2025年发布。

PCIe各代次的传输速率、带宽(吞吐量)

值得一提的是,所有的PCIe卡版本都是向后兼容的,也就是说任何版本的PCIe卡和主板都可以以最低版本的模式工作。下表展示了6个传统PCIe版本之间的传输速率和带宽比较(以原始版本N.0为例)。

由于x32并不太常见,上表中就没有写x32的速率。理论上,PCIe 6.0最高支持了256GB/s的带宽。

如果考虑一下线路编码,可以有一些更准确的吞吐量/带宽:(可以看到从PCIe 3.0之后,线路码使用128b/130b编码。这种编码方式是为了实现更高的速率,并加入了均衡、DFE等措施以保证信号完整性。与之前的8b/10b编码相比,128b/130b编码的开销从20%降低到了2%以下)

PCIe卡/插槽的规格

PCIe也有多种规格,x1、x4、x8、x16、x32,x 后面的数字代表 PCIe 插槽有多少条通道(数据如何进出 PCIe 卡)。一个 PCIe x1 插槽有1个通道,可以每个周期传输1位数据。一个 PCIe x4 插槽有4个通道,每个周期可以传输4位数据(依此类推)。x32接口在实际应用中并不常见,通常只在需要极高吞吐量的特殊场合中才会被使用,例如某些高性能计算或特定的企业级存储应用

服务器设备的PCIe规格

Intel SPR、AMD Genoa 平台开始支持PCIe 5.0总线,有些NVMe SSD磁盘是PCIe Gen4 或 Gen5 得设备;在Mellanox的网卡中,CX6 是 PCIe Gen4.0 x16;CX7 是 PCIe Gen5.0 x16/x32。
在Linux系统中,可以通过 lspci -vvv -s $bdf 的命令查看设备是什么PCIe规格,命令输出中查看 “LnkCap”相关的信息,如:Speed 16GT/s, Width x16 就是PCIe 4.0 x16的设备;如下图所示就是查看一个CX6网卡的信息。

参考资料:
https://knowledge.ipason.com/ipKnowledge/knowledgedetail.html/1403
https://fpga.eetrend.com/content/2022/100566300.html
https://community.fs.com/cn/article/pcie-card-selection-guide.html
https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf
https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectx-7-datasheet-Final.pdf

Original article: PCIe代次及传输速率,Gen3/Gen4/Gen5等

©2024 笑遍世界. All Rights Reserved.

Linux Shell命令基础汇总(长期更新)

2024-05-04 15:58:53

就是个人记录,方便自己查找信息。

Shell基础及工具

  • chsh -l 或 cat /etc/shells 查看机器安装的所有shell
  • bash --login 是执行脚本的shell成为一个login shell,而login shell会读取系统和用户的profile/rc文件
  • env和export 显示的是环境变量
  • set和declare显示的是环境变量和自定义变量
  • read : -p 显示提示语;-t 设置等待输入的时长(秒);-s 静默模式(用于输入密码等时不显示在屏幕上);-u 从文件描述符中读取输入
  • expr 表达式计算
  • alias,unalias
  • eval 将一个字符串当成命令来执行 cmd_str='ls -l'; eval $cmd_str
  • history 历史命令; ctrl + R 搜索历史命令(如有多个匹配,多次按ctrl+R可以往前搜索;如果找到了,按 左右方方向键可以到命令的头或尾,修改命令后再执行;或者直接回车执行命令); 不想留下记录,export HISTCONTROL=ignorespace,然后在输入命令前加空格,这样命令将不会被记录;或者 export HISTCONTROL=* ,之后输入任何命令都不会被记录,恢复记录export HISTCONTROL=
  • xargs: 从标准输入中读取内容并传递给它协助的命令,如:find . -name "*.log" | grep "FAIL"
  • time:有bash内置的time命令,也有/usr/bin/time系统命令。time打印出一个命令的执行时长。time输出信息重定向: { time command-line; } 2>file 注意分隔符的使用;或 (time command-line) 2>file 这里time紧贴着小括号(这是启动子shell,占用资源,不推荐)。
  • sleep 睡眠,可以支持秒、分、时、天等,也支持0.01、0.003这样小数秒的睡眠,不过sleep命令只能保证10ms级别的精度。
  • sort : -n, --numeric-sort 按照数值大小排序;-k 按照一列或多列顺序排序;-r 表示倒序排序;-h 以human的形式排序,能识别G>M>K
  • cut 提取文件中每一行的一部分;cut -d ' ' -f 1 这种用法时,可以替代awk中的基本用法。

文件与磁盘命令

file - 识别文件的类型和编码格式

ln - 软链接、硬链接的创建 (硬链接不能跨文件系统、不允许普通用户对目录做硬链接)

find - 查找文件或目录

  • find . -type d -name good (根据文件类型查找:d, f, l, b, c, p, s)
  • find . -type f -regex './e.avi.*[0-9]+$' (使用正则表达式进行文件匹配)
  • 多种正则表达式:emacs, posix-awk, posix-basic, posix-egrep, posix-extended
  • find . -type f -mmin -5 (5分钟内被修改过的文件;+5 则是5分钟以前被修改过的;还有mtime按天)
  • find . -type f -size +50M (大约50MB大小的文件)
  • find . -maxdepth 1 size +50M -type f
  • find . -type f -a name "*.log" (-a 设置多个条件;还有 -o 、!expr 等)

du - 查看磁盘占用量

  • du -sm /home/jay/ (du -sh *)
  • du -ch *.tar.gz (-c 是求和)
  • du -ah . (-a 表示所有的文件,包括隐藏文件)
  • du -sh --exclude="*/.*" (--exclude 表示排除部分文件)
  • du -ah . | sort -hr (查看大小并排序;sort -h 表示human排序,能识别G>M>K之类的)
  • du 磁盘空间占用量;ls 展示的是文件内容的大小
  • 最小的磁盘占用量是一个数据快(block),一般是4KB

压缩解压相关命令

  • gzip, gzip -d
  • gzip 可指定压缩级别(1-9级,9级压缩度最高,但速度最慢)
  • tar -zcvf mytgzfile.tar.gz libvirt (-c 压缩,-x 解压缩,-z 表示gzip格式)
  • bzip2, bunzip2 (这两个命令其实是同一个文件;根据执行命令的名称来做不同的事情)
  • tar -jcvf mybizp2file.tar.bz2 (-j 表示bzip2格式)
  • zip, unzip

文本处理

echo - 返回字符

  • echo "Hello $name" 注意双引号、单引号的区别
  • 转义字符:\a, \b, \t, \r, \n等等
  • -n 去掉末尾的换行符
  • echo -e "\033[颜色1;颜色2m 要展示的文字 \033[0m" (输出有颜色的字符;颜色1为前景色、颜色2位背景色)

系统相关

  • uname -r

Original article: Linux Shell命令基础汇总(长期更新)

©2024 笑遍世界. All Rights Reserved.

《刘擎西方现代思想讲义》读书笔记(下)

2023-12-23 21:35:33

鲍曼 对纳粹对犹太人的大屠杀的理解:1. 机器般理性的现代官僚制; 2. 现代科学主义(“园艺文化”,在科学理性的指导下整理得干干净净、整齐划一)。
阿伦特:”极端之恶“和”平庸之恶“,其实是一体两面。纳粹大屠杀是一种极端的恶,但这种极端的恶,是经由一些”平庸“的罪犯犯下的。这些罪犯身上的这种”恶的平庸性”,其实质是不去思考,是丧失了思考能力。
阿伦特说的思考能力,实际上是积极思考、获得独立判断的能力。
阿伦特的思考是未完成的、探索性的,从未给出完整的答案。这本身就是一种答案:它要求我们必须和阿伦特一同思考,必须自己来思考;如同苏格拉底那样,用思考回复我们作为人的存在本质。
波普尔的“证伪主义”:科学理论的标志不是它能够被证明是对的,而是它可以被证明是错的。 “科学的正确永远是一种不彻底的正确”。
用“可证伪性”代替“可证实性”,用“问题-猜想-反驳”的“试错机制”代替“观察-归纳-证实”的“实证机制”。科学永远无法达到真理。
波普尔把思考延伸到社会政治领域,“批判理性主义”:人类有理性,理性有局限。批判理性主义要拒绝的,就是所谓“乌托邦社会工程”的理念。在波普尔看来,想要覆盖一切、规划一切的乌托邦社会工程不可能成功。
波普尔支持渐进社会工程,反对乌托邦社会工程。
波普尔的批判并不是要颠覆整个理性主义传统,而是要修复和升级这个传统,最终形成了“批判理性主义”。
哈耶克提出了自发秩序的概念,并认为”自发秩序“更优越。除了人为设计出来的秩序之外,还存在自然生成的规则、自发演化出来的秩序。
哈耶克用审慎和批判的态度去质疑主流的启蒙理性主义,特别是要批判那种认为理性能够认识一切、规划一切的独断论。”理性的自负“。
通向地狱之路,是用善良的愿望铺成的。
必须清醒地认识到”人类必然无知“,强调人类的知识总是有局限的,必然包含着无知的一面。

柏林的核心思想主张,价值多元论。
价值一元论:表面上有丰富多样的价值,但这些价值在本质上是和谐统一的,能够用一把尺子给价值做出排序。
多元价值的不可公度性:多种价值之间不可换算,可能无法同时实现,且彼此之间有冲突,但相互独立。
消极自由:是free from,我不想要什么、就可以不要什么。积极自由:是free to,我想做什么、就可以去做。
很多奴役他人的做法往往是借助”积极自由“来给自己正名,但这是一种滥用。柏林强调的是,两种自由都可能被歪曲和滥用,但相比之下,积极自由的滥用更具有欺骗性,更需要我们提高警觉性。
消极自由的4个限定:外部性限定;人为性限定;机会限定;重要性限定。
马尔库赛认为,有一种比”强制“更加危险的控制方式,会让人心甘情愿地服从于制度的控制,陷入一种”舒适的“不自由之中。
美国这样的发达工业社会,它不是用恐怖的手段来控制大众,而是用无尽的消费和享受来贿赂大众,让人们陷入”舒舒服服的不自由“之中,难以察觉社会对自己的控制,也就无从反抗。
单一的生活模式——如何赚钱如何消费,人的思维模式也变得单一化。马尔库赛说,资本主义社会不是真正开放的社会,而是”单面“或”单向度“的社会。
工人阶级物质生活变好后,已被整合到了资本主义体系之内。资本主义很强大,可灵活地”收编“反抗力量。

自由主义倡导一种特定的自由,是个人自由,特别重视保障个人权利,视其为优先甚至首要的价值。
自由主义的内部差异,从空位维度上看,分为英美自由主义和欧洲大陆自由主义,前者有很强的经验主义取向,强调强制的消极自由;后者有很强的理性主义取向,强调自我主导的积极自由。
从时间维度上看,以17世纪英国思想家洛克为代表的”古典自由主义“,强调个人自由和基本权利,主张国家最少干预,在政治上提倡宪政自由原则;后来到19世纪,出现了”现代自由主义“,注重社会公平和平等的价值,转向强调政治民主。
自由、平等、多元,成为现代世界无法逆转的基本条件,但兼顾这三种诉求是非常复杂困难的。
罗尔斯通过无知之幕的思想实验,推理论证了一个正义社会契约中最关键的两个原则。1. 保障平等的基本自由 2. 社会经济的不平等分配,必须满足两个限定条件,一是”公平的机会平等“,二是满足差异原则。
洛齐克的”自由至上论“,有两个关键要点:所有论证的起点是个人权利的绝对优先;主张要在政治、经济和社会等领域全方位地坚持自由原则。
洛齐克获取资源和财产的三项正义原则:获取正义;转让正义;矫正正义。
洛齐克的”最小国家“,根本不会担心社会经济的分配模式是什么,而只要保障人们持有的程序正义,也就是满足持有正义的三原则。
德沃金 ”平等的尊重“,我们要平等地尊重每个人自己选择的生活目标和方式。
”平等的关怀“,不是简单地给所有人”平等的待遇“,而是要把每个人”当做平等的人来对待“,要考虑处境不同造成的不同需求。
道德上应得的后果,就是由你自己的选择和努力造成的命运。
桑德尔 “构成性的社群观”,作为社群成员的义务 不是你选择的结果,而是被社群所赋予的义务,是一种给定(given)的义务。
沃尔泽 “孤立的自我”,并不是脱离社会的存在,而恰恰是被现在的这个社会所塑造的结果。
高度的流动性体现在四个方面:地理上的流动;社会身份的流动;婚姻关系的流动;政治上的流动。
“后社会的自我”(post-social self)观念,反映了自由流动社会的现实,它从根本上失去了确定性和统一性,个人不得不随时重新创造自己。
沃尔泽 “社群主义不可能战胜自由主义”。
泰勒认为,自我无法凭空创造发明自己的价值和意义标准。
韦伯难题:世界祛魅了,现代社会越来越理性化了,但理性本身却分裂了,分成了工具理性和价值理性。
哈贝马斯 称为“交往理性”,存在于人与人之间交往中的理性。 交往理性,就是好好说话这件事,是我们生活中规范性共识的源头。
交往理性的应用条件:“言谈的有效性”,可理解、真实、正当和真诚;“理想言谈情景”。
提出一个概念,确立一个标准,大家都知道应该往哪里走。这就是思想家工作的价值。

福山 1992年出版了《历史的终结与最后的人》这本书,从此,“历史的终结”成为后冷战时代的一个标志性词语。
“历史终结论”主张,历史发展有自己的方向,我们最后会走到历史的终点。但是,福山说这个终点就是自由主义民主。
历史的终结,福山的版本与马克思的版本的不同点:1. 福山设想的目的地与马克思的构想不同,马克思说,共产主义是人类未来要抵达的理想社会,而福山说,没有那么远,“历史的火车”提前到站了,自由民主制就是最终目标。 2. “什么是历史发展的动力”,马克思说,阶级斗争是历史发展的动力,而福山认为根本动力是“为承认而斗争“。
福山政治科学的论证:1. 任何现代化发展都必然发展现代科学技术; 2. 发展科学就会采用市场经济 ; 3. 而发展市场经济就会导致自由民主制。 福山的理受到了来自中国发展经验的挑战。
亨廷顿1996年出版了《文明的冲突与世界秩序的重建》。
亨廷顿看待世界秩序:1. 怀疑”西方文明优越论“,文明之间没有什么高低优劣之分。 2. 文明很难改变。 3. 当今世界西方文明在相对的衰落,西方应该放弃让其他文明”西方化“的这种幻想。
总的来说,亨廷顿是一个政治现实主义者,他认为文明差异不可消除,冲突不可根除,只能管控;世界秩序只能建立在多种文明共存的基础之上。

当今重要的冲突之一,不是发生在国家之间,而是来自国家内部。在国际领域,”自由国际秩序“的衰落?
人类因为理性而伟大,因为知道理性的局限而成熟。
人生意义的问题之所以困难,不是因为它没有答案,而恰恰在于有太多的答案。”是谁出的难题这么的难?到处都是正确答案!“我想这也是人生意义这个问题的难点所在。
有很多正确答案,还有什么困难呢?因为你找到了一个答案,仍然会不安心、不确信,你会忍不住去偷看别人的答案,然后就永远有挥之不去的怀疑:我的答案正确吗?
约翰·密尔在《效益主义》一书中说过一句名言:”宁愿做一个痛苦的苏格拉底,也不愿意做一头快乐的猪“。

Original article: 《刘擎西方现代思想讲义》读书笔记(下)

©2024 笑遍世界. All Rights Reserved.

《刘擎西方现代思想讲义》读书笔记(上)

2023-12-17 22:49:05

我是从豆瓣图书TOP250中看到的这本书《刘擎西方现代思想讲义》,之前认为这只是得到的课程讲义,认为是不是有点评分过高了;前面9月份在余杭区图书馆发现可以借阅,就借来读了,觉得收获满满,对于我这样的业余读者来说,这本书上内容已经深度广度都很足够了,让我了解百年来众多伟大思想家的关键思想,给我有不少的启发,所以,我还是五星推荐。下面是一些我记录的一些读书笔记。

这本书的意义:1. 做一个清醒的现代人; 2. 在理解的基础上,建立起反思性的思维。
思想观念并不脱离于社会现实,而是内在于社会现实。如果离开了思想,我们根本无法真正理解现实。
“现代”是一种新的时间意识。第一,现代代表着一种对传统的否定甚至决裂的态度。 第二,从“厚古薄今”到“厚今薄古”,认为当下以及未来比过去重要。 第三,现代意味着对人的创造性和主体性的肯定,人类成为主宰自己命运的主体。
“现代”是一种新的时间意识,告别过去、开创未来是它最鲜明的特点。“现代化”这个术语主要是指现代历史变革的过程,启蒙理性主义是推动变革产生的关键思想因素。
古今之变:个人主观价值绝对提升,自然秩序被打破,理性秩序建立。“自然变成了不自然”。
启蒙理性主义。理性成为区分真理与蒙昧的决定性标准,成了衡量一切的准绳;理性甚至取代了神的位置,具有近乎上上帝一般的神圣地位。
两个基本观念的转变:人类中心主义的转变,是人看待世界的观念发生了变化;个人主义的转变,是人看待自己的观念发生了变化。

“世界的祛魅”:古代世界那种迷雾一般的魅惑,在现代的“清晨”被理性化的光芒驱散了。世界被充分理性化,也就被人看透而不再神秘了。
现代社会的主导思想是科学,科学属于”实然“领域,旨在发现世界的真相是什么,只能做出相应的事实判断。但支撑人类生活意义的重要观念和原则,包括宗教信仰、人生理想、道德规范以及审美趣味等等,都是”应然“领域的价值判断,而科学无法解决价值判断问题,它给不出一个确定的回答。价值观念之间冲突不断,在个人和公共层面都造成了严肃的问题。
韦伯给我们的启发在于,坦然面对这种困境,与此共存,这也是理性成熟的标志。
“非个人化”(impersonal)就是“对事不对人”,为了追求效率,人被简化成一些指标,与任务无关的个人因素则忽略不计。(对整个系统来说,这样可能效率更高,比如一些大公司迅速的裁员等)
价值理性是通过理性思考来确定目标,工具理性则是通过理性计算找到达成目标的最优手段。两种理性发展不平衡,工具理性不断扩张、发展太快、太强大,带来了“手段压倒目的”的问题。(我们现在日常工作生活中 也都在讨论这个 “手段”与“目的”是否搞清楚)
社会呈现出机器的属性,人则被“非人化”,被看作是机器的零件;这种倾向成为现代社会制度的基本特征,韦伯概括为“现代的铁笼”。
现代社会强调个性、强调自由,看上去有各种各样的选项供我们选择。但实际上,我们并没与太多的机会,因为我们有一个迫切的任务:满足社会对一个零件的要求。我们要在激烈的竞争中成为一个合格、优质的零件。
铁笼是冷酷的,但它同时又是现代生活的基础和保障。铁笼束缚我们,但也庇护我们。
韦伯为我们描述了现代性的底层机制、现代化的丰功伟绩,同时又指出了现代性的冷酷、现代化带来的弊端。我们搞明白这些机制和弊端,不是要陷入悲观,而是为了“了解真相”。
罗曼·罗兰说过:“世界上只有一种英雄主义,那就是在看清生活的真相之后,依然热爱生活。”

许多问题如果一直追问下去,就会遇到终极关怀的问题:生活到底是为了什么?人生究竟有什么意义?
尼采说”上帝死了“,其实是说,上帝死了,后果很严重,人陷入了虚无主义。尼采认为形而上学就是一些虚假的思想。
虚无让人变成了积极的创造者,这是积极的虚无主义。
尼采的虚无主义,坏消息是人生是虚无的,理论文化也是虚无的。好消息是,因为虚无的真相留出了最自由的空间,我们可以用生命本生的力量创造自己生命的意义。这就是尼采所说的超人。
视角(perspective)是所有生活的基本条件。视角主义,就是”视角决定事实“。
视角主义不是说不同的视角会对同一个客观真相得出不同的主观认知,而是说根本就不存在一个客观真相。不同的视角,得到不同的真相;不是”看到“真相,而是”制造“了真相。 (这个视角 让我想到了《时间简史》中提到的强弱人存原理)
意识到自己眼中的真相不是绝对真相,对更多视角保持开放的态度,去倾听、理解和学习它们。
如果尼采宣告了”上帝的死亡“,那么弗洛伊德就宣告了”理性人的死亡“。
人类心理结构中的”无意识“区域非常巨大。
人格结构三元说:本我、自我、超我。(本我的力量最强大)
弗洛伊德的精神分析学,在现代的科学上受到了批判/否定,但它对社会文化的改造巨大,最重要的后果是:欲望被解放了。
萨特的存在主义学说,最重要的两点:自由选择,积极行动。
纯粹的意识本身就是虚空。
如果人的存在就是意识,而意识本身就是虚无,那么人的存在就是虚无。
物的那种被决定的、不能改变的存在,叫做”自在“的存在。人的这种”有待形成“的、不固定的存在,叫做”自为”的存在(“为自己”)。自在的存在是一种固定不变的本质,而自为的存在没有固定的本质,它的本质是可以变化的。
人没有固定的本质,人的本质是可以改变的、有待形成的,原因就是人的存在根本上就是虚无的。
“人是一种徒劳的激情”,总是有一种激情推动我们去占有、去追求,但我们希望得到的那种满足其实永远无法实现。
人是被判定为自由的,自由就是人的命运。人唯一的不自由就是不能摆脱自由。
萨特说,存在就是虚无,存在先于本质。如果“本质”决定了命运,那么,先于本质而存在的人就不被任何命运所限定,也就是说,人在根本上是自由的。
从“存在就是虚无”,萨特推出了人的绝对自由;而从绝对的自由,萨特又推出了绝对的责任。
萨特认为,人总是要维护自己的主体性,所以人与人之间一定会为了争夺主体性而斗争。每个人在和他人相处时,都想把他人变成客体,以此来维护自己的主体性和自由。人与人之间的交往,总是为了争夺主体性而斗争。即使在爱情当中也不例外。

Original article: 《刘擎西方现代思想讲义》读书笔记(上)

©2024 笑遍世界. All Rights Reserved.

《时间简史》读书笔记

2023-12-17 00:30:29

今年9月时,终于把7年前双十一买的《时间简史》完整读了一遍,想想那时买书还是寄到在阿里云的转塘的中大银座办公室。真是感慨,买书如山倒 读书如抽丝;仅以这篇读书笔记作为纪念。

海森堡的“不确定性”原理:粒子位置的不确定性乘以粒子的质量再乘以速度的不确定性不能小于一个确定量,该确定量即是普朗克常量(h=6.62607015×10-34 J·s 10的-34次方)。
恒星的最终归宿,取决于昌德拉塞卡极限,这个数值大约是1.5倍太阳质量,大于这个数值的恒星将不能维持本身以抵抗自己的引力。
* 恒星的质量 < 昌德拉塞卡极限:斥力大于引力,停止收缩 ,变成「白矮星」,如天狼星。
* 恒星的质量 > 昌德拉塞卡极限:会爆炸或设法抛出足够的物质,形成「中子星」。如果质量更大,则将成为「黑洞」。

自然界中只存在四种基本的力(或称相互作用)其他的力都是这四种力的不同表现。这四种力是:引力、电磁相互作用力、弱相互作用力、强相互作用力。
* 引力即使万有引力,在微观粒子上,引力非常弱,比其他三种力都弱。
* 电磁力,作用于带电荷的粒子(或宏观物体),同种电荷互相排斥,异种电荷互相吸引。
* 强核力,将质子和中子中的夸克束缚在一起,并将原子核中的质子和中子束缚在一起。核子之间的距离超过约10的负15次方米时,强力就可以变得很小而忽略不计;小于10的-15次方米时,强力占主要的支配地位,而且直到距离减小到大约0.4×10-15m时它都表现为吸引力,距离再减小,则强力就表现为斥力。
* 弱核力,负责放射性现象,并只作用于自旋为二分之一的所有物质粒子(而对光子、引力子等不起作用),其力程比强力还要短,而且力很弱。

事件视界,是时空中不可逃逸区域的边界;其行为有如围绕着黑洞的单向膜,物体可以通过事件视界落入黑洞里去,但没有任何东西可以通过事件视界而逃离黑洞。
黑洞边界-即事件视界-是由刚好不能从黑洞逃逸,而只能在边缘上永远盘旋的光线在时空里的路径形成的。
黑洞的大小和形状,仅依赖于他们的质量和旋转速度,而与坍缩形成黑洞的原先物质的性质无关。”黑洞无毛“。

宇宙从非常热的状态开始并随膨胀而冷却的景象,和我们今天所有的观测证据相一致。但还留下许多未被回答的重要问题:
* 为何早期宇宙如此之热?
* 为何宇宙在大尺度上如何均匀?
* 为何宇宙从开始膨胀到100一亿年后的现在,都是以接近于坍缩和永远膨胀模型的临界膨胀率膨胀?
* 为何宇宙在大尺度上如此均匀,它却包含局部的无规律性,如恒星与星系?
广义相对论和其他所有物理定律在奇点处都失效了;人们不能预言从奇点处会出来什么。(大爆炸后约1秒开始都符合物理规律,甚至10的-43次方秒也有大统一理论。)

强人存原理:存在许多具有不同初始膨胀率和其他基本物理性质的不同的宇宙,只有一些适合智慧生命的生存。”为何宇宙是我们看到的这样子?”答案很简单:如果不是这个样子,我们就不会再这里。所有宇宙的演化必然会产生智慧生命。(极具争议性)
弱人存原理:在一个大的或具有无限空间和时间的宇宙里,只有某些时空有限的区域,才存在智慧生命发展的必要条件。

经典引力论中,宇宙要么已经存在了无限长的时间,要么在有限的过去的某一时刻的奇点上有一个开端。
量子引力论,产生了第三种可能性:时空有可能是在范围上是有限的,却没有边界或边缘的奇点。有限,但无界。
宇宙只要有一个开端,就可以设想存在一个造物主;如果宇宙确实没有边界或边缘,它就既没有开端也没有终结,它就是存在,那么还有造物主存身之处吗?

时间箭头将过去和将来区别开来,至少有三个不同的时间箭头:1. 热力学时间箭头,在这个方向上无序度或熵增加; 2. 心理学时间箭头,这是我们感觉时间流逝的方向,我们可以记忆过去而是未来; 3. 宇宙学时间箭头,宇宙在这个方向上是膨胀而不是收缩。

19世纪以来 科学变得过于专业化、数学化,哲学就难以把科学作为研究范围了。维特根斯坦:哲学余下的任务仅仅是语言分析。

---- (后面是自己的感慨)
最终的统一理论,那是上帝最后的秘密,如果真的被发现了,那么之后未来科学的进展在哪里?是不是永远就不可能有大的理论突破了。那时的人类已经知道了关于这世界关于上帝的所有秘密,后续这也是一件让人想想都可怕的事情。就如同我真的实现了永生,也是一件可怕的事情,似乎永远有花不完的时间,我还会努力工作 好好生活吗、不得先躺平个一亿年再说 :)

PS:大爆炸初始的奇点,这个词“奇点”的“奇”字的读音,以前一直不确定到底是(jī)还是(qí),查了下资料现在基本确定了,就读 qí(二声,就是奇怪/奇异的奇)。 见一个文章: 到底是奇(qí)点,还是奇(jī)点?https://www.guokr.com/article/441425

之前摘录过一个《广义相对论的七大预测试验》:

广义相对论的七大预测试验(其实我也不懂)

Original article: 《时间简史》读书笔记

©2024 笑遍世界. All Rights Reserved.

《CPU通识课》读书笔记

2023-12-16 23:09:09

在图书馆借了《CPU通识课》这个本书,读完了,感觉还是有不少收获,有很多入门知识得到了回顾和加强,也有收获部分新的知识,这不是很深的技术和理论,对,就如标题所说只是一个入门。总的来说,还是觉得是不错的一本书,让我至少跟开发FPGA、ASIC、CPU的同事/朋友等交流时有一定的基本概念不止于完全听不懂。
同时经过这些年的工作,再结合这本书来看,其实里面的东西都很实用,再回过头来看十多年前大学时老师教过的课程,其实底层的基本原理和技术,如《模拟电路》、《数字电路》、《微机原理》、《Verilog-FPGA设计》、《集成电路》等都是我们的大学专业课,但当时自己似乎没有很努力或有兴趣去学习。当时老师们也没有特别强调课程的价值,没有和CPU芯片研发等工业界的实践结合起来(当然芯片研发热 是这几年才特别热门),当时学的时候没感觉特别重要,认为还不如学点C语言/Java语言有用。其实,这些基础的知识的生命周期比较长,现在想想大学那些专业课,其实也没太过时,关键老师要激发学生学习的兴趣、并教得专业和生动。
如下只记录了书中的一些有用的笔记。

冯诺依曼体系结构:运算器、控制器、存储器、输入设备、输出设备。运算器、控制器两部分常被一起设计,合称为中央处理器(CPU)。
为了增强性能、降低功耗,CPU的核心模块经常需要手工定制电路。在纳米级尺度上对晶体管进行排兵布阵。
MIPS(million instructions per second)、MFLOPS(million floating-point operations per second)的衡量指标比较适用于高性能计算机这种计算模式单一的场景,现在计算机性能强大经常使用功能GFLOPS。国际上比较认可和通用的计算性能测试工具 SPECCPU。
用Intel ICC 或 AMD AOCC等编译的speccpu跑分可能更高 但仅做为参考 有点 为了跑分而优化的味道。
CPU的发展主要受三方面动力的驱使:1. 应用需求牵引 2. 生产工艺进步 3. 科学探索的内在动力
https://opencores.org/ 上面有各种类型的开源处理器。
指令集又称为指令系统架构(Instruction System Architecture,ISA)是CPU运行的软件的二进制编码格式,是一种指令编码的标准规范。
复杂指令集计算机 CISC、精简指令集计算机 RISC。
1971年 Intel 4004指令集只有50条,到2000年intel CPU的指令集超过1000条。
RISC计算机的指令条数一般不超过100条。
主流的CISC指令集,目前现存的住剩下Intel的x86。
CISC和RISC融合,CISC = 预译码 + RISC
汇编语言把“功能表示”和“硬件机制”分离开来,实现了程序员的第一次解放。汇编器。
高级语言的发明是程序员的第二次解放。编译器。 高级语言“平台无关”。
汇编语言使用的两种场景:1. 实现高级语言不能实现的功能 2. 对性能要求极高,需要针对CPU优化代码。
微架构 micro-architecture,是指一个实际CPU的电路设计,也就是CPU的硬件实现方案。
IP核(Intellectual Property Core)是指一个设计好的电路模块。IP核实现了一个预定义的电路功能,可以在不同的芯片中重复使用。软IP:用硬件描述语言描述的电路模块。 硬IP:电路模块的版图,是对电路进行布局、布线,并且确定了所采用的全部晶体管的电路模块。
SoC(System on Chip) “片上系统”,是在一个芯片中集成多个电路模块,组合形成具有接近完整计算机功能的电路系统。
功耗(Power Consumption)是电子设备在单位时间内所消耗的电能。一般来说,计算机能力越强的CPU,功耗也越大。服务器CPU、台式计算机CPU、移动计算CPU、嵌入式CPU/微控制器CPU,功耗逐渐降低。
降低功耗的方法:采用先进的半导体生产工艺;通过操作系统实现电源管理;根据运行负载自动调整主频。
晶体管尺寸已经接近极限;晶体管会失去可靠性,无法精确控制电子的进出,从而无法稳定地表示0和1。
Intel Tick-Tock模型:Tick 提升CPU的制造工艺; Tock 更新微结构设计。本质上是“分而治之”的方法。
CPU性能提升慢的原因:新的应用需求变少;Intel已占据最大市场份额,不急于退出高性能产品在争夺市场;学术领域很多年没有新的CPU突破性理论。
异构计算的两个本质思想:“专人干专事”;“把原来软件干的活,交给硬件来做”。
ARM的Big.little架构在一个芯片中集成两种CPU核,一种性能高、功耗高,另一种性能低、功耗低。
CPU的后门(Backdoor),是指能够绕过正常的安全机制的防反;可认为是一种“有意设下的秘密通道”。漏洞(Vulnerability),是指在CPU设计中存在的一种缺陷,可以被攻击者你用来实现非正常的功能;可认为是一种“不小心造成的隐患”。
CVE (Common Vulnerabilities and Exposures,通用漏洞披露)是国际权威的漏洞库,也还是信息安全领域的权威字典,是事实上的工业标准。其他漏洞库,包括:美国的NVD、中国的CNNVD、中国CNVD 以及一些安全厂商的漏洞库、Intel的安全中心等等。

CPU专业设计人员需要学习的基础理论:布尔代数、数字电路设计、计算机系统结构。
学习CPU原理的三本经典书籍:《计算机体系结构:量化研究方法》、《计算机组成与设计:硬件/软件接口》、《深入理解计算机系统》。
电路设计比编程难:1. 软件编程语言比硬件描述语言更方便使用 2. 电路系统的复杂程度高于软件系统 3. 电路系统中存在大量”有状态“模块,复杂程度高于”无状态“的软件模块。
EDA 是CPU设计软件,有两个主要功能:设计、验证。
像写软件一样设计CPU:Verilog语言
Verilog描述的是抽象电路结构,而不是真正实现电路的门单元,因此Verilog源代码被称为寄存器传输层(Register Transfer Level,RTL)模型。
门电路组成的一张网,”网表“。
以网表位分界点,整个CPU的设计分为“前端”和“后端”两个阶段。第一个阶段,使用Verilog进行RTL设计,描述的是电路的逻辑功能,因此称为“逻辑设计”,经过“逻辑综合”(Logic Synthesis)后形成网表。第二个阶段,网表还要经过布局布线才能确定晶体管在芯片中的实际位置,形成交付给流片厂商的最终成品——版图,这个过程称为“物理设计”。

晶体管是CPU的基础构成单元;物理器件的最小单元是CMOS晶体管。
晶体管的引脚上电压的低、高代表二进制的0、1。
根据布尔代数理论,使用“非门”可以构成所有二进制计算单元。
“补码”:正数的补码和原码相同,负数的补码是原码中的所有数字按位取反后再整体加一。
加法器是CPU最基础的运算单元。
寄存器(register)是CPU中用于存储数据的单元。

流水线(pipeline)是指CPU将一条指令切分为不同的执行阶段,不同的阶段由独立的电路模块负责执行,宏观上实现多条指令同时执行。
增大流水线级数的直接好处是可以提高指令的并行度;另一个好处是可以提高CPU主频。
但增大流水线也有负面影响,两个相邻阶段之间都需要增加寄存器,会增大电路的复杂度,增加成本、功耗;增加的寄存器也会使数据的传输时间变得更长,增加了执行指令的额外时间。
Intel Pentium 4的流水线达到了惊人的31级。
动态流水线是CPU使用电路硬件判断指令相关性,对没有相关性的指令进行重新排列的一种技术,也成为“动态调度”技术。
动态流水线中,保留站(reservation station)是新增的电路单元,用来保存一组等待执行的指令,在有的文献中也成为“发射队列”(issue queue)。
乱序执行(out-of-order execution)是指在CPU内部执行过程中,指令执行的实际顺序可能和软件中的顺序不同。 特点:有序取指、重新排列执行顺序、有序结束。
“寄存器重命名”是指保留站中设置了寄存器单元的备份,用来保存每条指令临时的计算结果。
在乱序执行的CPU中,电路至少分为4级流水线:取指令(IF)、指令译码(ID)、发射(ISSUE)、执行(EX)。
只有正常执行、不产生例外(Exception)的指令才能提交。
“重排列队列“又叫”重排序缓存“(Reorder Buffer, ROB),位于发射队列之前,记录了指令在软件中的原始顺序。
在流水线中增加一个新的”提交“(COMMIT)阶段,位于执行(EX)之后。
乱序执行的3个重要概念:保留站、重命名寄存器、ROB。
多发射(multiple issue)是指流水线的每一个阶段都能处理多于一条的指令;在一条流水线上增加了处理指令的宽度。
转移猜测(Branch Prediction)(分支预测),是CPU流水线对转移指令的优化机制。
CPU的流水线中,对内存控制器的调用一般作为一个独立的流水线阶段,称为”访存阶段“(MEM),位于提交(COMMIT)阶段之前。

向量指令(Vector Instruction)是指一条指令能够同时计算两组以上的操作数。向量,每一组操作数由多个数值组成。与”向量“对应的是”标量“,一组操作数只由单一的数值组成。
可信计算是一种安全管理机制,是采用专用安全模块对计算机的硬件、软件进行加农,确保计算机上安全的硬件和软件都经过身份鉴别、符合预期功能。
多核(Multicore)是指在一个芯片中集成多个独立的CPU单元,所有的CPU可以共同执行计算工作。这样的芯片称为一个Chip,而芯片集成的每一个CPU成为一个处理器核(core)。
多路是指在一个计算机主板上安装多个独立的CPU芯片。”横向扩展“
硬件支持的多线程 SMT (Simultaneous Multi-Threading)。
缓存设计的关键问题是数据同步;基于目录的Cache一致性协议,以很简单的结构实现了并行计算机中多个CPU之间的数据同步,既适用于SMP也适用于NUMA。
”强一致性“、”弱一致性“;目前绝大多数并行CPU都采用弱一致性。
原子指令(Atomic Instruction)用于在多个CPU之间维护同步关系。 与数据库中的事务(Transaction)概念类似。
总线(Bus)是模块之间的通信线路,是把所有模块连接起来的纽带,是CPU作为计算机的大脑来指挥其他模块的神经中枢。
主板(Motherboard)是计算机中的一块电路板,所有主要的电子元器件都焊接在主板上,还有一些外围设备以独立的电路板插到主板的I/O扩展槽上。
固件(Firmware)是指向电子硬件中嵌入的软件程序。
BIOS是CPU运行的第一个软件,主要功能:系统自检、初始配置、加载操作系统。
基本电路元件:电阻、电容、电感。
二极管(Diode)是具有单向导电性能的器件。
场效应管(Field Effect Transistor, FET)也是一种晶体管,是一个三端器件。FET的一种实现工艺是MOS结构的晶体管。
数字信号是取值上是离散的、不连续的信号。
CMOS反相器是所有集成电路的基础单元,数字电路的基本单元。
CPU的制造成本:晶片成本、测试成本、封装成本。
现场可编程逻辑门阵列(Filed Programming Gate Array,FPGA)是能够运行CPU的一种替代方案。
先进的制造工艺:SOI、FinFET。

CPU的纳米工艺是指”栅极沟道的最小宽度”。一个晶体管有3个引脚,晶体管导通时,电流从源极(Source)流入漏极(Drain),中间的栅极(Gate)相当于一个水龙头的闸门,它负责控制源极和漏极之间电流的通断。

CPU与应用软件生态之间的接口:ISA、System Call、API
产业链内部的利益分成主要是由生态主导者定的。
优秀生态的三个原则:开放、兼容、优化。
兼容至上的Windows-Intel体系; 开放的Android-ARM体系;优化到像素级的苹果生态。
CPU发展的两条路线:“市场换技术”;“市场带技术”(自研技术、自建生态、通过市场引导带动技术进步)。
龙芯团队做产品的3个设计原则:先提高通用处理能力,再提高专用处理能力;先提高单核性能,再提高核数;先提高设计能力,再依靠先进工艺。
对高度复杂核心技术,“试错”是一个绕不过去的路径。 创新=f(资金,人才,体制机制,时间)
龙芯成熟的4个标志:功能丰富、架构稳定、性能优化、问题收敛。

Original article: 《CPU通识课》读书笔记

©2024 笑遍世界. All Rights Reserved.