The block diagram of the 8086 CPU is divided into two functional units: the Bus Interface Unit (BIU) and the Execution Unit (EU). The BIU fetches instructions and data from memory and handles communication with external devices. It prefetches up to 6 instruction bytes and stores them in an instruction queue to improve execution speed. The EU decodes instructions and controls the execution of instructions. The 8086 also contains general purpose registers like the AX, BX, CX and DX registers, segment registers that determine memory addressing, and flag registers that indicate results of arithmetic/logical operations or control program flow.