0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈处理器形态对于编程的影响

要长高 来源: deepcoder 作者: deepcoder 2022-04-20 17:09 次阅读

写了硬件的发展史之后,属于历史,那么我们也要展望一下未来的可能性。所以就有了今天这一篇。我们知道硬件的设计需求是根据具体使用场景的遇到的痛点,然后可能会提出新的需求。

我们也会发现各个架构有一定的趋同性,无论是x86还是arm也在相互学习,x86学习arm的低功耗,arm也想提高性能。所以精简指令和复杂指令不再那么纯粹。各种总线也在相互借鉴,比如都有内存分页,除了寄存器定义不同,宏观上的分页结构基本是一致的。所以好的东西都在用,这样对软件也有一个好处,硬件形态的设计规范,会使得软件的移植性更好。

除了一些特定使用场景的硬件设计,我们普遍希望的是提高处理速度。我们以服务器使用场景为例子,来一些可能已经存在的猜测,然后我们再展望一下未来处理器(光子计算机和量子计算机等)的形态对于编程的影响

先说可能存在的猜想。我们说过服务器为了提高吞吐量,是分布式的,提高稳定性支持内存,cpu的热插拔等。那么为了提高性能。

在一个服务器主板上可能是怎样的呢?是单个操作系统还是多个操作系统呢?对于同构的处理器可以是单个系统。对于异构的只能是多个系统。假设猜测是多操作系统之间的配合协调。实际也有可能是一个分布式的操作系统。单系统。但是不影响我们说明问题。

我们假设我们访问百度,百度不可能只有一个机房,一个机房不可能只有一个服务器。这些从百度的网址找到具体的服务器(通常肯定是多个,然后负载均衡)。我们就假设找到了一个服务器,然后这个服务器的形态是怎样的会好呢。我们猜测的硬件形态如下图:

poYBAGJfzBWAaL_lAABGQdS90Ck236.png

注意这里的cpu1,2,3表示的不是core,而是一颗多核心的cpu。由于我们假设是多系统的,那么我们就假设这几个cpu都跑linux,系统在各自cpu的local memory里面。然后global memory是每个cpu都可以访问的。这样这几个cpu之间就可以通过共享内存来通信,至于gloabl memory里面是什么结构来组织的实现共享内存通信,这个是实现问题。假设global里面有一个内存数据库。这样相当于多个cpu使用了一个内存数据库。或者是一个内存文件系统,那么多个cpu之间共享了一个文件系统。或者更简单的一些消息通信机制,比如就是个类似ringbuffer的东西,这样cpu之间可以根据定义的ringbuffer的结构通信。

服务器重要的是什么一个是速度,还有一个是数据的备份,保存,数据库之类的。数据库有内存数据库redis,还有磁盘数据库mysql之类的。所以最终的数据都要进入磁盘。所以这个就有一个矛盾并发和互斥访问的矛盾。为了速度我们在不断的提高并发的可能,提高单个核心的速度,但是对于同一个数据库,同一个总线,同一块内存,同一个磁盘的访问总会互斥,有些是硬件上要支持的互斥,有些是软件保证的互斥。所以就要考虑尽量减少互斥的范围。

目前的情况是我们的cpu的两个核心,访问内存的时候,是互斥访问的,因为是同一个总线。那么有没有这样一种可能,如下图:

pYYBAGJfzB2AY6HXAABGfJgYiTM272.png

如上图我们两颗cpu访问同一内存条假设20G,那么红色的部分就要保证互斥访问,访问者,要先获得总线所有权,然后访问释放。对于整个20G的地址空间都要互斥。这样互斥的共享空间限制太大了20个G。由硬件保证在微观上两个cpu访问内存条是互斥访问的。

那么我做一个猜想有没有这样一种memory,比如可以提供2,4,8个通道,这样多个cpu使用不同的通道,只要访问地址不同,就在硬件上,不会争夺总线。或者难以实现的话,我们弱化一些,每4K为一个地址范围。比如这20G的地址空间是0-20G,那么假设一个cpu访问的地址是0《addr《4K,如果另外一个cpu也访问这个内存条,那么如果地址范围也在0-4K那么就要总线互斥,但是如果访问的是4k-8k,那么就可以不需要总线互斥,在微观上,硬件上确实做到一定程度的并发访问。猜测的可能的硬件形态如下图:

pYYBAGJfzCSANkxpAABH90k8d-4971.png

如上图,cpu1通过红色的总线访问这个内存条,cpu2通过绿色的总线访问这个内存条,内存条出厂的时候有一个判断电路,看红色和绿色的地址是否4K空间冲突。如果不冲突,那么可以微观上完全并发,如果冲突,那么就只能互斥访问。

异构内存文件系统 :可能没有这个概念,是我臆造的,不知道是否存在。

我们的总线上有多颗cpu,每颗都有自己的系统,但是我们的memory里面可以有一个内存文件系统,我把它叫做异构共享文件系统,两颗cpu都可以访问,并且两个cpu里面可以跑不同的系统,也不要求是同一种硬件架构。如下图:

poYBAGJfzCyAW8qXAABM49HzPeI510.png

前面的一些属于一些合理猜测或者臆造,不知道是否存在,也许还真的已经存在。

接下来我们说光子计算机和量子计算机。有一段时间炒作的很火,我们不说炒作嫌疑,毕竟无论什么行业刚开始都会有夸大炒作。但是只要发展方向是对的迟早实现,就是时间问题。

光子计算机低功耗,速度快,量子计算机更是速度快。那么假设这些最终都实现了,那么编程的形态会不会变化?我们现在学习的编程语言,编程思想,整个软件生态还能不能用?

我认为对于软件生态是一个机会,可能c语言java语言等等各种编程语言还能用,也许会有新的语言出来。新的系统出来。这个对于整个软件生态都是机会。新的计算形态完全没有必要整个将老的推翻。而是适配向上兼容。

也许新的计算机表示信息不再是2进制,都不好说,但是我们的高级语言是通过编译器编译的。对于语言不需要知道计算机信息表示是几进制。这个通过编译工具链掩盖了。

所以新的针对光子处理器,量子形态的处理器会出现对应的编译工具链。向上兼容现有的软件生态(语言,系统,工具),也许不完全兼容,但是大部分兼容。我们在量子计算机和光子计算机上运行我们原来在传统计算机上的程序,我们不需要知道底层是光子计算机还是量子计算机。就像我们写的程序。我们用不同的工具链编译运行。我们不需要知道是x86的还是arm的一样。这就是向上兼容。通过编译工具来翻译。加上光子计算机和量子计算机的速度的极大提升,会出现新的针对这么高速度的的操作系统,新的软件生态的扩充,而不是消灭老的。对于软件来说反而是机会。也许会出现新的针对该种计算机的新的编程语言,但是完全不会消灭老的语言。新的应用场景会出现,同样对于应用编程者也是机会。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10850

    浏览量

    211518
  • 服务器
    +关注

    关注

    12

    文章

    9109

    浏览量

    85310
  • 量子计算机
    +关注

    关注

    4

    文章

    529

    浏览量

    25409
收藏 人收藏

    评论

    相关推荐

    浮点处理器对于定点处理器有何不同

    对程序做出改动。浮点处理器对于定点处理器有如下好处: 编程更简单 性能更优,比如除法,开方,FFT和IIR滤波等算法运算效率更高。 程序鲁棒性更强。 一、IEEE754格式的浮点数
    的头像 发表于 03-07 08:57 1.1w次阅读
    浮点<b class='flag-5'>处理器</b>相<b class='flag-5'>对于</b>定点<b class='flag-5'>处理器</b>有何不同

    ARM微处理器编程基础和接口实验

    慕课电子科技大学.嵌入式系统.第三章.ARM微处理器编程基础和接口实验.ARM微处理器编程基础实验0 目录3 ARM微处理器
    发表于 12-14 09:04

    基于arduino Nano的ATtiny微处理器编程器

    描述阁楼的程序员我开发了 ATtiny 微处理器编程器的第二个版本。这允许您对多种类型的 ATtiny 进行编程:25/45/85/24/44/84/2313 ...它基于arduino Nano
    发表于 08-05 07:11

    ARM微处理器编程模型

    简介ARM微处理器编程模型的一些基本概念,包括工作状态切换、数据的存储格式、处理器异常等,通过对本章的阅读,希望读者能了解ARM微处理器的基本工作原理和一些与程序设计
    发表于 09-09 14:54 382次下载

    ARM微处理器编程模型

    ARM微处理器编程模型 目录ARM微处理器的工作状态ARM体系结构的存储格式指令长度及数据类型ARM微处理器的工作模式ARM体系结构的
    发表于 02-21 09:14 50次下载

    顺序形态图像处理器的硬件实现

    顺序形态图像处理器的硬件实现,下来看看。
    发表于 09-17 07:26 7次下载

    基于坐标逻辑的形态图像处理器的硬件实现

    基于坐标逻辑的形态图像处理器的硬件实现,下来看看
    发表于 09-18 15:22 11次下载

    浅谈ARM处理器基础知识

    浅谈ARM处理器基础知识
    发表于 01-14 12:31 16次下载

    第2章 ARM微处理器编程模型

    第2章 ARM微处理器编程模型
    发表于 10-27 09:46 3次下载
    第2章 ARM微<b class='flag-5'>处理器</b>的<b class='flag-5'>编程</b>模型

    浅谈数字信号处理器的分类及选择

    在数字信号处理器之间,如果由于其可编程性,通常可以分为可编程和不可编程这两个类别。 在不可编程信号处理器
    发表于 10-29 14:50 6313次阅读

    如何实现坐标逻辑的形态图像处理器

    在阐述坐标逻辑运算的基础上,论述了基于坐标逻辑形态学硬件实现的图像处理系统.该系统采用D!、P+FPGA的框架结构,利用FH矾的可重构特性将其中一片FP(认作为协处理器可以实现不同的图像处理
    发表于 03-30 11:28 4次下载
    如何实现坐标逻辑的<b class='flag-5'>形态</b>图像<b class='flag-5'>处理器</b>

    如何使用FPGA实现顺序形态图像处理器的硬件实现

    该文在阐述了灰度图像顺序形态变换的基础上,介绍了顺序形态变换硬件实现的图像处理系统.该系统采用DSP+FPGA的框架结构,利用FPGA的可重构特性将其中一片FPGA作为协处理器可以实现
    发表于 04-01 11:21 8次下载

    EE-294:Blackfin处理器上的节能编程

    EE-294:Blackfin处理器上的节能编程
    发表于 04-20 20:40 0次下载
    EE-294:Blackfin<b class='flag-5'>处理器</b>上的节能<b class='flag-5'>编程</b>

    ADSP-TS101 TigerSHARC处理器编程参考

    ADSP-TS101 TigerSHARC处理器编程参考
    发表于 05-13 17:11 9次下载
    ADSP-TS101 TigerSHARC<b class='flag-5'>处理器</b><b class='flag-5'>编程</b>参考

    ADSP-TS201 TigerSHARC处理器编程参考

    ADSP-TS201 TigerSHARC处理器编程参考
    发表于 05-18 09:21 1次下载
    ADSP-TS201 TigerSHARC<b class='flag-5'>处理器</b><b class='flag-5'>编程</b>参考