Software memory access control is provided by associating instruction
areas with memory areas such that instruction areas are not permitted to
access memory areas with which they are not associated. Checks may be
inserted in the instruction areas to ensure that data provided by a
memory group is provided by an associated memory area. Additionally,
control flow integrity for the instruction areas may be provided by
embedding identifying bit patterns within computed control flow
instructions contained in the instruction groups. In this way, control
flow of the instruction areas may be provided, thus preventing diversion
of control flow and minimizing required checks.