Methods and structures for providing patches or updates to embedded ROM
firmware simply and inexpensively while avoiding imposition of execution
or memory fetch overhead. A patch memory includes locations storing
addresses and optional alternate data values. Read/fetch operations
addressed to a firmware ROM memory are applied in parallel to the patch
memory. All locations of the patch memory may be compared in parallel to
the supplied address to determine if a match is found in patch memory. If
no match is found, the read/fetch memory cycle completes normally
retrieving data from the ROM memory. If a match is found, the alternate
data value is applied to the data bus in place of the ROM memory data
retrieved. Any ROM location may therefore be patched regardless of
whether the location stores instruction or data.