Keil Logo

C166 Version 5 Operation Timings
C16x Devices — Small Model

The following benchmarks provide a baseline for the execution speed of code generated by the Keil C166 Compiler. Automated test scripts were used to calculate the minimum, average, and maximum time required for each operation.

Each benchmark lists the number of states and the number of seconds required to perform the operation. The state time represents the actual number of instruction cycles. You may specify the oscillator frequency and the clock divisor (for the instruction clock) to obtain execution times in seconds.

Enter MCU Speed Details
(Default XTAL Frequency: 20MHz)
 
XTAL Frequency: MHz
Instruction Clock Divisor:
 

Unsigned Character Operations

Operation Min Avg Max
unsigned char + 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
unsigned char - 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
unsigned char * 36
1.80 µSecs
36
1.80 µSecs
36
1.80 µSecs
unsigned char / 50
2.50 µSecs
50
2.50 µSecs
50
2.50 µSecs
unsigned char % 54
2.70 µSecs
54
2.70 µSecs
54
2.70 µSecs
unsigned char >> 24
1.20 µSecs
24
1.20 µSecs
24
1.20 µSecs
unsigned char << 22
1.10 µSecs
22
1.10 µSecs
22
1.10 µSecs

Signed Character Operations

Operation Min Avg Max
signed char + 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
signed char - 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
signed char * 36
1.80 µSecs
36
1.80 µSecs
36
1.80 µSecs
signed char / 50
2.50 µSecs
50
2.50 µSecs
50
2.50 µSecs
signed char % 54
2.70 µSecs
54
2.70 µSecs
54
2.70 µSecs
signed char >> 24
1.20 µSecs
24
1.20 µSecs
24
1.20 µSecs
signed char << 22
1.10 µSecs
22
1.10 µSecs
22
1.10 µSecs

Unsigned Integer Operations

Operation Min Avg Max
unsigned int + 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
unsigned int - 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
unsigned int * 32
1.60 µSecs
32
1.60 µSecs
32
1.60 µSecs
unsigned int / 46
2.30 µSecs
46
2.30 µSecs
46
2.30 µSecs
unsigned int % 50
2.50 µSecs
50
2.50 µSecs
50
2.50 µSecs
unsigned int >> 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
unsigned int << 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs

Signed Integer Operations

Operation Min Avg Max
signed int + 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
signed int - 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
signed int * 32
1.60 µSecs
32
1.60 µSecs
32
1.60 µSecs
signed int / 46
2.30 µSecs
46
2.30 µSecs
46
2.30 µSecs
signed int % 50
2.50 µSecs
50
2.50 µSecs
50
2.50 µSecs
signed int >> 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
signed int << 20
1.00 µSecs
20
1.00 µSecs
20
1.00 µSecs
abs () 30
1.50 µSecs
30
1.50 µSecs
30
1.50 µSecs

Unsigned Long Operations

Operation Min Avg Max
unsigned long + 44
2.20 µSecs
44
2.20 µSecs
44
2.20 µSecs
unsigned long - 44
2.20 µSecs
44
2.20 µSecs
44
2.20 µSecs
unsigned long * 96
4.80 µSecs
96
4.80 µSecs
96
4.80 µSecs
unsigned long / 162
8.10 µSecs
164
8.20 µSecs
174
8.70 µSecs
unsigned long % 162
8.10 µSecs
164
8.20 µSecs
174
8.70 µSecs
unsigned long >> 40
2.00 µSecs
53
2.65 µSecs
58
2.90 µSecs
unsigned long << 40
2.00 µSecs
53
2.65 µSecs
58
2.90 µSecs

Signed Long Operations

Operation Min Avg Max
signed long + 44
2.20 µSecs
44
2.20 µSecs
44
2.20 µSecs
signed long - 44
2.20 µSecs
44
2.20 µSecs
44
2.20 µSecs
signed long * 96
4.80 µSecs
96
4.80 µSecs
96
4.80 µSecs
signed long / 190
9.50 µSecs
209
10.45 µSecs
232
11.60 µSecs
signed long % 190
9.50 µSecs
209
10.45 µSecs
232
11.60 µSecs
signed long >> 40
2.00 µSecs
53
2.65 µSecs
58
2.90 µSecs
signed long << 40
2.00 µSecs
53
2.65 µSecs
58
2.90 µSecs
labs () 52
2.60 µSecs
54
2.70 µSecs
56
2.80 µSecs

Floating-Point Operations

Operation Min Avg Max
float + 194
9.70 µSecs
236
11.80 µSecs
404
20.20 µSecs
float - 162
8.10 µSecs
240
12.00 µSecs
408
20.40 µSecs
float * 242
12.10 µSecs
250
12.50 µSecs
258
12.90 µSecs
float / 318
15.90 µSecs
325
16.25 µSecs
334
16.70 µSecs
fmod () 722
36.10 µSecs
954
47.70 µSecs
1,270
63.50 µSecs
modf () 560
28.00 µSecs
861
43.05 µSecs
926
46.30 µSecs
fabs () 168
8.40 µSecs
169
8.45 µSecs
170
8.50 µSecs
ceil () 870
43.50 µSecs
1,075
53.75 µSecs
1,132
56.60 µSecs
floor () 870
43.50 µSecs
1,075
53.75 µSecs
1,134
56.70 µSecs
pow () 590
29.50 µSecs
3,423
171.15 µSecs
11,458
572.90 µSecs
sqrt () 50
2.50 µSecs
179
8.95 µSecs
322
16.10 µSecs
exp () 294
14.70 µSecs
332
16.60 µSecs
5,046
252.30 µSecs
log () 48
2.40 µSecs
1,976
98.80 µSecs
4,694
234.70 µSecs
log10 () 160
8.00 µSecs
2,143
107.15 µSecs
4,922
246.10 µSecs
sin () 1,304
65.20 µSecs
3,401
170.05 µSecs
4,612
230.60 µSecs
cos () 1,206
60.30 µSecs
3,401
170.05 µSecs
4,648
232.40 µSecs
tan () 4,492
224.60 µSecs
4,863
243.15 µSecs
6,154
307.70 µSecs
asin () 560
28.00 µSecs
4,690
234.50 µSecs
6,076
303.80 µSecs
acos () 1,576
78.80 µSecs
5,034
251.70 µSecs
6,072
303.60 µSecs
atan () 2,178
108.90 µSecs
3,843
192.15 µSecs
5,094
254.70 µSecs
atan2 () 2,048
102.40 µSecs
4,289
214.45 µSecs
5,548
277.40 µSecs
sinh () 4,864
243.20 µSecs
10,999
549.95 µSecs
13,960
698.00 µSecs
cosh () 5,086
254.30 µSecs
10,985
549.25 µSecs
13,946
697.30 µSecs
tanh () 10,002
500.10 µSecs
10,775
538.75 µSecs
13,768
688.40 µSecs

Buffer Operations

Operation Min Avg Max
memset (10) 140
7.00 µSecs
140
7.00 µSecs
140
7.00 µSecs
memset (100) 1,222
61.10 µSecs
1,222
61.10 µSecs
1,222
61.10 µSecs
memset (1000) 12,022
601.10 µSecs
12,022
601.10 µSecs
12,022
601.10 µSecs
memcpy (10) 158
7.90 µSecs
158
7.90 µSecs
158
7.90 µSecs
memcpy (100) 1,420
71.00 µSecs
1,420
71.00 µSecs
1,420
71.00 µSecs
memcpy (1000) 14,020
701.00 µSecs
14,020
701.00 µSecs
14,020
701.00 µSecs
memmove
(10 with overlap)
274
13.70 µSecs
274
13.70 µSecs
274
13.70 µSecs
memmove
(100 with overlap)
2,256
112.80 µSecs
2,256
112.80 µSecs
2,256
112.80 µSecs
memmove
(1000 with overlap)
22,056
1,102.80 µSecs
22,056
1,102.80 µSecs
22,056
1,102.80 µSecs

Memory Allocation Operations

Operation Min Avg Max
malloc (),
99.5% successful
118
5.90 µSecs
481
24.05 µSecs
1,272
63.60 µSecs
free () 144
7.20 µSecs
529
26.45 µSecs
1,114
55.70 µSecs

Notes Note

  • These tests were performed and measured using the µVision Debugger. Test code was compiled with the C166 Version 5.03 C Compiler using the Small Memory Model and Optimization Level 7-SPEED.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.