The Arm v7M architecture uses the Harvard method of bus.The Harvard method is an architecture that separates the data bus from the instruction bus.In general, since both data and instructions are allocated to a memory area, the data and instructions are processed on a single bus.This is easy to configure as it has one bus.However, since it can only handle one of the instructions and data, if the data is frequently accessed, the instructions cannot be executed, and the processing speed of the CPU is limited.This is called Von Neumann bottleneck.
The Harvard method eliminates this Von Neumann bottleneck because data and instructions can be processed simultaneously.
As you can see in the figure below, the Cortex-M3 can achieve 1.2 DMIPS/MHz, which is more advanced than conventional Arm cores, by adopting the Harvard method and Thumb2 instructions.
The Harvard method bus has been adopted in many recent microcomputers.However, the history is old, and some microcomputers from 30 years ago have adopted the Harvard method.Why wasn’t it adopted more often when you could see the performance going up?
The reason for that is that it’s a cost disadvantage.When building a single bus or two buses, the chip area of the microcontroller is larger for the two types of buses.”Since a large chip area means high cost,” it has not been adopted much until now.In recent years, however, as the manufacturing process has become finer, the chip size has become smaller, and the Harvard method has been revisited and adopted by many microcomputers.
However, the von Neumann method is still more cost effective, so in Cortex-M0, the von Neumann method is adopted instead of the Harvard method.
This post is also available in: Japanese