The scalable virtual timer system or subsystem implements multiple hardware
timers with minimal silicon overhead. In one embodiment, for each virtual
timer of a plurality of virtual timers, a content addressable memory
stores a sum of an "initial state" of a free running counter and a desired
count duration for the virtual timer. When the stored value matches a
current state of the free running counter, the content addressable memory
generates a terminal count for the virtual timer. In an alternative
embodiment, for each virtual timer, a period register of a set of period
registers stores a sum of a desired count duration for a virtual timer and
an "initial state" of the free running counter. A comparator of a set of
comparators generates a terminal count for a virtual timer when a current
state of the free running counter matches the sum stored in a period
register associated with the virtual timer. A state of the free running
counter may be read through software, such as by an execution unit, or
through hardware, such as by an adder.
Het scalable virtuele tijdopnemersysteem of het subsysteem voeren veelvoudige hardwaretijdopnemers met minimale siliciumoverheadkosten uit. In één belichaming, voor elke virtuele tijdopnemer van een meerderheid van virtuele tijdopnemers, slaat een inhouds adresseerbaar geheugen een som van een "eerste staat" van een vrije lopende teller en een gewenste tellingsduur voor op de virtuele tijdopnemer. Wanneer de opgeslagen waarde een huidige staat van de vrije lopende teller aanpast, produceert het inhouds adresseerbare geheugen een eindtelling voor de virtuele tijdopnemer. In een alternatieve belichaming, voor elke virtuele tijdopnemer, slaat een perioderegister van een reeks perioderegisters een som een gewenste tellingsduur voor op een virtuele tijdopnemer en een "eerste staat" van de vrije lopende teller. Een comparateur van een reeks comparateurs produceert een eindtelling voor een virtuele tijdopnemer wanneer een huidige staat van de vrije lopende teller de som aanpast die in een perioderegister verbonden wordt opgeslagen aan de virtuele tijdopnemer. Een staat van de vrije lopende teller kan door software, zoals door een uitvoeringseenheid, of door hardware, zoals door een opteller worden gelezen.