Method and apparatus for storing compressed code without an index table
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-012/00
G06F-012/02
출원번호
UP-0128992
(2005-05-13)
등록번호
US-7533234
(2009-07-01)
발명자
/ 주소
Rudelic, John C.
Dover, Lance W.
출원인 / 주소
Intel Corporation
대리인 / 주소
McAbee, David P.
인용정보
피인용 횟수 :
3인용 특허 :
6
초록▼
A method and apparatus is described herein for compressing a binary image in memory and decompressing a portion memory in response to a request, without using a compression index table to find relocated compressed code. A binary image is traversed in windows. Each selected window is compressed to fo
A method and apparatus is described herein for compressing a binary image in memory and decompressing a portion memory in response to a request, without using a compression index table to find relocated compressed code. A binary image is traversed in windows. Each selected window is compressed to form compressed windows having a compressed portion and an available memory portion. Static data is backfilled in available memory portions to achieve efficient compression. Upon receiving a request to a specific physical address, the compressed portion of that physical location is decompressed and provided for execution without using a compression index table, as the compressed code portion was not relocated from its original physical location.
대표청구항▼
What is claimed is: 1. A method comprising: traversing a binary image in segments, each segment having a corresponding physical address and a predefined size; compressing a plurality of uncompressed segments of the binary image holding code to establish a plurality of compressed segments, each of t
What is claimed is: 1. A method comprising: traversing a binary image in segments, each segment having a corresponding physical address and a predefined size; compressing a plurality of uncompressed segments of the binary image holding code to establish a plurality of compressed segments, each of the compressed segments remaining at the uncompressed segment's corresponding physical address, wherein each compressed segment comprises a contiguous compressed code and available memory section; and not compressing a plurality of segments holding constant data in the binary image; and filling a plurality of the available memory sections of the plurality of compressed segments with the constant data from the binary image. 2. The method of claim 1, wherein the binary image is stored in a memory, and wherein the predefined size is equal to a size of a cache line in the memory. 3. The method of claim 2, wherein the size of the cache line is selected from a group consisting of 32 bytes, 64 bytes, and 128 bytes. 4. The method of claim 2, wherein the predefined size is equal to a size of a page of the memory, the size of the page of the memory is 4096 bytes. 5. The method of claim 1, wherein each segment comprising code is compressed using Huffman encoding. 6. The method of claim 1, further comprising: logging a physical address and a size of each available memory section in the plurality of compressed segments. 7. The method of claim 1, further comprising: receiving a request referencing a physical address associated with a first compressed segment of the plurality of compressed segments; and decompressing the compressed code section of the first compressed segment based directly on the physical address. 8. The method of claim 1, wherein the constant data comprises static data selected from a group consisting of strings, characters, and language sets. 9. A method comprising: compressing a first line of a memory referenced by a first physical address, the first line of memory, after compression, having a first compressed portion and a first available memory portion; compressing a second line of the memory referenced by a second physical address that is immediately subsequent to the first line of the memory, the second line of memory, after compression, having a second compressed portion and a second available memory portion; backfilling the first and the second available memory portions with static data held in the memory after compressing the first line and the second line; receiving a request from a host processor referencing the first physical address; and decompressing the first compressed portion of the first line of memory referenced by the first physical address. 10. The method of claim 9, wherein the memory is a NOR flash device, and wherein the host processor and the NOR flash are part of an execute in place (XiP) architecture. 11. The method of claim 9, wherein decompressing the compressed portion of the first line of memory referenced by the first physical address comprises decompressing the compressed portion referenced by the first physical address without performing a compression index table lookup. 12. An apparatus comprising: a flash device logically organized into a plurality of lines, wherein a first line of the plurality of lines, which is referenced by a first physical address, holding code and a second line of the plurality of lines holding static data; a link process stored on the flash device, when executed, compresses the first line forming an available space portion and a compressed code portion within the first line, and places at least a segment of the static data stored in the second line in the available space portion, and a decompression engine in the flash device decompresses the compressed portion of the first line, upon receiving a request referencing the first physical address. 13. The apparatus of claim 12, wherein the link process, when executed, also logs the available space portion, and wherein logging the available space portion comprises logging a physical address and a size associated with the available space portion. 14. The apparatus of claim 12, wherein the flash device is a NOR flash device, and wherein Huffman encoding is used to compress the first line. 15. The apparatus of claim 12, wherein the static data is selected from a group consisting of at least a portion of a string, a character, and a language set. 16. The apparatus of claim 12, wherein decompressing the compressed portion of the first line, upon receiving a request referencing the first physical address comprises directly accessing the compressed portion without using a lookup table; and decompressing the compressed portion. 17. A system comprising: a memory having a first memory line of a plurality of memory lines, the first memory line is referenced by a first physical address, wherein the first memory line comprises a first portion to holding compressed code and a second portion to holding static data; a host processor generates a request referencing the first physical address; and logic in the memory decompresses the first portion into uncompressed code without performing a lookup in a compression table and to provides the uncompressed code to the host processor without providing the static data to the host processor in response to the request referencing the first physical address being is received by the memory. 18. The system of claim 17, wherein the memory is a NOR flash device, and wherein the first memory line is a cache line in the NOR flash device. 19. The system of claim 18, wherein the NOR flash device also stores a link process, which, when executed, compresses code in the first memory line; log the first physical address and the size of the second portion of the first memory line; and place the static data in the second portion. 20. The system of claim 17, wherein the host processor is a device selected from a group consisting of a microcontroller, an embedded controller, a microprocessor, a digital signal processor, a co-processor, and a programmable array device.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (6)
Rudelic,John C., Managing storage in processor-based systems.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Matsuyama, Shinya, Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.