|
The following is a comparison of execution times of various Basic
instructions running on an SX28 with
SXWIZ generated code and on the Parallax
BS2SX STAMP@.   Both micros are
using a Ubicom SX28 clocked at 50Mhz.
  Values are Instructions/Sec.
| Description | Type | SXWIZ | BS2SX | Compare |
| FOR-NEXT | BYTE |
1,567,000 | 3050 |
513.8x |
| FOR-NEXT | INT |
593,472 | 3077 |
192.9x |
| DO LOOP | BYTE |
8,306,189 | 3050* |
2723.3x |
| DO LOOP | INT |
4,563,719 | 3077* |
1483.2x |
| ADD | BYTE |
33,225,914 | 13042 |
2547.6x |
| ADD | INT |
1,856,909 | 13247 |
140.2x |
| SUBTRACT | BYTE |
14,427,157 | 13111 |
1100.4x |
| SUBTRACT | INT |
749,284 | 13747 |
54.6x |
| MULTIPLY | BYTE |
512,769 | 6675 |
76.8x |
| MULTIPLY | INT |
154,237 | 7044 |
21.9x |
| INCREMENT | BYTE |
25,000,000 | 8070* |
3097.9x |
| INCREMENT | INT |
12,500,000 | 8444* |
1480.3x |
| DECREMENT | BYTE |
25,000,000 | 7727* |
3235.4x |
| DECREMENT | INT |
12,500,000 | 8444* |
1480.3x |
| DIVIDE | BYTE |
318,233 | 6572 |
48.4x |
| DIVIDE | INT |
101,541 | 6855 |
14.8x |
| IF-THEN-FALSE | BYTE |
5,009,823 | 7328 |
683.6x |
| IF-THEN-TRUE | BYTE |
4,159,869 | 7328 |
567.7x |
| IF-THEN-TRUE | INT |
705,785 | 4866 |
145.0x |
| IF THEN-FALSE | INT |
749,339 | 6855 |
109.3x |
| IF-THEN-FALSE | BIT |
12,686,567 | 7005* |
1811.1x |
| IF-THEN-TRUE | BIT |
8,252,427 | 5020* |
1643.9x |
| GOTO | - |
12,686,567 | 8615 |
1472.6x |
| GOSUB | - |
4,545,455 | 2821 |
1611.3x |
| Min Pulse | BIT |
40ns | 800ns+ |
/40.0x |
| I2C | - |
385,000bps | 81,000bps+ |
4.7x |
| SIO | BAUD |
57,600 | 19,200+ |
3.0x |
| SHIFTIN | BYTE |
4,040,000bps | 42,000bps+ |
96.2x |
| SHIFTIN | INT |
3,700,000bps | 42,000bps+ |
88.1x |
| SHIFTOUT | BYTE |
3,770,000bps | 42,000bps+ |
89.8x |
| SHIFTOUT | INT |
3,430,000bps | 42,000bps+ |
81.7x |
| Project Cost | - |
$4.50 | $59.00 |
* Equivalent BS2SX instruction if not available or faster SXWIZ instruction used.
+ Advertised, not tested.
@ The Basic Stamp is a trademark of Parallax Inc.
Two additional factors to consider:
1) You can run the SXWIZ compiled
code with a 75Mhz clock for an
additional 1.5x increase in
speed.
2) If you place an instruction in
a loop, it will execute only as
fast as the loop; the same
principle applies to branching and
subroutines.
Actual test code is available from Microproducts on request.
|