首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

计算机硬件知识总结

计算机硬件对于软件工程师来说很多时候只是停留在一个概念上,例如CPU和内存,硬盘等等,这些都属于计算机组成原理里面必然会介绍到的,博主大学前期接触过大量的计算机硬件知识,曾几何时我甚至考虑过全身心投入到半导体行业,但是考虑到环境限制因素和个人职业的发展,折中选择了软件方向,但是最近阅读了一些机器学习相关的文章,也尝试过自己去训练模型,发现模型训练对硬件的要求比较特殊,这也让我有机会来从新总结一下硬件方面的知识,从软件工程师的角度介绍一下我理解的硬件知识。 首先我主要介绍的是单机系统的硬件组成,不太涉及路由器和交换机等等网络设备,毕竟即使是分布式系统也是由一台台机器组成的,分布式系统技术会涉及很多网络和数据一致性方面的问题,这在单机系统里这些问题都几乎被解决了,因为它是由系统总线与各种高速并且可靠协议的传输保证。 只要是计算机体系结构就离不开三个部分,处理运算模块,存储模块,通信模块。在单机系统里对应就是CPU,内存与硬盘,系统总线。 无论是服务器还是PC,体系都差不多,只是在各个具体的部件对于性能和稳定性有一些特殊的要求,例如服务器更要求稳定性,因为服务器要保证7×24服务,而个人电脑更多强调的是比较强劲的性能,偶尔宕机只需要重新启动即可,这样用户是可以接受的。典型的电脑配置包含几个部分:CPU,内存,硬盘,显卡,主板,电源早期还有北桥(内置内存控制器等模块),南桥,还有散热系统。

01

H730硬件三角函数,DSP库和C库三角函数性能比较,其中硬件三角函数优势明显(2021-03-13)

测试条件: 1、MDK5.33 AC5 ,开启最高等级三级优化,开启时间优化 2、测试平台自制H730VBT板子。 3、工作主频550MHz。 4、开启硬件双精度。 5、开启硬件三角函数。 测试: 1、H730硬件三角函数。 开启20bit最高测试精度,对应6个时钟周期24次迭代。注意这里的时钟周期是相对Cordic来说的,由于Cordic是在550MHz主频的二分频下工作,所以实际测试应该是12个时钟周期完成一次三角函数计算。 这里计算了10000次sin,DMA方式。 最终需要时钟周期是200506个,也就是20个时钟周期计算一次,即36ns一次计算,这个速度还是相当给力的。 正常情况下的理论值应该是12个时钟周期就计算完毕,额外的8个时钟周期耽误在DMA等传输上了。

01

讲座报名|北京邮电大学石川:开放环境下图神经网络初探

【清华大学-美团数字生活联合研究院学术沙龙】由清华大学-美团数字生活联合研究院发起和主办。自2022年3月起,定期邀请学术界、产业界专家,分享前沿技术和工业界实践经验,覆盖多个技术领域,旨在促进产学研合作与交流,推动科技创新发展。 | 议题及讲师 议题简介 近年来,越来越多的研究关注如何将神经网络应用到图数据上,形成了图神经网络的研究热潮。当前的图神经网络主要处理静态同质图数据,然而实际开放环境下交互系统构建的图数据往往具有异质性、动态性、稀疏性、脆弱性等特点。传统图神经网络需要满足数据固定不变、分布相同、

02

CPU流水线详解

为什么Intel处理器主频这么高,而AMD处理器主频都很低?是不是AMD处理器性能不如Intel?我们一般的回答都是,因为Intel处理器与AMD处理器内部构架不同,所以导致了这种情况,还有一种具体一点的回答就是因为Intel处理器流水线长,那到底流水线与CPU主频具体有什么关系呢?今天给大家带来一篇我以前刊登在《电脑报》硬件板块技术大讲堂版面的一篇原创文章。 关于CPU流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问题的解释不够清楚,比如报纸杂志上曾多次提及增加流水线级数有利于提高CPU主频,但对其原因的解释却少有触及,又比如对于流水线的级数与其周期的关系是什么?CPU流水线与工厂流水线的区别和联系等问题的解释也不够清楚,本文将带领您找到以上问题的答案。关于流水线的基本原理本文就不再说明了,对于增加流水线级数有利于提升CPU主频这一观点笔者将通过理论论证和事实举例两方面对其进行解释说明。 我们先对流水线的级数与其周期的关系给出一个公式,一个k级流水线,处理n个任务总共需要花费“k+(n-1)”个周期,这是因为先是处理第一个任务就需要k个时钟周期,k个周期后流水线被装满,剩余n-1个任务只需n-1个周期就能完成。如果同样数量的n个任务不采用流水线处理,那么就需要n*k个周期,我们把两者做比,得到另一个概念,叫做流水线加速比C,所以C=n*k / [k+(n-1)],当n远远大于k时,C的值趋进于k,也就是说,理论上k级流水线几乎可以提高k倍速度,但这仅限于理论。看到这也许有的读者可能会感到一头雾水,不用急,下面就将举例对其进一步说明。 举例前先对流水线周期选取的问题进行一下解析,我们假设一辆成品车的生产过程分为车轮生产,车门生产,最后组装三个步骤,每辆车的车轮生产需要8s,车门需要12s,而最后的组装需要10s,在本例中生产厂商针对此情况设计了1条3级流水线,分别是车轮生产流水线,车门生产流水线以及组装流水线,整条流水线的周期选取为12s,注意,在此为什么设置整条流水线的周期为三个步骤中最长的12s呢?其实在现实生产中由于工艺水平,原料特性以及制造难度的不同,每级流水线完成任务的时间都可能是不同的,这里如果选择8s或10s为整条流水线的周期将会导致车门生产线的任务不能在单位周期内完成,也就无法及时向下一级提交任务,所以在k级流水线中只能选择完成任务所需时间最常的那级流水线的时间作为整条流水线的周期。此例虽然选取12s为整条流水线的周期,但这样又带来了另一个问题,在每个周期内车轮流水线与组装流水线为了等待车门流水线而造成了一定时间上的闲置,具体到CPU内部的流水线也同样存在这个问题,当然我们可以通过合理分配流水线和增加缓存来缓解此问题,但缓存的增加必然导致信号的延迟和高功耗高发热量! 好,我们回到上例,厂商打算在此3级流水线上生产6辆汽车,流水线周期为12s(流水线的周期选取可参看上文),模拟流程如图1,从图上可以看到,6辆汽车一共花费了9-1=8个周期,此结果也印证了上文n个任务总共需花费“k+(n-1)”个周期的公式,此3级流水线生产6辆汽车一共花费的时间是12*8=96s。 一段时间后,厂商决定进行技术改革,又把车轮生产线车门生产线以及组装生产线进一步细分,把流水线的级数由3条增至6条,改革后的6级流水线周期也从12s缩短至6s,(由于细分了各级流水线,所以在此假设每级流水线周期也由原来的8s,12s,10s减半,所以新流水线的周期选取为12s/2s=6s),新流水线生产6辆汽车所花费的周期为12-1=11,所花费的整体时间为11*6=66s,相对于上例的96s提升了30s,至此,我们已从理论上和实际上找到了增加流水线级数确实可以提高工作效率的依据,相信大家已经对流水线的知识有了更进一步的了解,这里还要对一些问题进一步说明。 1流水线级数与频率的关系 结合上文对周期设置的解释和两个例子的对比大家可以发现,只要进一步细分流水线增加其级数,就可以使整条流水线采用更短的周期工作,我们又知道频率等于周期的倒数,由此我们得出结论,增加流水线级数有利于提高各级流水线之间交换任务的频率,也就是有利于提高CPU的主频。 2增加流水线级数为什么能提升工作效率 我们对车辆1进行跟踪测试,其在3级流水线上的生产时间为8s+12s+10s=30s,同样是车辆1在6级流水线上的生产时间为4s+4s+6s+6s+5s+5s=30s,由此我们发现无论对于几级流水线,单个产品的生产时间并没有因流水线级数而改变,既然这样那流水线是通过什么方式提升工作效率的?右图模拟的是不采用流水线时一辆汽车的生产流程,由3个工人分别负责完成3个任务,从图上可以明确看到在每段时间内只有一个工人在工作,其余两个处于闲置状态,对比上例的两个图示我们发现流水线正是充分利用了这段闲置的时间,所以才在单位时

03

1553B总线控制器61580使用

收藏一篇关于61580使用的文章,侵删! 原文地址:http://emesjx.spaces.eepw.com.cn/articles/article/item/100023 1、BU-61580有“缓冲”和“透明”2种存储模式,前者使用BU-61580内部4Kx16bit缓冲区,后者使用外部RAM作为数据缓冲区,最大可达64Kx16bit。 2、BU-61580的缓冲模式又分“8-bit”,和“16-bit”2种结构。分别称为“8-bit缓冲模式”与“16-bit缓冲模式”。 3、BU-61580读写模式有“0等待”与“非0等待”2种,与上述缓冲模式组合成4种工作模式:(1)8-bit缓冲、0等待;(2)8-bit缓冲、非0等待;(3)16-bit缓冲、0等待;(4)16-bit缓冲、非0等待。 4、所谓“0等待”就是主控CPU(MCU、ARM、DSP等)存贮61580内部缓冲区时不用插入等待周期,在发出读/写命令(Select、STRBD、RD/WR#)后,61580的数据准备好信号(READYD#)立即有效(为低),因此主控CPU可以不用判断READYD#信号。 要注意一点的是,对于读操作来说,这时D0-D15代表的不是本次读操作地址对应单元的内容,而是上次读操作地址对应单元的内容,这是由61580内部逻辑决定的(即所谓的“输出数据延时”)。 这样,对于连续读操作,第一次读数据无效(空操作),第二次读到的是第一次地址的内容,第三次读到的是第二次地址的内容,依次类推;如果是随机读操作,两次读相同地址即可,第二次数据有效。 5、有一个特例就是“中断状态寄存器”需要读3次才行:第一次读,地址为ISR(0x06),数据无效;第二次读,地址任意(如0x00),数据无效;第三次读,除ISR外的任意地址(如0x00),数据有效。 6、在“0等待”模式,SELECT#和STRBD#负脉冲宽度必须>20ns。例如,主控CPU为DSP6203B时,主频为250MHz,其CPU时钟周期P=4ns,EMIF片选信号CEn脉冲宽度=7xP=28ns,但ARE#、AWE#脉宽只有3xP=12ns,因此,应用时只能用CEn驱动SELECT#和STRBD#。 如果使用主频更高的DSP,如64xx系列,上述脉宽条件再也无法满足,就必须使用“非0等待”模式,在读/写周期中插入相应的等待周期了。 7、“非0等待”就是高速主控CPU(如64xx系列DSP)异步存取61580时,每个读/写周期插入若干个等待周期,直到READYD#信号有效为止。注意61580的READYD#是参考Intel80286 CPU的专用芯片82284设计的,可与82284的ARDY#直接连接,经其同步处理后送给80286的READY#;但如用在TI的DSP中,必须做相应处理才能与其ARDY相连,即:ARDY=CEn or(not READYD#)。 8、BU-61580是5V供电,接口电平为TTL,与3.3V供电(LVTTL)的DSP和FPGA连接时,由于LVTTL向上兼容TTL,DSP/FPGA送给61580的地址、控制信号可直接连接,但61580送给DSP/FPGA的状态信号以及双向数据总线必须经过电平转换(例如使用TI的SN74LVT245),否则会形成电流倒灌损坏芯片。

03
领券