Harvard Architecture VS Von Neumann Architecture

What is all of this?

If none of the words you have read so far have made any sense to you, or that you have trouble totally understanding what these mean, fear not for I will show you.

Both of the architectures described in this post are the two types of computer architectures used when designing processors and devices, and is useful information to have if you are writing code for specific types of devices.

To start off, computer architecture is relating to how information and data are treated and sent to the control units in the computer.

So now that the very basics are covered, lets get into it!

Harvard Architecture

As I stated earlier, Harvard architecture is a form of computer architecture that determines how the computer will handle data and instructions.

In this architecture, data and instructions are treated as separate entities and types of information by the computer. Each one s given a separate storage and signal pathway.

The separation of data and instructions in this way allows for the computer to be able to retrieve instructions and read them, while also perform data memory access simultaneously.

Harvard architecture is often used in digital signal processors (DSPs), microcontrollers, and certain high-end calculator CPUs.

However, this is not as true in most computers these days, as they tend to use CPUs (central processing units) that utilize both Harvard and von Neumann architectures. This means that there are seperate lanes for certain information and data from different parts of the computer. But the information and data in these lanes are treated as the same type of information.

We will see why this is in the next section.

von Neumann Architecture

Also known as Princeton Architecture, it is based on a description by the mathematician and physicist John von Neumann, and others in the First Draft of a Report on the EDVAC.

This architecture treats instructions as data, therefore all information is seen as the same. And in a way this means that data and instructions could be run simultaneously, however there is no way to tell if this is happening, and there is no boost if it does.

Having instructions interpreted as data is very useful for all tools that essentially do the programming for you, because without von Neumann architecture they would not be possible.

Assemblers, compilers, and other automated programming tools would be impossible without this architecture. The heavy use of some of these tools in certain programming languages is another reason that both von Neumann and Harvard architectures are used in modern CPUs.

A problem that can occur with von Neumann architecure is bottle-necking due to the idea of a shared bus. This is not a problem though, as it can be mitigated through a number of ways, such as adding an additional cache between the CPU and the main memory.

As well, von Neumann allows for the creation and use of self-modifying code, which is capable of causing itself to have problems and bugs. But that is more of a software issue rather than an issue with the architecture.

Final Word

If you are deciding between using a certain architecture, then you should take a good look at what type of product you are building. As computer CPUs utilize both architectures, and some products only use one.

I assume that the majority of people are not reading this in hope of beating out AMD and Intel with a new type of processor. So if you are a programmer or interested in computer science, then the decision between which architecture is better is really dependent on what it is being used for.

Thanks for reading, and have a great day!

What is better: M.2 NVMe SSD or SATA SSD?

SSDs or solid state disks are growing more and more popular in the world of computers, as they offer much faster and more reliable storage than the older HDDs. With the creation of the M.2 NVMe SSD, some would argue that it is bound to replace the SSD.

I mostly agree with that statement, as the same situation happened with the HDD, however, the HDD has still not totally died, and is still being used in older PCs and by those who need more storage at a lower cost.

What is a SATA SSD?

SATA (serial advanced technology attachement) SSDs are the SSDs that I discussed in the last two paragraphs, the ones thought to be being replaced by the M.2 SSD.

As I have said already, SATA SSDs are much faster than their predecessor, the HDD (hard disk drive), and are connected to the motherboard through a SATA cable (see how that makes sense now).

SATA SSDs have a top transfer speed of around 600MB/s. Though you would be paying quite a premium for that speed. I estimate that it would cost you around three to five hundred dollars depending on how much storage and how large of a cache you would want that to go along with.

Another really cool feature of SATA SSDs is that you are able to use them almost in a plug-and-play manner, so you could remove your solid disk while your computer is running and not have any ill effects (sort of).

This is why a few more inventive computer owners have taken up turning SATA SSDs into portable hard drives. Personally, I think that would be a really cool project, but it could turn out pretty costly if you mess up with an expensive SSD.

What is a M.2 NVMe SSD?

M.2 NVMe (non-volatile memory express) SSDs are storage devices based off of SATA SSDs, but are a lot slimmer, to the point that they look a lot more like RAM sticks than a storage device.

The non-volatile part of the name comes from the fact that you truly can pull out a M.2 NVMe SSD while your computer is running and not damage any of your files. Again, DIYers have experimented with these for making external storage devices, and have had a good amount of success. But again, the actual storage device is really expensive.

The top transfer speed of the best M.2 SSD is a blazing fast speed of 3,500 MB/s. Which doesn’t even sound right to me, honestly I have checked that statistic many times because I truly thought I had it wrong.

If you are wondering, it would cost you a lung to buy a M.2 SSD with that transfer speed, but I can confidently say that the price of these are likely to go down over time. So one day you and I may be able to afford one of these.

The form factor of the M.2 SSD is what I find really impressive, they are tiny. If you know what a RAM stick looks like, you have a pretty good image of what some of these look like.

They are really thin sticks that you can either directly connect to a PCIe port, or use a PCIe extender to fit many of them in a small area in the case of a database or some other purpose. If you can manage to afford that.

Whats the difference?

There are a few key differences between the SATA SSD and the M.2 NVMe SSD. For the sake of making this easier for you to read I will give you two lists, one of what the SATA SSD does better, and one of what the M.2 NVMe SSD is better suited to.

Where the SATA SSD is king:

  • price point
  • connectivity with older computers

Where the M.2 beats out the competition:

  • transfer speeds
  • size (I’m counting smaller as better)
  • future compatibility (if you have the money, these will be much better in a new rig)

And one more for where there is a stalemate:

  • storage space
  • reliability

When should you use a SATA SSD?

If you have some files that you would like to boot up a lot quicker, and be stored somewhere that is much more reliable, but don’t want to spend a ton of money.

In older computers that may not have the PCIe slots to make using M.2s possible.

Or in average workloads, not over the top things, that could use a speed boost, but not to the point that would make a M.2 reasonable.

When should you use a M.2?

In scenarios where you are doing work that is really hard on your computer, and you need it to boot fast so that it can keep up with your work and your other hardware. This would be where performance is a priority, and you can afford to spend a little more to get the bonuses.

If you are running some sort of database or a server that you need to fit a lot of storage devices into a very small area.

Say you have a small chassis, like a HTPC case. If you wanted a lot of storage and tried to use SATA SSDs you would run into issues with cabling, as it would block airflow and take up vital space. That is where the small form factor of M.2 NVMe SSDs win.


Thank you for reading! Have a great day!

What is this website about?

Every good page needs a good introduction, so here is ours.

This website, CPU Network is a blog about computers. Simple enough. I will be making content on what I believe is important and that people like you will want to read. If you have any ideas for a blog post, or something you would like to know more about, please contact me through email or on Instagram.

What are some of the topics I will write about?

  • Do-it-yourself tips on building and maintaining your rigs and laptops.
  • Reviews and previews of the best and newest computer parts and accessories.
  • Guides to using some complicated software.
  • How-to’s for lots of computer-related topics.
  • And of course, much much more.

I will do my best to write as often as possible, at least posting a new blog post once a week. So, if you are keen on staying up-to-date on all things computers, then I highly advise signing up for my email list.

My blog is going to in some ways mirror my Instagram account, as it is bound to look somewhat like a fan page for computers, as in a way it is! However, I am not simply going to be copy and pasting content from other pages, or doing exactly what every other page is doing.

I have narrowed my focus down to the things that I am confident and knowledgeable about. Which includes web development, python programming, building computers, Bitcoin, and a bit of hacking.

So if these topics interest you, and you love to see what people are doing with computers these days, I suggest you follow my Instagram account, and maybe even sign up for my newsletter. Who knows, maybe you will find some things that interest you!

Design a site like this with WordPress.com
Get started