1. An apparatus comprising: a cache that stores a plurality of branch history table entries from a branch history table, each branch history table entry having an index and a corresponding value, wherein each corresponding value comprises a saturating counter, wherein each branch history table entry may be read by a plurality of branches; and a branch history table cache mechanism that saves a fetched value for a requested branch history table entry, receives requests from the plurality of branches, determines whether the requested branch history table entry requested by a selected branch is in the cache, and when the requested branch history table entry requested by the selected branch is in the cache, updates the requested branch history table entry in the cache and in the branch history table at the same time based on whether the selected branch was taken or not taken and based on the value in the requested branch history table entry in the cache, and when the branch history table entry requested by the selected branch is not in the cache, the branch history table cache mechanism updates the requested branch history table entry based on whether the selected branch was taken or not taken and based on the fetched value for the requested branch history table entry.