eli5: What does people mean when they say that a computer system runs on different architecture from another computer? Like when somebody says that an emulator can run N64 games faster theoretically but because of different architecture in practicality it cant?

754 views

eli5: What does people mean when they say that a computer system runs on different architecture from another computer? Like when somebody says that an emulator can run N64 games faster theoretically but because of different architecture in practicality it cant?

In: Technology

19 Answers

Anonymous 0 Comments

Like you are five: different computer chips have different architectures, which are like different languages. At the most basic level, a x64 architecture might look like English, but an ARM architecture might look like Spanish, and a SPARC might look like Russian. The alphabets might be similar, but they have different meaning. One word in one architecture would be a completely different meaning on another (“gris” is Spanish is gray, but “gris” is Swedish is pig). In order to make a program for one architecture work on another, you have to run it through a translation first (an emulator) to make sure that not only to individual words (operarions) translate properly, but entire sentences or novels (applications).

If the host computer looks enough like the client being emulated, it theoretically could be faster (for example, x64 is a descendant of x86, and can run x86 programs natively, but an ARM cannot run x86 without a translation layer).

Anonymous 0 Comments

The PC is speaking english. The N64 was written in spanish. The PC has more brain power of the N64 but it has to waste a bunch of time translating from spanish to english so it’s slower. (Languages are for example, they’re not actually in English or spanish)

Anonymous 0 Comments

You could theoretically make sushi in a McDonald’s kitchen, but you wouldn’t be doing it very effiencely, you also couldn’t use most of that kitchen for the task it hand. It is ill suited to the task at hand. The kitchen is the processor and the cook is going to be attempting to be an adapter between the kitchen and the unusual request for it. Your sushi might not be quite what you hoped but it’ll probably work out. If you improve the cook a bit your results will be better and better but it’ll always smell faintly of fries and probably bleed some rice into the burgers now and then. Its not a good way to run, but it’ll probably be the best you can get if McDonald’s is all you’ve got.

Anonymous 0 Comments

Saying architecture is a different language is oversimplifying things. This analogy is better suited for explaining why programming languages like pascal and c++ are different.

Computer architecture is *physically* different from one computer to the next.

In order emulate one architecture to the next you have to redo how information is managed.

It’s called *architecture* for a reason. So a more accurate analogy would be like this:

Say you live in a small house from the 1940’s. In order to function and live in that house you know where everything is and how everything works: the bedroom to sleep, the bathroom for hygiene, the kitchen to eat, etc. And all of the equipment in those rooms you know how to use.

Now time travel to a mansion in the distant future. You have no idea where the bathroom, kitchen, etc is. All the equipment is totally different – everything is touch screen and people sleep in hyperbaric chambers!

You are totally lost and cannot function. Someone needs to explain to you where everything is and how everything works, because the *architecture* is different.

Anonymous 0 Comments

Think of it like this…

The engine drives your car, but each manufacturer has their own engine design.

So you can take a Dodge Viper engine and put it in a PT Cruiser because they’re the same manufacturer:

https://www.carscoops.com/2011/06/viper-v10-powered-chrysler-pt-10/

While it’s technically possible to put a Ford engine in a Chevrolet, it’s a lot harder and requires re-routing and re-engineering.

So computer code designed to run on a particular kind of chip may require extensive re-working to work on a different class of chip.

This is why PS4 games can run on the PS5, they have chips of a similar class, but PS3 games cannot, the Cell processor is too different from the later machines.

Anonymous 0 Comments

A lot of good responses on what people mean by architecture on a general level.

But a more specific level, why N64 emulation is so hard is down to simple hardware. The N64 had a special GPU, the “[Reality Coprocessor](https://en.wikipedia.org/wiki/Nintendo_64_technical_specifications#Reality_coprocessor)” which was like a dual core processor for graphics. No one makes a dual core GPU, it’s not necessary for anything other than the N64 specific architecture. It being basically a two core meant that it could do 2 tasks at once and send the results of both at the same time for the console to display it in game, whereas a single core GPU like in a Retropie or your PC can only do one task at a time, sure it can do each task 10 times faster, but it still can not spit out the two tasks simultaneously, which means there’s a delay in the result. That’s why emulated N64 games come out all choppy.

Anonymous 0 Comments

When you were a kid you probably played with some “construction” toys, such as Lego, K’nex or Meccano. The idea of the toys is that you have some basic parts that you can combine to build something, like a small vehicle. You can make whatever you like, so long as you can build it with the parts you have and some kind of blueprint to follow.

Now, let’s say you have a blueprint for a Lego model helicopter, but you and your friends only have K’nex. The Lego blueprint is mostly worthless, but you *could* design something that looks very similar and has the same functioning spinning blade. In order to do this, you need to know how lego works and probably be pretty good with K’nex too, there’s no simple way to convert the blueprint. The result might be pretty good, but sometimes, some parts just won’t be the same because it’s physically not possible. You also need to design and print the new blueprints and instructions for your friends, which takes a lot of time.

This would be called “porting” the blueprint, it’s tedious and you need to do it once per blueprint you want to play with. Hopefully, at the end of the day, you can throw the old Lego blueprint away and everyone can use the new K’nex blueprint to this helicopter without needing the Lego.

However, when I said there was no simple way, I lied. What you could also do instead is to figure out how to *build Lego bricks out of K’nex*.

Think about it, if you came up with a K’nex blueprint for all of the basic Lego bricks, then you’d be able to build *any* Lego blueprint without needing to port it. Genius! You just need to build the bricks you need from K’nex and then fit them together according to the Lego blueprint directly.

However, there’s a huge drawback, you need a *lot* more K’nex than you needed lego and therefore it takes a *lot* longer to build. The same would also be true if you were to try the process in reverse: converting K’nex blueprints to Lego by building K’nex pieces out of Lego bricks. This is an unavoidable problem with the method: emulating one “architecture” in another by simulating the smallest parts is a very easy way to accurately cover all blueprints, but it is also very inefficient. You may be able to take shortcuts that let you use a lot fewer pieces, sacrificing the ability to accurately build some models, but it’s still not anywhere near as fast.

For the sake of this analogy though, you need to assume that kids are now thousands of times faster at building stuff than they were before but that the process of porting blueprints manually is *very* difficult.

Glossary:

* Kids with their K’nex/Lego: gamers with computers.
* Blueprints: games.
* Building a blueprint: running a game.
* K’nex/Lego: architecture.
* Blueprints for Lego blocks in K’nex: emulator.

Anonymous 0 Comments

ELI5 here:

Imagine that one system is built with rails, so, this system can only support trains, you can try to run a car or a bike on it but it won’t be good, the trip I’ll be full of bumps, crashes and you might need to stop before the destination.

We have another system that’s built with asphalt, it is a bit more versatile, can run cars, trucks and bikes, but you can’t run trains on it.

We have also another system, built with water, but this can run only boats, ships and submarines, it just can’t run trains or cars.

It’s pretty much the same with computers (and video games) they are built to calculate stuff in one specific way, whatever you want to run on it, you need it to be compatible.

Anonymous 0 Comments

Computers process instructions, which means they receive instructions from us, then memorise and execute them (or vice-versa). The term “architecture” refers to unique method in which the computer receives, remembers and executes these instructions.

If you think of the architecture like an assembly line in a factory, the instructions are the binary signals (1s and 0s) that pass through the assembly line, the configuration of 1s and 0s will also specify what part of the assembly line these instructions need to go to in order for the system to trigger the correct output, thus fulfilling the instruction.

Some assembly lines/architectures are more efficient than others, maybe their paths are shorter, maybe they need fewer 1s and 0s to relay the same instructions, maybe their instructions use values between 1 and 0 thus allowing them to expand the amount of instructions given per cluster of 1s and 0s.

Anonymous 0 Comments

Computers are like houses and software is like the people living in them. Different houses have different layouts and architecture. There is not one right architecture for a house so there can be many choices and personal preferences. The people are like the software and depending on the people’s lifestyle some architecture may be better for them than others — some people may not do well with stairs, and you would not be happy living in a house with stair – you would not be able to move around the house very fast. However if you are a family with lot of kids you would like the upstairs where you can send the kids so you cannot hear them and get some quiet time to yourself downstairs. Different people like different architecture. Software and Hardware the same – and if you hardware have lots of stairs, narrow hallways or no windows, your software may not be able to live there very well, even if theoretically it should be fine