The ST200 is a family of
very long instruction word
Very long instruction word (VLIW) refers to instruction set architectures designed to exploit instruction level parallelism (ILP). Whereas conventional central processing units (CPU, processor) mostly allow programs to specify instructions to exe ...
(VLIW) processor cores based on technology jointly developed by
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company headquartered in Palo Alto, California. HP developed and provided a wide variety of hardware components ...
Laboratories and
STMicroelectronics
STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
under the name Lx. The main application of the ST200 family is embedded media processing.
Lx architecture
The Lx architecture is closer to the original VLIW architecture defined by the Trace processor series from
Multiflow {{no references, date=June 2019
Multiflow Computer, Inc., founded in April, 1984 near New Haven, Connecticut, USA, was a manufacturer and seller of minisupercomputer hardware and software embodying the VLIW design style. Multiflow, incorporated in ...
than to the
EPIC
Epic commonly refers to:
* Epic poetry, a long narrative poem celebrating heroic deeds and events significant to a culture or nation
* Epic film, a genre of film with heroic elements
Epic or EPIC may also refer to:
Arts, entertainment, and medi ...
architectures exemplified by the
IA-64
IA-64 (Intel Itanium architecture) is the instruction set architecture (ISA) of the Itanium family of 64-bit Intel microprocessors. The basic ISA specification originated at Hewlett-Packard (HP), and was subsequently implemented by Intel in coll ...
. Precisely, the Lx is a symmetric clustered architecture, where clusters communicate through explicit send and receive instructions. Each cluster executes up to 4 instructions per cycle with a maximum of one control instruction (goto, jump, call, return), one memory instruction (load, store, pre-fetch), and two multiply instructions per cycle. All arithmetic instructions operate on integer values with operands belonging either to the general register file (64 x 32-bit) or to the branch register file (8 x 1-bit). General register $r0 always reads as zero, while general register $r63 is the link register. In order to eliminate some conditional branches, the Lx architecture also provides partial predication support in the form of conditional selection instructions. There is no division instruction, but a divide step instruction is provided. All instructions are fully pipelined. The
RAW
Raw is an adjective usually describing:
* Raw materials, basic materials from which products are manufactured or made
* Raw food, uncooked food
Raw or RAW may also refer to:
Computing and electronics
* .RAW, a proprietary mass spectrometry dat ...
latencies are single-cycle except for the load, multiply, compare to branch RAW latencies. The WAR latencies are zero cycles and the WAW latencies are single cycle.
The principal architects for the ST200 Lx implementation
were Paolo Faraboschi (HPL, architecture) and Fred Homewood (STM, microarchitecture). Key members of the architecture and microarchitecture team included Geoffrey Brown (HPL co-lead), Giuseppe Desoli (HP), Gary Vondran (HP), Trefor Southwell (ST), Tony Jarvis (ST), and Alex Starr (ST).
The architecture was really a true cross company development, co-sited for the early duration of the project, lasting some two years.
ST200 cores
The ST200 VLIW family currently comprises the ST210, ST220, ST231 cores, which are single-cluster implementations of the Lx architecture. The differences among these cores are minimal:
* The ST210 was the first STMicroelectronics product based on the Lx technology.
* The ST220 improved the frequency of the ST210 by adding one execute stage, which had the effect of increasing the maximum latency to 3 cycles from 2.
* The ST231 improved the ST220 architecture with register scoreboarding and 32-bit x 32-bit multiplies for integer and fractional data representations. A
MMU was also added so the ST231 can be used as a host processor.
In digital video, STM reported in 2009 that it had shipped over 40 million
systems-on-chip (SoCs) containing a VLIW processor from the ST200 family. Since many of these SoCs contain multiple ST200s (the STi7200 contains four ST231s), they actually shipped in excess of 70 million of these VLIW processors.
[Fisher, Faraboschi, and Young. VLIW Processors: From Blue Sky to Best Buy, "IEEE SOLID-STATE CIRCUITS MAGAZINE", June 2009, 10-17.]
Compiling tools
The first ST210 compiler was the HP Lx compiler developed at HP Labs Cambridge, itself a descendant of the
Multiflow {{no references, date=June 2019
Multiflow Computer, Inc., founded in April, 1984 near New Haven, Connecticut, USA, was a manufacturer and seller of minisupercomputer hardware and software embodying the VLIW design style. Multiflow, incorporated in ...
Trace scheduling
Trace scheduling is an optimization technique developed by Josh Fisher used in compilers for computer programs.
A compiler often can, by rearranging its generated machine instructions for faster execution, improve program performance. It increase ...
compiler and heavily modified by HP to target the embedded domain. Starting with the ST220, STMicroelectronics introduced compilers based on the
Open64
Open64 is a free, open-source, optimizing compiler for the Itanium and x86-64 microprocessor architectures. It derives from the SGI compilers for the MIPS R10000 processor, called ''MIPSPro''. It was initially released in 2000 as GNU GPL softwar ...
technology. In these compilers, the
Open64
Open64 is a free, open-source, optimizing compiler for the Itanium and x86-64 microprocessor architectures. It derives from the SGI compilers for the MIPS R10000 processor, called ''MIPSPro''. It was initially released in 2000 as GNU GPL softwar ...
release has been improved by upgrading its
GCC C and C++ front-end from 2.96 to 3.x and later 4.x, in order to achieve full C++ compliance. The GNU C extensions have been fully implemented in the
Open64
Open64 is a free, open-source, optimizing compiler for the Itanium and x86-64 microprocessor architectures. It derives from the SGI compilers for the MIPS R10000 processor, called ''MIPSPro''. It was initially released in 2000 as GNU GPL softwar ...
, including the asm statements. As a result, the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
can be compiled for the ST200.
The other ST200 compilation tools are straightforward ports of GNU as, GNU ld, and
GDB
The GNU Debugger (GDB) is a Software portability, portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada (programming language), Ada, C (programming language), C, C++, Objective-C, Free Pasc ...
.
References
{{DEFAULTSORT:St200 Family
Digital signal processors
Very long instruction word computing