The CDx benchmark is highly configurable. We provide two basic workloads :
COL | NOI
| |
VM | RTSJ, RTGC | RTSJ, RTGC |
Period | 10 ms | 4 ms |
Collisions | YES | NO |
Detector Noise | NO | YES |
Background Noise | NO | YES |
Number of aircraft | 40 | 20 |
Duration | 100s | 80s |
Running script | run_rts_col.sh | run_rts_noi.sh |
Apart from these two workloads we provide a wide set of various workloads. The workloads are available in the input/ directory.
The detection algorithm implemented by CD is a single threaded hard
real-time task which periodically receives a stream of aircraft positions and must determine if
any of these aircraft are on a collision course. In RTSJ, the task is implemented as 10Hz No-
HeapRealtimeThread. In every loop it creates a list of motions representing movements of aircraft
from their previous states and computes a list of collision courses. A list of recent aircraft positions,
called StateTable, is being updated and kept between each loop of the algorithm. Since
the computation logic requires allocation of temporary memory to store intermediate results, a
scoped memory region is used.
The sequence diagram of implemented algorithm can be seen on the picture (the class names are modified in order to increase understandability):

Collision checking is a full 3-d collision detection. The algorithm is based on checking the distance of two points (centers of the aircraft) traveling in time. If these points ever get closer than the proximity radius, a collision is detected. The test assumes that the speed of each of the aircraft is constant between two consecutive radar frames and that the aircraft trajectories are line segments. The calculations involved in the algorithm are described in Cdx: A Family of Real-time Java Benchmarks paper (see Publications).