《VHDL学习笔记》

https://www.eefocus.com/hrbeulvcaho/blog/12-11/289109_978e2.html

VHDL 和  “可编程逻辑阵列”     等 硬件技术 的 发展,   未来 硬件层 的 地位 会 不一样,  工作内容 也会 更丰富 。

说实在的, 没必要 担心 摩尔定律 失效,  CPU 的 能力 现在 实际上 并没有 得到 太大 的 利用  。

有很多 因素 左右 着 计算机 的 执行速度  。

比如,  无阻塞模式, 可以参考《无阻塞 编程模型》  https://www.cnblogs.com/KSongKing/p/10287882.html

又比如 三级缓存 对于 线程切换性能消耗 的 影响, 可以参考《后线程时代 的 应用程序 架构》  https://www.cnblogs.com/KSongKing/p/10228842.html

还有就是 今天 说的   VHDL,    VHDL +  “可编程逻辑阵列”   是   复杂指令集 思想 的 解放式 发展  。

将 越来越多 的 逻辑 放到 一个 指令 里 执行,

如果从 程序 设计的角度,  从 软件 的 角度,   VHDL 和 “可编程逻辑阵列”   可以看作 是 一个  超级高效 的   库(Lib),

VHDL 和 “可编程逻辑阵列”   可以为 开发人员  提供  高速   的   API,

这个 API 可以是  图形处理 、 图像处理 、 人工智能  以及  操作系统 内核 操作 ,  以及  各方各面 的 业务需求 。

事实上 操作系统 已经在 用 这个原理了, 比如 操作系统 虚拟内存 的 管理工作 就是通过 CPU 的 “存储管理部件” 实现的 。

VHDL 和 “可编程逻辑阵列”   的 应用领域 在 未来 可能 非常 广泛,

比如 数据库 也可以 利用 这个 硬件编程 的 福利,

可以设想 有一些  数据库 操作 的 “宏指令”  (宏指令 这个名字 是 和 微指令 相对,  在 VHDL 下, 一个 宏指令 由 非常多 的 微指令 组成),

在 VHDL 下,  可以设计一个  很大 的  电路  作为 一条  宏指令,

这个 电路 里包含了 很大 的   电子存储器,   以及 执行 遍历, Hash,  排序   的   逻辑电路,

这样的  宏指令  可以用于 数据库  。

所以, 通过 以上 的 种种方式, 通过 硬件 的 “多样化” 、 “职能复杂化”,  同样 可以 保持 摩尔定律 继续有效 。

不一定 只有 更加 微观 的 制造工艺  。

通过 上面 的 想象, 我们发现, 如果从 “大处着眼”  硬件执行速度  的 发展 的话,  会发现 有一个 重要的关系 关系 到 摩尔定律 的 继续 有效 。

这个 关系 就是      CPU 和 内存      的 关系  。

CPU 和 内存 离 的 越近,   离 CPU 近 的 内存 越大,  则 执行速度 越快 。

如果 从 广义 上来讲,   这个 关系 可以说是       逻辑电路 和 存储器电路       的 关系  。

CPU 是 中央处理器, 必须保持 高速运行,

但是 可以  把 一些    “业务性”  的 职能  分离  出来,  这些 业务性 的 逻辑电路 可以 独立出来, 放在 和  CPU  相对较远 的 地方,

因为 和 CPU 相对较远, 所以 可以 采用 和 CPU 不同的 制造工艺,

这样 在 技术上 就可能 让 这块 业务逻辑电路 拥有 比 CPU Cache 大的多 的 高速存储器  。

将 各种 职能 分离出来, 变成 独立 的 逻辑电路, 同时 让 这个 逻辑电路 拥有 大容量 的 高速内存,

这可以 让 摩尔定律 继续有效 。

这也是 并行计算 的 思想 。

附上 网友 发的 一幅图,  这个 图 挺清楚的 :

关注 硬件 发展, 转载一篇介绍 VHDL 的文章的更多相关文章

  1. 《转载-两篇很好的文章整合》Android中自定义控件

    两篇很好的文章,有相互借鉴的地方,整合到一起收藏 分别转载自:http://blog.csdn.net/xu_fu/article/details/7829721 http://www.cnblogs ...

  2. 转载一篇介绍CUDA

    鉴于自己的毕设需要使用GPU CUDA这项技术,想找一本入门的教材,选择了Jason Sanders等所著的书<CUDA By Example an Introduction to Genera ...

  3. 上一篇括号配对让人联想起catalan数,顺便转载一篇归纳的还不错的文章

    转载请注明来自souldak,微博:@evagle 怎么样才是合法的组合? 只要每一时刻保证左括号的数目>=右括号的数目即可. 直接递归就行,每次递归加一个括号,左括号只要还有就能加,右括号要保 ...

  4. 国内首篇介绍JanOS物联网操作系统的文章 - 如何把你的手机主板打造成物联网平台

    天地会珠海分舵注:如无意外,您现在正在看的将是国内首篇且是唯一一篇介绍炙手可热的物联网的操作系统JanOS的文章!不信你去百度!希望大家能喜欢.但本文只是引言,更多信息请还是访问JanOS的官网:ht ...

  5. Java并发包下锁学习第一篇:介绍及学习安排

    Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...

  6. spring cloud系列教程第一篇-介绍

    spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了.那么,微服务只是指spring boot吗?当然不是了,微 ...

  7. 老猿学5G扫盲贴:推荐三篇介绍HTTP2协议相关的文章

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 5G中的服务化接口调用都是基于HTTP2协议的,老 ...

  8. (转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

    干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==& ...

  9. 给B公司的一些建议(又一篇烂尾的文章)

    感慨:太多太多的悲伤故事,发生在自己身上,发生在自己的身边.因此,为了避免总是走"弯路",走"错误"的道路,最近一直在完善自己的理论模型. 烂尾说明:本文是一篇 ...

随机推荐

  1. Java作业五

    1.编程生成10个1~100之间的随机数,并统计每个数出现的概率. 这个博文里面又random的详细解释:https://www.cnblogs.com/ningvsban/p/3590722.htm ...

  2. mybatis 插入空值时报错 TypeException

    报错内容:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ...

  3. github咋用昂

    github-trend:https://github.com/trending github-usingway:https://zhuanlan.zhihu.com/p/41899093 githu ...

  4. setTimeout 与 闭包。。。

    先看下面一个比较坑的代码 for (var i=1; i<=5; i++) { setTimeout( function timer() { console.log(i); }, i*1000 ...

  5. crontab的定时任务实例

    实例1:每1分钟执行一次myCommand * * * * * myCommand 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3 ...

  6. 解决Detected problems with API compatibility...

    如果是10.3.0那么targetsdk改28.

  7. IONIC和Cordova安装、打包踩过的坑

    1.问题1:直接执行npm install -g cordova ionic,因为网络原因,执行不成功 解决方案:将npm映射到淘宝服务器:npm install -g cnpm --registry ...

  8. FreeSWITCH视频会议命令

    列出所有会议 conference list 列出会议的所有成员 conference <conference_name> list 而<conference_name>就是会 ...

  9. Eclipse远程调试Tomcat

    1.Linux服务器中在Tomcat的catalina.sh文件添加如下内容: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,ad ...

  10. 【Python】基础练习题-1

    #练习1:从键盘输入两个数,并比较其大小,直到输入e/E退出程序 while 1: input_number=raw_inut("please input two numbers,enter ...