The 4004 includes functions for direct low-level control of memory chip selection and I/O, which are not normally handled by the microprocessor; however, its functionality is limited in that it cannot execute code from RAM and is limited to whatever instructions are provided in ROM (or an independently loaded RAM working as ROM—in either case, the processor is itself unable to write or transfer data into an executable memory space). The RAM and ROM parts were also unusual in their integration of output (and, in the ROMs, input) ports that significantly reduced the minimum part count in an MCS-4 system, but required inclusion of a certain amount of processor-like logic on the chips themselves to accept, decode and execute relatively high-level data transfer instructions.