Answers:
还有4位和32位微控制器。PC中使用64位微处理器。
数字是指寄存器的宽度。寄存器是微控制器的核心。许多操作都使用寄存器来移动数据或进行算术或逻辑运算。这些操作在ALU(算术和逻辑单元)中进行。
某些操作仅使用1个参数,例如清除寄存器或对其进行递增。但是,许多人会接受两个论点,这导致了ALU的典型的上下颠倒裤子代表。和是自变量,ALU将基于当前操作生成结果两个参数的运算可以是“将15加到寄存器R5并将结果存储在存储器地址0x12AA”。这要求在常量“ 15”(来自程序存储器),寄存器文件和数据存储器之间存在路由。该路由通过数据总线发生。有一条内部数据总线连接寄存器,内部RAM和ALU,对于微处理器和某些微控制器,有一条外部数据总线连接到外部RAM。除了少数例外,数据总线的宽度与寄存器和ALU的宽度相同,它们共同决定了它是哪种类型的微控制器。(8088是一个例外,它内部具有16位总线,而外部只有8位。)
4位控制器具有4位寄存器,该寄存器只能表示16个不同的值,从0到十六进制0xF。数量不多,但是足以与数字时钟中的数字一起使用,而这正是使用它们的领域。
几十年来,8位控制器一直是业界的主力军。您可以用8位存储0到255之间的数字。这些数字还可以表示字母和其他字符。这样您就可以处理文本了。有时2个寄存器可以组合成一个16位寄存器,最多允许65535个数字。在许多控制器中,大数字必须在软件中进行处理。在这种情况下,甚至可以使用32位数字。
大多数8位控制器都有一个16位程序计数器。这意味着它可以寻址最大64kBytes的内存。对于足够的许多嵌入式应用程序,有些甚至只需要几KB。
例如,一个停车场监视器,您必须记录汽车数量并在LCD上显示,这通常是使用8位控制器执行的操作。:-)
下一步是16位。由于某些原因,他们从来没有成功过8位或32位成功者。我记得摩托罗拉HC12系列的价格过高,无法与32位控制器竞争。
32位是当今的主流。使用32位程序计数器,您可以寻址4GByte。ARM是流行的32位控制器。有数十家制造商提供各种尺寸的ARM。它们是功能强大的控制器,通常板上具有许多特殊功能,例如USB或完整的LCD显示驱动器。
ARM通常需要大型软件包,以适应具有大量Flash的大型裸片,或者因为不同的功能需要大量I / O引脚。但是此软件包说明了ARM提供的可能性。
这是一款16针ARM,封装尺寸仅为2.17mm x 2.32mm。
简单的答案:一个N位微控制器具有一条数据路径和ALU,可以处理N位块中的数据。
长答案:短答案在95%的时间内是正确的。长答案令人困惑。一些CPU / MPU的部分大部分为N位,而某些部分为M位。例如,它可能是一个带整数乘法器的8位CPU,可处理16位数据。英特尔系列的CPU(从当前的i7到8088)通常可以组合使用各种8位和16位寄存器来获得16位或32位。然后,营销人员获得这些数字,并决定在其营销材料中使用它们,最终得到称为16位等的8位MPU。
比这更奇怪。一些营销人员会提高MPU的指令大小。Microchip PIC是一个很好的例子。如果您不小心,可能会将其与数据路径中的位数混淆。
抱歉,如果第一段的内容太低了,但希望它能对以后的读者有所帮助:以M为底的以N个数字表示的数字只能和一样大。例如,使用9个小数(以10为基)的数字,您最多只能记下10 ^ 9或0到999,999,999的数字。使用8个二进制(基数2)数字(“ Binary digIT”是一个“位”),您可以存储2 ^ 8 = 256个数字。
微控制器或处理器之所以称为“ N位”,是因为控制器和处理器具有基本的数据宽度。每个寄存器可能是N位,每条指令可能是N位,数据总线可能是N位,存储器可能用N位寻址。尤其是在较低级别,此规则有例外:例如,一个8位控制器可能具有12位内存总线,但是您可能会猜想,当您的寄存器仅包含8位时,这很难使用。但是,所有处理器都具有基本的本机数据类型宽度。考虑以下代码:
uint32_t x,y,z; // Declare 3 32-bit variables
z=x + y; // Add two of them to store in the third
如果只能添加8位数字,您将如何执行此操作?您需要将每个变量分解为4个8位数字,分别进行加法和携带,然后将它们合并以获得结果。这至少需要16条指令!但是,在32位处理器上,这是一条与一样简单的指令mul r0, r1, r2
。从这个简单的示例可以看出,较大的处理器位宽度可以更快地处理更多数据。
整个历史的趋势是从较小的位宽到较大的位宽。早在1970年代初,英特尔发布了第一个单芯片控制器4004。它是一个4位处理器。由于晶体管又大又耗电,而且设计具有革命性和复杂性,因此可以将所有这些压缩到芯片上。此后不久,他们发布了8位处理器8008。几乎没有使用4位处理器,但是有很多8位控制器,PIC和AVR是仍在使用的现代示例。比其他任何类型的处理器都可以制造更多的8位处理器!它们仍然是处理小型,简单且成本敏感的任务的最受欢迎控制器。下一个明显的过渡是向16位控制器,但是这些还没有他们的8位或32位弟兄所能及。代替,到了32位处理器(如ARM设计并在几年前设计到PC CPU中的处理器)的跃迁。尽管现在在PC中很重要,但我还没有意识到任何重要的64位微控制器。
到目前为止,最受欢迎的类型是8位和32位处理器。32位处理器变得越来越流行。每年左右,一些贸易杂志都会发表标题为“ 8位元死了吗?”的文章。32位处理器正变得越来越流行,功能更强大且更便宜,仅剩下三个理由选择8位处理器:
32位处理器变得越来越普及,但是由于这三个原因,几乎没有迹象表明8位处理器会像老式4位处理器那样消失。
考虑像Arduino这样的应用程序。
Arduino使用Atmel控制器,即8位ATmega32。ATmega以20 MHz运行,具有4k RAM,具有SPI,I2C和UART通信,一些硬件中断以及8个10位ADC。批量达100片时,该芯片的价格为3.90美元。
类似的32位芯片可能是Atmel的另一部分,即使用共享ARM Cortex-M3内核的32位AT-SAM3。该芯片的运行频率为64 MHz(快3倍,但请记住,ATmega需要16条指令来进行单个32位加法)。它具有16k的RAM,是ATmega的4倍。它具有I²C,MMC,SPI,SSC,UART甚至USB外设。它具有DMA(直接存储器访问,也使其更快,更高效),一组灵活而强大的中断,10个12位ADC和2个DAC。在所有类别中,它都仅超过ATmega。我试图找到一个具有类似功能集的32位控制器,这是我能做的最好的事情。这个芯片多少钱?数量为100时,它的价格为2.34美元:您可以用更少的钱获得更高的性能。应该是一个简单的决定。
对于这里的示例情况,
进出停车场的汽车数量必须计算在内,并在液晶显示屏上显示。最多允许十辆车进入停车场。
您可以进行一些简单的数学运算,并带有小数字并在LCD上进行简单显示(或者说,实际上,由7段LED照明数字制成的大符号会更清晰,更便宜)。8位控制器可能完全可以胜任此任务。但是,如果您确实想要LCD怎么办?8位控制器即使要驱动低分辨率的VGA显示器也很困难,而您可以轻松获得具有HDMI输出的32位控制器的开发板。如果您现在想在屏幕上显示它,但以后又想将其连接到公司局域网上的以太网电缆,并在公园办公室的主管的计算机上显示结果,该怎么办?您可以通过板载以太网通信总线轻松获得32位控制器,而使用8位控制器则无法做到。Xport,但其中包含一个32位处理器。
对于一次性项目,我每次都建议使用32位控制器。您的时间比8位和32位控制器之间的价格差异更有价值。
关于您提到的7位处理器,可能从来没有,也永远不会有这样的机器。从体系结构的角度来看,使用2的幂的位宽度更为明智。
CPU的位大小与通常结合在一起的一些特征有关:
对于某些处理器,所有这些数量都具有相同的值。对于其他人,它们可能具有不同的价值。Z80尽管包括一些16位寄存器,但其大多数指令集都使用8位寄存器,并且几乎所有以16位量运行的指令都需要额外的周期(唯一的例外是EX DE,HL);它是一个8位CPU。但是,不能仅用一种方法来很好地描述68008 N
:它具有一条指令集,该指令集主要可以对32位量进行操作,并且它可以IIRC一次在寄存器之间32位之间移动数据,但是它的主要ALU是只有16位,其内存总线只有8位。根据所测量的内容,可以将其视为32位,16位或8位CPU。