Der C167 ist ein 16-Bit Mikrocontroller von Infineon. Er ist eine Weiterentwicklung des C166, den Siemens 1993 als Controller für Mess-, Steuer- und Regelungsaufgaben auf den Markt gebracht hat. Er ist von der Rechnerarchitektur, wie der C166 auch, eher der RISC-Familie zuzuordnen.
Der Mikrokontroller C167 besitzt einen 16-Bit-Rechnerkern, Daten- und Programmspeicher. Außerdem besitzt der C167 eine Pipeline-Architektur mit vier Stufen (Fetch, Decode, Execute und Writeback). Da immer vier Befehle in Arbeit sind, wird bei jedem Takt ein Befehl abgeschlossen. Um dabei die durch Datenabhängigkeiten entstehenden Leerzyklen optimal ausnutzen zu können, wurde beim C167 ein Jump Cache realisiert, damit Sprungbefehle früher erkannt werden. Damit die Leistungsaufnahme so gering wie nur möglich gehalten wird (z.B. Batteriebetrieb), verfügt der C167 noch über einen Idle und Power Down Mode.
Es gibt als C161 und C164 zwei Varianten des C167, die den gleichen Befehlssatz, aber teilweise andere Peripherievarianten sowie Gehäuseformen aufweisen. Der C161 ist dabei eher für Prozessor-Applikationen mit wenigen Peripheriemodulen ausgelegt, während der C164 in der Anzahl Adressleitungen und Portpins reduziert in einem kleineren Gehäuse geliefert wird.
Die gravierendsten Unterschiede zum C166 betreffen den Befehlssatz. Da der C166 zunächst als Alternative zu 8-Bit-Controllern mit 8051-Kern gedacht war, wurde im Maschinencode nur eine relativ umständliche Art der Adressierung von Speicher über 64 KiByte Größe verwendet (mittels sogenannter "Data Page Pointers", einer Art Segmentregister), während die Sprungadressierung von Anfang an mehr als 16 Bit für absolute Adressen unterstützte. Der C167 erweiterte die Adressierungsarten für den Speicher um einen sogenannten Segmentpräfix, das heißt, die Adressierung erfolgt wie für andere 16-Bit-Mikroprozessoren typisch über Segment+Offset. Der Segmentpräfix ist ein eigener Opcode und gilt für bis zu 4 nachfolgende Assemblerbefehle.
Daneben wurden mit dem C167 auch einige neue Peripherie-Module eingefügt. Dies sind:
Ebenfalls wurden der interne Programm- und Datenspeicher vergrößert. Die Zykluszeit der meisten Befehle wurde gegenüber dem alten Design des C166 halbiert, so daß ein C167 mit gleichem Takt doppelt so schnell arbeitet wie ein C166. Den C167 gibt es auch in einer PROM-Version, die für kleine Stückzahlen die Verwendung eines externen Programmspeichers vermeidet.
Der C167 ist wegen seines relativ geringen Preises und seiner großen Funktionalität beliebt und verbreitet.
Der Nachfolger ist der XC167.