What is PIC?
PIC is a family of RISC (Reduced Instruction Set Computer) microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. Microchip Technology does not use PIC as an acronym; in fact the brand name is PICmicro.
What the name PIC stands for and who actually came up with the first PIC is an open dispute, some think it is an acronym of Peripheral Interface Controller. However, I have been looking thru out the net and found that original General Instruments' acronym for the PIC1650 was "Programmable Intelligent Computer". The original PIC was built to be used with GI's new 16-bit CPU, the CP1600. While generally a good CPU, the CP1600 had poor I/O performance, and the 8-bit PIC was developed in 1975 to improve performance of the overall system by offloading I/O tasks from the CPU. The PIC used simple microcode stored in ROM to perform its tasks, and although the term wasn't used at the time, it is a RISC design that runs one instruction per cycle (4 oscillator cycles).
The PIC, like the CPU, has calculation functions and memory which can be controlled by software. However, the throughput and the memory capacity are low. Depending on the kind of PIC, the maximum clock operating frequency is about 20 MHz and the memory capacity (to write the program) is about 1K to 4K words.The clock frequency determines the speed at which a program is read and an instruction is executed. The throughput cannot be judged with the clock frequency alone. It changes with the processor architecture. However within the same architecture, the one with the highest clock frequency has the highest throughput.I use a 14-bit WORD for program memory capacity. An instruction is a word long. Program memory is measured in BYTES, one byte is 8 bits. The bit is the smallest unit, and can have the value of 1 or 0. The instruction word of the PIC16F84A is composed of 14 bits. 1K words is equal to 1 x 1,024 x 14 = 14,336 bits. To convert this to Kbytes divide it by 8 x 1024, (14,336 / 8 x 1024 = 1.75K bytes).
A memory capacity of 1G bytes = 1,024M bytes, 1M bytes = 1,024K bytes, 1K bytes = 1,024 bytes. 1K bytes is not equal to 1000 bytes. This is because the calculation is in binary (2 to the tenth power = 1,024).