Partitioned Register File for TTAs

Johan Janssen, Henk Corporaal

Abstract

A practical implementation of high performance instruction level parallel architectures is constrained by the difficulty to build a large monolithic multi-ported register file~(RF). A solution is to partition the RF into smaller RFs while keeping the total number of registers and ports equal. This paper applies RF partitioning to transport triggered architectures; these architectures are of the VLIW type.

One may expect that partitioning increases the number of executed cycles because it constrains the number of ports per RF. It is shown that these performance losses are small; e.g., partitioning a RF with 24 registers and four read and four write ports into four RFs with 6~registers and one read and one write port gives a performance loss of only 5.8\%.

Partitioned RFs consume less area than monolithic RFs with the same number of ports and registers. Experiments indicate that, if the area saved by partitioning is spent on extra registers, partitioning does, on average, not reduce the performance; it may even result in a small performance gain.

Keywords

TTAs, compilers, register allocation, partitioning, register files.

Talk Overheads (465,314 bytes)