Hardware [Question] Nintendo 3DS CPU FLOPs?

CrazySquid

Well-Known Member
OP
Member
Joined
May 27, 2017
Messages
220
Trophies
0
XP
839
Country
Hi there, I'm curious about some 3DS specs. I think this has been debated enough in the past, but I didn't find any particular numbers on the 3DS CPU actual floating point capabilities.


I know the following about the 3DS specs (New):
ARM11 CPU: 4x MPCore/4x (1?) VFPv2 Co-Processor at 804MHz. Includes 2MB L2 cache (1.25 DMIPS/MHz, but since it has L2 cache let's bump that to 1.4 DMIPS/MHz as a slight boost = 4502 DMIPS)
RAM: 256MB FCRAM (Old 3DS was 3.46GB/s, maybe New 3DS has faster RAM since it's a different chip?)
VRAM: 6MB (I saw at the documents, and actually New 3DS has 6MB of VRAM and not 10MB as Digital Foundry reported, can't find info regarding bandwidth but it's likely higher than main memory)
GPU: PICA200 at 268MHz (6.4 GFLOPS, 20.5 Million polygons per second at 268MHz, calcutated from 15.3 Million figure and 4.8 GFLOPS at 200MHz)

Now, the question would be how much flops per cycle can the CPU do? I'm reading this, and IF I'm not mistaken, the CPU can do 4 instructions per clock, since it's 2 DP MUL MAC, which translanslates into 4 FLOPs.

So... with that, the CPU performance would be: 804MHz (CPU speed) x 4 (Single VFPv2 FLOPs) x 4 (VFPv2 number of Co-Processors) = 12.8 GFLOPS.

However, according to Nintendo, the CPU specs are the following:
9eP5dVh.png

IiKNz2u.png


As you can see, they don't mention 2x VFPv2, but rather, just a VFP co-processor for the CPU (I assume, the whole processor and not a VFP per core). Also, there's no mention of adding new VFPv2 processors into SNAKE (New 3DS), so, this means that the 4xVFPv2 part of Digital Foundry is incorrect and actually it only has one VFP?

With that in mind, performance would translate into 3.2 GFLOPS.

I'm not sure if this measurement it's correct, what do you guys think? Also, if someone knows about the VRAM speed of the 3DS or if the New 3DS RAM it's faster it would be sweet!.
 

Bazooka_Face

Well-Known Member
Member
Joined
Jan 21, 2018
Messages
121
Trophies
0
Age
78
XP
481
Country
United States
Hi there, I'm curious about some 3DS specs. I think this has been debated enough in the past, but I didn't find any particular numbers on the 3DS CPU actual floating point capabilities.


I know the following about the 3DS specs (New):
ARM11 CPU: 4x MPCore/4x (1?) VFPv2 Co-Processor at 804MHz. Includes 2MB L2 cache (1.25 DMIPS/MHz, but since it has L2 cache let's bump that to 1.4 DMIPS/MHz as a slight boost = 4502 DMIPS)
RAM: 256MB FCRAM (Old 3DS was 3.46GB/s, maybe New 3DS has faster RAM since it's a different chip?)
VRAM: 6MB (I saw at the documents, and actually New 3DS has 6MB of VRAM and not 10MB as Digital Foundry reported, can't find info regarding bandwidth but it's likely higher than main memory)
GPU: PICA200 at 268MHz (6.4 GFLOPS, 20.5 Million polygons per second at 268MHz, calcutated from 15.3 Million figure and 4.8 GFLOPS at 200MHz)

Now, the question would be how much flops per cycle can the CPU do? I'm reading this, and IF I'm not mistaken, the CPU can do 4 instructions per clock, since it's 2 DP MUL MAC, which translanslates into 4 FLOPs.

So... with that, the CPU performance would be: 804MHz (CPU speed) x 4 (Single VFPv2 FLOPs) x 4 (VFPv2 number of Co-Processors) = 12.8 GFLOPS.

However, according to Nintendo, the CPU specs are the following:
9eP5dVh.png

IiKNz2u.png


As you can see, they don't mention 2x VFPv2, but rather, just a VFP co-processor for the CPU (I assume, the whole processor and not a VFP per core). Also, there's no mention of adding new VFPv2 processors into SNAKE (New 3DS), so, this means that the 4xVFPv2 part of Digital Foundry is incorrect and actually it only has one VFP?

With that in mind, performance would translate into 3.2 GFLOPS.

I'm not sure if this measurement it's correct, what do you guys think? Also, if someone knows about the VRAM speed of the 3DS or if the New 3DS RAM it's faster it would be sweet!.
This wlis all speculation, with no knowledge of the processors low level workings. You cannot use these "mips" to measure/compare the speed or measure the speed of a processor, as the amount of instructions a cpu can do in one second is pretty much useless if the instructions dont get much work done. That's why mips means, meaningless information of processing power. You also cant compare different architectures of CPUs or gpus, as they all are functionally different and perform in different ways.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,281
Country
Nice necro bump. Anyway, if the op will ever read this...

The VFPv2 floating point unit is part of the CPU cores. Each core has its own.
 

Sweater Fish Del

Well-Known Member
Member
Joined
Jul 8, 2006
Messages
269
Trophies
1
XP
264
Country
United States
Is there any homebrew that runs multithreaded to take advantage of two or more cores at once on the New 3DS?

The OP's table says that up to 30% of CPU time on core1 is available for applications. Can this be utilized together with the 100% from core0 or is it either/or? Is there any example homebrew code for this?

Also, is it possible to take over the system cores? A 2DS XL (or 3DS with the 3D slider off, I suppose) has no use for the face-tracking feature, so could core3 be freed up for application use by an exploit?

Or for that matter, could a homebrew bypass the system OS altogether (booting from fastboot3DS) and use all the cores?
 

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,026
Country
Spain
Is there any homebrew that runs multithreaded to take advantage of two or more cores at once on the New 3DS?

The OP's table says that up to 30% of CPU time on core1 is available for applications. Can this be utilized together with the 100% from core0 or is it either/or? Is there any example homebrew code for this?

Also, is it possible to take over the system cores? A 2DS XL (or 3DS with the 3D slider off, I suppose) has no use for the face-tracking feature, so could core3 be freed up for application use by an exploit?

Or for that matter, could a homebrew bypass the system OS altogether (booting from fastboot3DS) and use all the cores?
There is a bit of multithreading used in this piece of code:
https://github.com/mariohackandglit...05f9f15270cd9102b3/source/updater.c#L237-L282

While one thread is downloading data, the other thread is saving the data to the SD card. You can get some understanding for synchronization tools there. (Keep in mind this isn't using the core1, because it is specified like that in the threadCreate call, but it could be run on any other core just fine.)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/watch?v=pkYA4rALqEE