The computing-in-memory (CIM) technique is emerging with the evolvement of big data and artificial intelligence (AI) application. The manuscript presents a systematic review of existing CIM works in a bottom-up view from circuit to application. Various types of CIM circuits based on different volatile/non-volatile devices are introduced. The micro CIM architectures are illustrated to support multibit precision computation. After that, several types of processor-level CIM chips are analyzed to reveal the system architecture design considerations. The corresponding CIM tool chains and applications beyond AI applications are also introduced. From circuit to application levels, this manuscript analyzes the design trade-offs, remained challenges and possible future design trends at different design hierarchies of CIM processors.INDEX TERMS Computing-in-memory (CIM), CIM processor, Circuit-level CIM cells, CIM micro architecture, CIM tool chains, CIM applications