当前是否有非哈佛架构的微控制器?
我用过并且喜欢Atmel ATMEGA和ATTINY系列单片机,认为它们相当不错。我不太喜欢的一件事是,它们(以及 Microchip PIC uC 系列)都是哈佛机器,这意味着我无法真正使用外部存储器或在 RAM 中执行,只能使用闪存。
虽然这种设计有明显的优点,但它使得使用 AVR 或 PIC 执行 FORTH 之类的操作在技术上非常困难。 (我知道至少有一种实现,但它不像普通的 FORTH 那样工作,并且会很快磨损闪存)
FORTH 最初是为需要很大灵活性的交互式机器控制类型系统创建的,所以像 Z80 这样的东西或6809被用作微控制器,其控制程序在RAM或其他存储设备上执行。
有谁知道目前有哪些设备与 AVR/PIC 具有相似的复杂性(最好采用 DIP 封装),即冯·诺伊曼机器?
I have used and like the Atmel ATMEGA and ATTINY series microcontrollers, and think them quite good. One thing I am not terribly fond of though is the fact that they (and Microchip PIC uC family also) are all Harvard machines, meaning I can't really put external memory to use or execute out of RAM, only the flash.
While there are obvious advantages to this design, it makes it technically very difficult to do things like FORTH using an AVR or PIC. (I know there is at least one implementation, but it does not work like a normal FORTH and will wear out the flash rather rapidly)
FORTH was originally created for interactive machine control type systems where lots of flexibility was needed, so things like the Z80 or 6809 were used as microcontrollers with the control program executing out or RAM or some other storage device.
Does anyone know of current devices of similar complexity (preferably available in DIP packages) to the AVR/PIC that are von Neumman machines?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
除了飞思卡尔处理器(星蓝已经指出)之外,德州仪器 MSP430 系列也采用冯·诺依曼架构。然而,只有最小的器件采用 DIP 封装。
更新以包含 PIC32:
在我原来的帖子中,我忘记了 PIC32 微控制器始终能够在 RAM 中执行,如 此代码示例;现在 Microchip 推出了新的 PIC32MZ 系列 微控制器,最多 2 个MB 的闪存和 512K 的 RAM,这使得它们适用于相当大的基于 RAM 的程序。不幸的是,这些芯片都没有采用 DIP 封装。
然而,Olimex(类似于 SparkFun 和 Adafruit 的保加利亚版本)有一个 PIC32-HMZ144 开发板售价为 21.95 欧元,约合 24 美元。这是一个非常热门的交易,因为仅处理器的成本就超过 12 美元在 Digi-Key。 (美国供应商还提供其他板,价格约为 50 美元或以上。)
最初的 PIC32MX 系列有 20 种采用 28 引脚 DIP 封装的变体,但它们仅限于最大 64K RAM,这对于某些项目仍然有用。
In addition to Freescale processors (that starblue has already pointed out), the Texas Instrument MSP430 family uses von Neumann architecture. However only the smallest ones are available in a DIP package.
UPDATE to include PIC32:
In my original post, I had forgotten that PIC32 microcontrollers have always been able to execute out of RAM, as demonstrated by this code example;and now Microchip has come out with the new PIC32MZ line of microcontrollers, with up to 2 MB of Flash and 512K of RAM which makes them feasible for fairly large RAM-based programs. Unfortunately none of them chips are available in DIP packages.
However Olimex, sort of the Bulgarian equivalent of SparkFun and Adafruit, has a PIC32-HMZ144 development board for $21.95 EUR, which is about $24. This is a smoking hot deal since the processor alone costs over $12 at Digi-Key. (There are other boards available from US suppliers from around $50 and up.)
The original PIC32MX line has twenty variants in 28-pin DIP packages, but they are limited to a maximum of 64K of RAM, still useful for some projects.
Farnell 拥有出色的搜索功能,可让您搜索 DIP 封装中的微控制器。不过,您可以通过查看数据表来找出哪些家庭不是哈佛的。
看看 68K 和 HCS08。
更新:与此同时,一些采用 DIP 封装的 ARM Cortex-M 控制器已经上市,LPC810M021FN8 和 LPC1114FN28 来自恩智浦。
Farnell has a nice search function that let's you search for microcontrollers in DIP packages. Though you'll have figure out which families are non-Harvard by looking at the data sheets.
Take a look at the 68K ones and the HCS08.
Update: In the meantime some ARM Cortex-M controllers in DIP packages have become available, the LPC810M021FN8 and the LPC1114FN28 from NXP.
您可能想仔细阅读 OpenCores 项目中提供的设计。这是一个开源项目,致力于用 VHDL、Verilog 和类似的 FPGA 设计语言实现 CPU 内核设计。经典 8 位 CPU 有完整且值得尊敬的实现,例如 8080、6502 和 8051。我链接的 6502 声称与原始芯片相比具有循环精度。其他的功能齐全,但通常拥有更现代化的总线和信号。
(我认为)它们不会以 DIP 封装形式提供,但您总能找到分线板。
这些设计都是开源的,有多种许可证。
You might want to peruse the designs available at the OpenCores project. That is an open source project devoted to CPU core designs implemented in VHDL, Verilog, and similar FPGA design languages. There are complete and respectable implementations of classic 8-bit CPUs such as the 8080, 6502, and 8051. The 6502 I linked to claims to be cycle-accurate compared to the original chip. Others are functionally complete, but often have more modern buses and signals.
They won't (I think) be available in DIP packages, but you can always find breakout boards.
The designs are all open source, under a wide variety of licenses.
您还可以查看 Zilog eZ80。由于它们与旧的 Z80 二进制兼容,因此您应该能够找到在它们上运行的 FORTH 实现,但您可能需要在旧的 CP/M 之上运行它:)
另外,这些是唯一的我发现可以从外部访问内存总线,即允许从外部内存执行代码。
You may also have a look at the Zilog eZ80. Since they're binary-compatible with the old Z80, you should be able find a FORTH implementation that runs on them, but you'd probably need to run it on top of good old CP/M :)
Also, these are the only ones that I found that have the memory bus accessible from the outside, i.e. allow code execution from external memory.
基于arm的,甚至cortex-m3也声称是哈佛的,但你可以将程序加载到数据RAM中并从该RAM执行。这真的不是哈佛。其他手臂通常不是哈佛的,有些有外部存储器接口,您可以使用它来扩展内部资源。
The arm based ones, even the cortex-m3 claims to be harvard, but you can load programs into data ram and execute from that ram. it is really not harvard. Other arms are normally not harvard, some have external memory interfaces you can use to expand the internal resources.
这实际上不是一个问题,而更多的是一个相关的查询。如果上一代是哈佛的,为什么你会去冯诺依曼微控制器呢?从性能上来说,这不都是双赢吗?除了复杂性(如果原始 PIC 能够处理它,就不应该那么复杂)之外,哈佛架构还有哪些缺点?
This is actually not a question, but more of a related query. Why would you go to von-neumann in a microcontroller if the previous generation was harvard? Isnt it all win-win in terms of performance? other than complexity (which if the original PIC's can handle it, should not be that great) what are the downsides of having Harvard architecture?
飞思卡尔的全新 Kinetis 系列微控制器将 ARM Cortex-M4 放入微控制器封装中,程序代码可以位于可寻址空间(RAM 或闪存,甚至Flex 内存。)
Kinetis 解决方案顾问是一款功能强大的解决方案选择器指南可以帮助您找到所需的微型机。内存从 32kB 到 1MB,您可能想要的所有外设,价格从不到 1 美元到 10 美元左右。
The new Kinetis line of microcontrollers from Freescale puts an ARM Cortex-M4 inside a microcontroller package, and program code can be located anywhere in addressable space (RAM or FLASH, or even Flex Memory.)
The Kinetis Solution Advisor is a powerful selector guide that can help you find the micro you want. Memory from 32kB to 1MB, all the peripherals you could want, and pricing from under a dollar to around 10.