When we talk about particular computer systems the work architecture is often used. This refers to the fact that we are concerned about the way that things are arranged within the system. Things that we are considering include how much memory of different kinds the system provides, the size of data chunks that are processed, the way that particular signals are used and so on.

While the PICmicros share a common design thread, they do not all have identical architectures, in that the amount and arrangement of memory they support is different. The PICmicro we are using in the PICmicro development board, the 16F84, has the memory areas shown on the right.

The PICmicro is different from most common microprocessors because the program memory and data memory are separate. On machines like the IBM PC the processor can store data (variables) or program instructions (code) anywhere. The PICmicro does not do this. It is not possible for you to store program instructions in the data memory, or data values in the program memory. This approach, called the Harvard Architecture, allows the PICmicro to access program instructions and data values simultaneously, and contributes to the high speed at which a PICmicro can execute a program.

As far as we are concerned, this is not something which should affect us much, since C2C will hide these details from us. If you are used to considering other processors however, you should keep this in mind, because it means that in a PICmicro we have an address 0 in the program address space and another in the data address space, and they are not the address of the same item, as they would be in a more conventional design.

On the right you can see each of the areas available in the PICmicro architecture, along with a description of each.