跳转到主要内容

CPU

一文搞懂啥是CPU、MPU、MCU、SoC!

judy /

1、CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。

CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。

2、MPU (Micro Processor Unit),叫微处理器(不是微控制器),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。

这种芯片往往是个人计算机和高端工作站的核心CPU。Intel X86,ARM的一些Cortex-A芯片如飞思卡尔i.MX6、全志A20、TI AM335X等都属于MPU。

结合晶圆代工先进平台 兆芯CPU欲登巅峰

Lee_ /

文章来源: <a href="http://mp.weixin.qq.com/s/8ZzzGqigP7_PHCgHmMcvwg">DIGITIMES</a&gt;

中国流传一句话:“黑猫白猫,能捉老鼠的就是好猫”,这是从“结果”论英雄,套用于市场法则,此话也一点不虚。

不论“中国芯”是采取哪种架构:LINUX?X86?只要能获得市场消费者最终青睐,由中国企业自行设计开发、流片量产,在市场上能屹立不倒,在此阶段就已能算通过考验。

近两、三年来,中国芯代表“兆芯”就采取X86架构CPU战略,获得联想在内的计算机系统业者采用,市场知名度渐见成效。

兆芯副总裁傅城接受DIGITIMES访问表示,事实上CPU MIPS架构开发支出远低于X86芯片架构开发费用,X86芯片的研发费用更大。但他认为从市场接受度来说,在嵌入式封闭型利基市场,小众客户接受度不是问题,但在讲求高性能的个人计算机、服务器领域,X86架构仍是主流,这一点上,兆芯还是较具优势。

CPU空操作的原理是什么?

Lee_ /

来源: http://www.tuicool.com/articles/YJfqUjV

最近在利用空余时间写一个兼容MIPS32指令集架构的CPU,尽管它和Intel的不同,但MIPS对nop指令的处理方式可以给你一点启发。

首先上过计算机体系结构课的你一定知道,现代CPU都采用流水线结构。在一个简单的五级流水的MIPS32处理器中,五级流水分别实现的逻辑操作是: 取指、译码、执行、访存、回写 。

<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201702/blog/93…; alt="CPU空操作的原理是什么?" width="600"></center>
(图片来自网络,侵删)

一文看透芯片之处理器CPU

Lee_ /

来源:玩转单片机

回到最初的问题,CPU是怎样访问内存的?简单的答案是,CPU执行一条访存指令,把读写请求发往内存管理单元。内存管理单元进行虚实转换,把命令发往总线。总线把命令传递给内存控制器,内存控制器再次翻译地址,对相应内存颗粒进行存取。之后,读取的数据或者写入确认按照原路返回。再复杂些,当中插入多级缓存,在每一层缓存都未命中的情况下,访问才会最终达到内存颗粒。

知道了完整的路径,那我们开始研究每一步中的硬件到底是怎么样的,读写指令到底是怎样在其中传输的。要了解硬件,首先要说下处理器。处理器的基本结构并不复杂,一般分为取指令,译码,发射,执行,写回五个步骤。而我们说的访存,指的是访问数据,不是指令抓取。访问数据的指令在前三步没有什么特殊,在第四步,它会被发送到存取单元,等待完成。当指令在存取单元里的时候,产生了一些有趣的问题。

第一个问题,对于读指令,当处理器在等待数据从缓存或者内存返回的时候,它到底是什么状态?是等在那不动呢,还是继续执行别的指令?

一文看懂单片机与CPU的相似与不同

Lee_ /

什么是单片机,相信很多人都还不知道。也不知道单片机的作用是什么。单片机简称为单片微控制器(Microcontroler),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机,因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。

大家都知道我们的电脑主要是由中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。安装在一个被称之为主板的印刷线路板上,就是我们个人的计算机了。

把单片机看成一个整体分成四块就很容易认识了。 把这些东西(CPU,硬盘,内存,主板等等)用集成块做好后,如下图所视:

为什么CPU只用硅做,而不用能耗更低的锗做?

Lee_ /

CPU就是在一张硅片上,刻几百万个晶体二极管。制成二极管,硅的开启电压(死区电压)需要0.5V,锗的开启电压只需0.1V。也就是锗CPU只需零点几的电压就能运行,比现在的1V低多了,也算CPU的革命吧。电压更低,意味发热量更少,集成度和频率可以更高。即便开发锗CPU有困难,也比脑动大开的 量子CPU, 光子CPU, DNA CPU靠谱吧?

硅用来做CPU,是因为它的优点太多,而缺点都是可克服的。锗虽然也有优点(比如开启电压、载流子迁移率),但它的几个缺点是很难克服的。

首先是价格。硅直接拿沙子就能制,虽然工艺复杂但是原料成本接近零,锗在地壳中分布非常分散,成品锗(还不是半导体级别)的价格就已经超越了白银,印象中将近2000美元/公斤。

其次很大一个问题就是锗的氧化物不稳定。二氧化硅是致密的绝缘体,力学电学化学性质都很稳定,不溶于水;氧化锗没那么致密,还是溶于水的。这一条基本就宣告了CPU无望。

还有锗器件在稍高的温度下表现不良的问题,以及锗本身比硅重、又比硅软、更容易碎等等。而且现在整个半导体行业都以硅为基础,没人会开发锗的CPU。

MIPS MCU 特定应用扩展

Lee_ /

MCU ASE (特定应用扩展) 可扩展中断控制器支持,减少中断等待时间并加强微控制器系统设计常常要求的I/O外设控制功能。该扩展可用于MIPS32® M14K™系列处理器内核。

MCU ASE支持MIPS32和microMIPSTM指令集架构 (ISA)。

<strong>中断交付</strong>

● 独立的优先级和向量生成
● 在外部中断控制器 (EIC) 模式下支持多达256个中断和8个硬件中断引脚
● 提供16位向量偏移地址
<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201701/blog/91…; alt=""></center>

<strong>减少中断等待时间</strong>

集成触摸技术的MCU——Atmel 外设触摸控制器

Lee_ /

Atmel 外设触摸控制器是电容式触摸传感模块,支持 1-256 信道的自主传感。PTC 支持在相同应用内进行自电容和互电容传感器布局,这就为系统设计师提供了极高的灵活度。由于自主运行,PTC 只使用了微乎其微的 CPU 资源和电,即使是面对高 Key Count 的设计时。凭借嵌入式自动调谐和校准,PTC 将提供高质量的触摸性能,即使是在恶劣环境下。因此,有 PTC 的 MCU 是所有触摸应用的理想之选。Atmel Studio 支持代码开发和调试。对于有高集成和触摸性能要求的任何应用来说,有 PTC 的 MCU 无疑都是不二之选。PTC 可从特定 SMART ARM 设备获取。

<center><img src="http://mcu.eetrend.com/files/2016-12/wen_zhang_/100004361-14410-1c00ba1…; alt="" width="600"></center>

整合 定制 安全 物联网IP三大关键词

Lee_ /

<br/>
<font color="#FF8000">引言:物联网是雾计算,需推动公开参考架构如IP的发展以加快部署。</font>

物联网既是IC业倾心向往的市场,其碎片化应用亦让IC厂商“左右为难”。 “物联网是诸多垂直市场的集合,这些市场通过连接节点到云以提供服务。” ARM 处理器部门市场营销总监Ian Smythe认为,“物联网不是一个‘一刀切’的市场——分布在由末端节点到云的计算、存储和控制取决于特定的应用,这通常被称为雾计算(Fog Computing),也就是特定任务所需的资源能够在被需要的地方找到,而不是将其放在远离物联网终端节点的中心位置,这需推动公开参考架构如IP的发展以加快雾技术的部署。”问题来了,这种雾计算的潮流,为IP带来什么样的觉醒?

<strong>▼IP发展分化为三大方向</strong>

“物联网IP依赖于特定的应用——简单物联网节点需要非常低功耗的处理IP,通常结合模拟和MEMS功能,而更复杂的节点需要一个支持更丰富OS、图像处理和显示的IP。” Ian Smythe认为。

多核CPU下的多线程编程原来是这么回事...

Lee_ /

多线程编程是现代软件技术中很重要的一个环节。要弄懂多线程,这就要牵涉到多进程?当然,要了解到多进程,就要涉及到操作系统。不过大家也不要紧张,听我慢慢道来。这其中的环节其实并不复杂。

<strong>(1)单CPU下的多线程</strong>
在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统中有多个任务要处理的话,那么就需要按照某种规则依次调度这些任务进行处理。什么规则呢?可以是一些简单的调度方法,比如说

1)按照优先级调度
2)按照FIFO调度
3)按照时间片调度等等

当然,除了CPU资源之外,系统中还有一些其他的资源需要共享,比如说内存、文件、端口、socket等。既然前面说到系统中的资源是有限的,那么获取这些资源的最小单元体是什么呢,其实就是进程。

举个例子来说,在Linux上面每一个享有资源的个体称为task_struct,实际上和我们说的进程是一样的。我们可以看看task_struct(linux 0.11代码)都包括哪些内容,