摘要:
A hardware data compressor. An LZ77 compression engine scans an input block of characters and produces tokens, the tokens are either literal characters of the input block or a back pointer to replaced strings of characters of the input block. A Huffman encoding engine receives the tokens produced by the LZ77 compression engine and Huffman encodes the tokens using a Huffman code table to generate a compressed output block. The hardware data compressor is without a memory to intermediately store the back pointers and instead, for each token produced by the LZ77 engine, the Huffman encoding engine directly receives the token from the LZ77 engine and outputs Huffman codes corresponding in the Huffman code table to respective symbols associated with the token before the LZ77 engine produces the next token.
摘要:
An associative cache memory (102), comprising: an array (104) of storage elements (112) arranged as M sets by N ways; an allocation unit (106) allocates the storage elements (112) in response to memory accesses (122) that miss in the cache memory (102). Each memory access (122) selects a set. Each memory access (122) has an associated memory access type (MAT) (101) of a plurality of predetermined MATs (101). Each valid storage element (112) has an associated MAT (101); a mapping (108) that includes, for each MAT (101), a MAT priority (3277). In response to a memory access (122) that misses in the array (104), the allocation unit (106): determines a most eligible way and a second most eligible way of the selected set for replacement based on a replacement policy; and replaces the second most eligible way rather than the most eligible way when the MAT priority (3277) of the most eligible way is greater than the MAT priority (3277) of the second most eligible way.
摘要:
A conversion system that converts a standard executable program according to a predetermined ISA into a custom executable program executable by a general purpose processor. The processor includes a PEU that is programmable to execute a UDI. The conversion system includes a PEU programming tool that converts a functional description of a processing operation to be performed by the PEU of the processor into programming information for the PEU to perform the processing operation in response to the UDI. A converter converts the standard executable program into the custom executable program and includes an optimization routine that replaces a portion of the standard executable program with the specified UDI and that inserts the UDI into the custom executable program, and that further inserts a UDI load instruction that specifies the UDI and a location of the programming information in the custom executable program.
摘要:
A processor including a programmable prefetcher for prefetching information from an external memory. The programmable prefetcher includes a load monitor, a programmable prefetch engine, and a prefetch requester. The load monitor tracks load requests issued by the processor to retrieve information from the external memory. The programmable prefetch engine is configured to be programmed by at least one prefetch program to operate as a programmed prefetcher, such that during operation of the processor, the programmed prefetcher generates at least one prefetch address based on the load requests issued by the processor. The requester uses each generated prefetch address to prefetch information from the external memory. A prefetch memory may store one or more prefetch programs and a prefetch programmer may be included to select from among stored prefetch programs to program the prefetcher based on an executing process. Each prefetch program may be configured according to a prefetch definition.
摘要:
A processor with an expandable instruction set architecture for dynamically configuring execution resources. The processor includes a programmable execution unit (PEU) that may be programmed to perform a user-defined function in response to a user-defined instruction (UDI). The PEU includes programmable logic elements and programmable interconnectors that are collectively programmed to perform at least one processing operation. A UDI loader is responsive to a UDI load instruction that specifies a UDI and a location of programming information that is used to program the PEU. The PEU may be programmed for one or more UDIs for one or more processes. An instruction table stores each UDI and corresponding information to identify the UDI and possibly to reprogram the PEU if necessary. A UDI handler consults the instruction table to identify a received UDI and to send corresponding information to the PEU to execute the corresponding user-defined function.