1. A method comprising: storing information identifying, for each of a plurality of programs, a correspondence between a first area of memory in which is stored executable instructions of the program, a second area of memory in which is stored protected data to be processed by the program, and a third area of memory in which is stored shared data to be processed by the program; with a second circuit different from an execution unit to execute instructions of the plurality of programs, monitoring instructions executed by the execution unit and, when an instruction is to access data stored in memory, jointly analyzing a first address at which the instruction is stored and the information identifying the correspondence to determine whether the first address is in an area of memory corresponding to an area in which the data to be accessed is stored, the second circuit configured to produce a hit status when access to a particular area of memory is valid and the second circuit configured to produce a no-hit status when access to the particular area of memory is a violation; based on the monitoring, producing at least one second-area signal representing a second-area hit status or a second-area no-hit status associated with the second area of memory, and producing at least one third-area signal representing a third area hit status or a third area no-hit status associated with the third area of memory; and preventing access to the data stored in memory when at the least one second-area signal represents a second-area no-hit status or when the at least one third-area signal represents a third-area no-hit status.