In an earlier blog we looked at maximum acquisition time for a single record. This blog looks at the relationship between sample rate, record size, and memory size in multi-record acquisition mode. It’s split into several sections:
- Maximum acquisition time
- Maximum number of records
- Fully utilizing available memory
- Calculating required memory for a specific application
Some points to note:
- These calculations use ideal values – multi-record mode has a small overhead that varies according to the configuration, and this isn’t taken into account. As such, these calculations have a small margin of error.
- Exact values can be obtained via the Soft Front Panel (SFP), which takes into account the overhead.
- This blog doesn’t explain how to set up or use multi-record mode. That information can be found in the “Data Acquisition” section of the user manual.
Maximum Acquisition Time
Maximum acquisition time is calculated as:
Time = Memory per Channel / (Sample Rate * Memory per Sample)
This is the same formula we used to calculate maximum acquisition time in single record mode – refer to the earlier blog for full details. The difference in multi-record mode is that the maximum decimation ratio, for both DGT and DDC modes, is 25 (32).
Examples:
- DGT mode; maximum memory, no external clock, no binary decimation
- DGT mode; maximum memory, no external clock, maximum binary decimation (25)
- DDC mode; maximum memory, no external clock, minimum DDC decimation (22)
- DDC mode; maximum memory, no external clock, maximum DDC decimation (25)
Note: M9709A & M9710A don’t support DDC mode, and M9709A doesn’t support binary decimation.
M9203A-SR2 / M9703B-SR2 | ||||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) |
DGT | 2,147,483,648 | N/A | 1,600,000,000 | N/A | 2 | 0.67108864 |
DGT | 2,147,483,648 | 32 | 50,000,000 | N/A | 2 | 21.47483648 |
DDC | 2,147,483,648 | 4 | 400,000,000 | 320,000,000 | 4 | 1.34217728 |
DDC | 2,147,483,648 | 32 | 50,000,000 | 40,000,000 | 8 | 5.36870912 |
M9703B-SR1 | ||||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) |
DGT | 2,147,483,648 | N/A | 1,000,000,000 | N/A | 2 | 1.07374182 |
DGT | 2,147,483,648 | 32 | 31,250,000 | N/A | 2 | 34.35973837 |
DDC | 2,147,483,648 | 4 | 250,000,000 | 200,000,000 | 4 | 2.14748365 |
DDC | 2,147,483,648 | 32 | 31,250,000 | 25,000,000 | 8 | 8.58993459 |
M9709A | ||||||
Mode | Memory/Channel | Decimation | Sample Rate | Bandwidth | Bytes/ | Maximum Time (Secs) |
DGT | 536,870,912 | N/A | 1,000,000,000 | N/A | 1 | 0.53687091 |
M9710A | ||||||
Mode | Memory/Channel | Decimation | Sample Rate | Bandwidth | Bits/ | Maximum Time (Secs) |
DGT | 17,179,869,184 | N/A | 5,000,000,000 | N/A | 10 | 0.34359738 |
DGT | 17,179,869,184 | 32 | 156,250,000 | N/A | 10 | 10.99511628 |
Maximum Number of Records
There’s a limit to the number of records that can be stored in acquisition memory in multi-record mode, so it’s important to consider this when choosing the record size, or the memory option. Those calculations are explained later in this blog, but the record limits are as follows:
- M9203A, M9703B, and M9710A can store a maximum of 217 (131,072) records/channel
- M9709A can store a maximum of 216 (65,536) records/channel
Fully Utilizing Available Memory
Let’s look at this from 2 perspectives:
- If number of records = maximum possible, then what’s the largest record size I can use?
- If record size = ‘x’, then how many records can I store?
Number of Records = Maximum Possible:
- If the record size is defined by time:
- Size = Max Acquisition Time / Max Number of Records
- If the record size is defined by number of samples:
- Size = Integer [Memory per Channel / (Max Number of Records * Memory per Sample)]
Examples:
M9203A-SR2 / M9703B-SR2 | Maximum Records = | 131,072 | |||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) | Record Size (Secs) |
DGT | 134,217,728 | N/A | 1,600,000,000 | N/A | 2 | 0.04194304 | 0.00000032 |
DGT | 536,870,912 | N/A | 1,600,000,000 | N/A | 2 | 0.16777216 | 0.00000128 |
DGT | 2,147,483,648 | N/A | 1,600,000,000 | N/A | 2 | 0.67108864 | 0.00000512 |
DGT | 134,217,728 | 32 | 50,000,000 | N/A | 2 | 1.34217728 | 0.00001024 |
DGT | 536,870,912 | 32 | 50,000,000 | N/A | 2 | 5.36870912 | 0.00004096 |
DGT | 2,147,483,648 | 32 | 50,000,000 | N/A | 2 | 21.47483648 | 0.00016384 |
DDC | 134,217,728 | 4 | 400,000,000 | 320,000,000 | 4 | 0.08388608 | 0.00000064 |
DDC | 536,870,912 | 4 | 400,000,000 | 320,000,000 | 4 | 0.33554432 | 0.00000256 |
DDC | 2,147,483,648 | 4 | 400,000,000 | 320,000,000 | 4 | 1.34217728 | 0.00001024 |
DDC | 134,217,728 | 32 | 50,000,000 | 40,000,000 | 8 | 0.33554432 | 0.00000256 |
DDC | 536,870,912 | 32 | 50,000,000 | 40,000,000 | 8 | 1.34217728 | 0.00001024 |
DDC | 2,147,483,648 | 32 | 50,000,000 | 40,000,000 | 8 | 5.36870912 | 0.00004096 |
M9203A-SR2 / M9703B-SR2 | Maximum Records = | 131,072 | |||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) | Record Size (Samples) |
DGT | 134,217,728 | N/A | 1,600,000,000 | N/A | 2 | 0.04194304 | 512 |
DGT | 536,870,912 | N/A | 1,600,000,000 | N/A | 2 | 0.16777216 | 2,048 |
DGT | 2,147,483,648 | N/A | 1,600,000,000 | N/A | 2 | 0.67108864 | 8,192 |
DGT | 134,217,728 | 32 | 50,000,000 | N/A | 2 | 1.34217728 | 512 |
DGT | 536,870,912 | 32 | 50,000,000 | N/A | 2 | 5.36870912 | 2,048 |
DGT | 2,147,483,648 | 32 | 50,000,000 | N/A | 2 | 21.47483648 | 8,192 |
DDC | 134,217,728 | 4 | 400,000,000 | 320,000,000 | 4 | 0.08388608 | 256 |
DDC | 536,870,912 | 4 | 400,000,000 | 320,000,000 | 4 | 0.33554432 | 1,024 |
DDC | 2,147,483,648 | 4 | 400,000,000 | 320,000,000 | 4 | 1.34217728 | 4,096 |
DDC | 134,217,728 | 32 | 50,000,000 | 40,000,000 | 8 | 0.33554432 | 128 |
DDC | 536,870,912 | 32 | 50,000,000 | 40,000,000 | 8 | 1.34217728 | 512 |
DDC | 2,147,483,648 | 32 | 50,000,000 | 40,000,000 | 8 | 5.36870912 | 2,048 |
Record Size = ‘x’:
- If the record size is defined by time:
- Records = Integer (Max Acquisition Time / Record Size)
- If the record size is defined by number of samples:
- Records = Integer [Memory per Channel / (Samples per Record * Memory per Sample)]
Examples:
Note: 200 microseconds and 10,000 samples were chosen so that all results are below the maximum record limit.
M9203A-SR2 / M9703B-SR2 | Record Size (Secs) = | 0.00020000 | |||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) | Number of Records |
DGT | 134,217,728 | N/A | 1,600,000,000 | N/A | 2 | 0.04194304 | 209 |
DGT | 536,870,912 | N/A | 1,600,000,000 | N/A | 2 | 0.16777216 | 838 |
DGT | 2,147,483,648 | N/A | 1,600,000,000 | N/A | 2 | 0.67108864 | 3355 |
DGT | 134,217,728 | 32 | 50,000,000 | N/A | 2 | 1.34217728 | 6710 |
DGT | 536,870,912 | 32 | 50,000,000 | N/A | 2 | 5.36870912 | 26843 |
DGT | 2,147,483,648 | 32 | 50,000,000 | N/A | 2 | 21.47483648 | 107374 |
DDC | 134,217,728 | 4 | 400,000,000 | 320,000,000 | 4 | 0.08388608 | 419 |
DDC | 536,870,912 | 4 | 400,000,000 | 320,000,000 | 4 | 0.33554432 | 1677 |
DDC | 2,147,483,648 | 4 | 400,000,000 | 320,000,000 | 4 | 1.34217728 | 6710 |
DDC | 134,217,728 | 32 | 50,000,000 | 40,000,000 | 8 | 0.33554432 | 1677 |
DDC | 536,870,912 | 32 | 50,000,000 | 40,000,000 | 8 | 1.34217728 | 6710 |
DDC | 2,147,483,648 | 32 | 50,000,000 | 40,000,000 | 8 | 5.36870912 | 26843 |
M9203A-SR2 / M9703B-SR2 | Record Size (Sa) = | 10,000 | |||||
Mode | Memory/Channel | Decimation | Sample Rate (Sa/s) | Bandwidth | Bytes/ | Maximum Time (Secs) | Number of Records |
DGT | 134,217,728 | N/A | 1,600,000,000 | N/A | 2 | 0.04194304 | 6710 |
DGT | 536,870,912 | N/A | 1,600,000,000 | N/A | 2 | 0.16777216 | 26843 |
DGT | 2,147,483,648 | N/A | 1,600,000,000 | N/A | 2 | 0.67108864 | 107374 |
DGT | 134,217,728 | 32 | 50,000,000 | N/A | 2 | 1.34217728 | 6710 |
DGT | 536,870,912 | 32 | 50,000,000 | N/A | 2 | 5.36870912 | 26843 |
DGT | 2,147,483,648 | 32 | 50,000,000 | N/A | 2 | 21.47483648 | 107374 |
DDC | 134,217,728 | 4 | 400,000,000 | 320,000,000 | 4 | 0.08388608 | 3355 |
DDC | 536,870,912 | 4 | 400,000,000 | 320,000,000 | 4 | 0.33554432 | 13421 |
DDC | 2,147,483,648 | 4 | 400,000,000 | 320,000,000 | 4 | 1.34217728 | 53687 |
DDC | 134,217,728 | 32 | 50,000,000 | 40,000,000 | 8 | 0.33554432 | 1677 |
DDC | 536,870,912 | 32 | 50,000,000 | 40,000,000 | 8 | 1.34217728 | 6710 |
DDC | 2,147,483,648 | 32 | 50,000,000 | 40,000,000 | 8 | 5.36870912 | 26843 |
Calculating Required Memory
The previous section looked at fully utilizing available memory, but how do we calculate the minimum memory requirement for an application? i.e. Why purchase the maximum memory option if it’s not needed?
As before, let’s look at this from 2 perspectives:
- Record size is defined by time.
- Record size is defined by number of samples.
Record Size Defined By Time:
- Required acquisition time is calculated as:
- Required Time (Secs) = Record Size (Secs) * Number of Records
- Required memory can then be calculated as:
- Memory per Channel = Required Time (Secs) * Sample Rate * Memory per Sample
Examples:
Record Size (Secs) = | 0.0000625 | |||||||
M9203A-SR2 / M9703B-SR2 | Number Of Records = | 5,000 | ||||||
Required Time (Secs) | Mode | Decimation | Sample Rate (Sa/s) | Bytes/ | Memory/Channel (Bytes) | Memory Option | ||
0.31250000 | → | DGT | N/A | 1,600,000,000 | 2 | 1,000,000,000 | → | 1 GB/Ch |
0.31250000 | → | DGT | 32 | 50,000,000 | 2 | 31,250,000 | → | 128 MB/Ch |
0.31250000 | → | DDC | 4 | 400,000,000 | 4 | 500,000,000 | → | 512 MB/Ch |
0.31250000 | → | DDC | 32 | 50,000,000 | 8 | 125,000,000 | → | 128 MB/Ch |
Record Size Defined By Number of Samples:
- Required number of samples is calculated as:
- Required Samples = Record Size (Sa) * Number of Records
- Required memory can then be calculated as:
- Memory per Channel = Required Samples * Memory per Sample
Examples:
M9203A-SR2 / M9703B-SR2 | |||||||||
Record Size (Sa) | Number of Records | Required Samples | Mode | Decimation | Bytes/ | Memory/Channel (Bytes) | Memory Option | ||
10,000 | 5,000 | 50,000,000 | → | DGT | N/A | 2 | 100,000,000 | → | 128 MB/Ch |
10,000 | 5,000 | 50,000,000 | → | DGT | 32 | 2 | 100,000,000 | → | 128 MB/Ch |
10,000 | 10,000 | 100,000,000 | → | DDC | 4 | 4 | 400,000,000 | → | 512 MB/Ch |
10,000 | 10,000 | 100,000,000 | → | DDC | 32 | 8 | 800,000,000 | → | 1 GB/Ch |