Counting bits in hardware: reverse engineering the silicon in the ARM1 processor




How can you count bits in hardware? In this article, I reverse-engineer the circuit used by the ARM1 processor to count the number of set bits in a 16-bit field, showing how individual transistors form multiplexers, which are combined into adders, and finally form the bit counter. The ARM1 is the ancestor of the processor in most cell phones, so you may have a descendent of this circuit in your pocket.

Counting bits in hardware reverse engineering the silicon in the ARM1 processorARM is now the world’s most popular instruction set but it has humble beginnings. The original ARM1 processor was designed in 1985 by a UK company called Acorn Computer for the BBC Micro home/educational computer. A few years later Apple needed a low-power, high-performance processor for its ill-fated Newton handheld system and chose ARM.[1] In 1990, Acorn Computers, Apple, and chip manufacturer VLSI Technology formed the company Advanced RISC Machines to continue ARM development. ARM became very popular for low power applications (such as phones) and now more than 50 billion ARM processors have been manufactured.

One way ARM processors increase performance is through block data transfer instructions, which efficiently copy data between on-chip registers and memory storage.[2] These instructions can transfer any subset of ARM’s 16 registers in a single instruction. The desired registers are specified by setting the corresponding bits in a 16-bit field in the instruction. To implement the block transfer instructions, the ARM requires two specialized circuits. The first circuit, the bit counter, counts the number of bits set in the register select field to determine how many registers are being transferred.[3] The second circuit, the priority encoder, scans the register select field and finds the next set bit, indicating which register to load/store next.

For more detail:  Counting bits in hardware: reverse engineering the silicon in the ARM1 processor




Leave a Comment

*
= 3 + 0

Read previous post:
Intelligent 4-Cell Lithium Battery Management with CAN/LIN Interface
Intelligent 4-Cell Lithium Battery Management with CAN/LIN Interface

This design is a battery management circuit, which involves the use of CAN/LIN interface. The system addresses the matter about...

Close
Scroll to top