Linearization of physically non-contiguous memory fragments

Abstract: A method and apparatus for use in read/write operations by a processor (42) that reads and writes information in first and second address formats includes a memory (46) and a memory mapper (44) for remapping those memory fragments not containing information stored in the first address format for reading and writing information in the second address format. The remapped memory fragments appearing logically contiguous. A preferred first address format is an x-y address format and a preferred second address format is linearly addressable. There may be a second memory (48) for reading and writing information in the second address format.

Description: The present invention relates generally to the field of microprocessors and their use of random access memory and particularly to reading and writing graphics primitive information and program execution information in random access memory by graphics processors. Computer graphics products are now available which allow the researcher to study or view various types of data on a display screen. Such graphic systems typically incorporate a graphics processing unit (GPU) in conjunction with several types of memory as well as various latches, buffers and transceivers. The graphics system is generally utilized in relation to a host processor. The host processor generates the "raw data" which the graphics system places into a desireable video format for display purposes. One such system has been developed in relation to the TMS34020 graphics processor manufactured and sold by Texas Instruments Corporation of Dallas, Texas. In that graphics display system, the GPU is connected via latching transceivers and buffers to separate video memory, dynamic program memory and static interface memory. The video memory includes a series of VRAMs arranged for parallel reception of display information generated by the GPU. The data stored in video memory is placed in serial form by way of a serial register and operated upon by a so-called palette device prior to final provision to a video device. The program memory is described as including a series of dynamic random access memory (DRAM) chips. The video memory is arranged in an x-y addressable format while the program memory is arranged for linear addressing. The program memory is intended for program execution information. The problem with such graphics display systems is that not only are multiple memories provided for different address formatted information, but typically a good portion of the VRAM memory is wasted. As used herein, the term "display memory" refers to that portion of the memory which is utilized to store display type information and the term "offscreen memory" is used to refer to that portion of memory contained in the video memory which does not contain display information. Consider for the moment a 1280x1024 resolution display which utilizes eight bits per pixel. Such a display would most likely use two megabytes of VRAM in order to store display information in an x-y addressable block. Such a video memory will result in approximately 0.75 megabytes of useless offscreen memory. In the past, such memory has been used for x-y addressable purposes such as font storage, rectangular blits, etc. Consequently, the use of multiple memories with the resulting waste of offscreen memory is both inefficient and costly. Additionally, the use of dynamic ram in the program memory is not without its own difficulties, for example the use of multiplex addresses. See for example P. Horowitz, et al., The Art of Electronics (2nd Edition), New York, Press Syndicate of the University of Cambridge, 1989, p.813-816. It is noted that the TMS 34020 does support a so-called packed pixel array scheme by providing a midline reload capability which results in a contiguous unused memory beginning at the address after the last pixel. Using such a scheme, it may be possible to utilize the remaining memory for other purposes. Unfortunately, several problems result from such use. A strong penalty in graphics performance is incurred if the screen pitch is not a power of two. For example if the screen pitch were 1280, the packed pixel array scheme results in a 33% reduction in speed performance. Speed performance is worse if the screen pitch is not a sum of two numbers each of which are a power of two. Additionally, the packed pixel array scheme provides no mechanism for using unused portions of the video memory in a manner which is contiguous to any system memory. Consequently, a need exists for a graphics system which maximizes memory usage, but yet is flexible enough to permit the use of additional memory devices. The advantages of the invention are achieved in a method and apparatus for use in read/write operations by a processor that reads and writes information in first and second address formats. The method and apparatus include a memory and a memory mapper for remapping according to a predetermined scheme those memory fragments not containing information stored in the first address format. Memory fragments are thus accessible to the processor for reading and writing information in the second address format. Such remapping operation results in the memory fragments appearing logically contiguous. In the preferred embodiment, the first address format is an x-y address format and the second address format is a linearly addressable format. An alternative embodiment discloses the use of a second memory for reading and writing information in the second address format. In that embodiment, the memory mapper remaps the memory fragments to appear logically contiguous with said second memory. The invention finds particular utility in conjunction with a graphics processor system. In such a system, the memory mapper is a programmable array logic device and the memory is VRAM memory. In certain situations it is preferred to remap that portion of the memory where information is to be stored in the first address format so that the first information signal is stored in locations which are physically contiguous. The present invention will be better understood, and its numerous objects and advantages will become apparent to those skilled in the art by reference to the following detailed description of the invention when taken in conjunction with the following drawings, in which: Fig. 1 is a block diagram of a graphics system constructed in accordance with the principles of the present invention; Fig. 2 is a conversion chart showing a display memory mapping scheme for use in the system shown in Fig. 1; Fig. 3 is a diagrammatic view of information stored in the display memory of Fig. 1 using the conversion chart of FIg. 2 when the memory is sized for a 1024x768x8 display; Fig. 4 is a diagrammatic view of information stored in the display memory of Fig. 1 using the conversion chart of FIg. 2 when the memory is sized for a 1024x768x4 display; Fig. 5 is a conversion chart showing an alternative display memory mapping scheme for use in the system shown in Fig. 1; Fig. 6 is a diagrammatic view of information stored in the display memory of Fig. 1 using the conversion chart of FIg. 5 when the memory is sized for a 1280x1024x8 display; Fig. 7 is a diagrammatic view of information stored in the display memory of Fig. 1 using the conversion chart of FIg. 5 when the memory is sized for a 1280x1024x4 display; Fig. 8 is a diagrammatic view of desired information storage in the display memory of Fig. 1 when the memory is sized for a 1280x1024x4 display; Fig. 9 is a conversion chart showing an alternative display memory mapping scheme for use in the system shown in Fig. 1 to achieve the memory storage shown in Fig. 8; Fig. 10 is a conversion table for use in conjunction with the conversion chart shown in Fig. 9; Fig. 11 is a conversion chart showing an offscreen memory mapping scheme for use in the system shown in Fig. 1; Fig. 12 is a diagrammatic view of information stored in the offscreen memory of Fig. 1 using the conversion chart of FIg. 11 when the memory is sized for a 1024x768x8 display; Fig. 13 is a diagrammatic view of information stored in the offscreen memory of Fig. 1 using the conversion chart of FIg. 11 when the memory is sized for a 1024x768x4 display; Fig. 14 are conversion tables for use in conjunction with the conversion chart shown in Fig. 11; Fig. 15 is a conversion chart showing an alternative offscreen memory mapping scheme for use in the system shown in Fig. 1; Fig. 16 is a diagrammatic view of information stored in the offscreen memory of Fig. 1 using the conversion chart of FIg. 15 when the memory is sized for a 1280x1024x8 or a 1280x1024x4 display; and Fig. 17 is a conversion table for use in conjunction with the conversion chart shown in Fig. 15. A new and novel graphics system is shown in Fig. 1 and generally designated 40. System 40 is shown to include a graphics processor (GPU) 42, a programmable array logic (PAL) device 44 and a memory 46. In the preferred embodiment, graphics processor 42 is a TMS34020 graphics processor, PAL 44 includes one or more programmable array logic devices of the type such as a PAL 20L8 type. Also in the preferred embodiment, memory 46 includes 16 one megabyte VRAM devices arranged in a 2kx1k by 8 array. It is noted that processor 42 reads and writes information in various address formats, for example, x-y addressable format and the linearly addressable format. It is the purpose of PAL 44 to remap according to a predetermined scheme those memory fragments in memory 46 which do not contain information stored in the x-y address format such that the memory fragments are accessible to processor 42 for reading and writing information in the linerally addressable format. Such remapping is accomplished by the conversion or rearrangement of the address portion of the signals output from processor 42. Such conversion is implemented through the use of PAL 44 which is programmed in any known manner to achieve the results described in greater detail in relation to Figs. 2-17. By programming PAL 44 to achieve the results described below, PAL 44 remaps those memory fragments which do not contain information stored in the x-y addressable format such that those memory fragments appear logically contiguous. In other words, the remapping results in a portion of memory 46 being linerally addressable. Under some circumstances it may be desireable to provide a second memory 48, which memory could include DRAM devices. In such a situation, the present invention operates such that memory fragments in memory 46 are remapped to appear logically contiguous with memory 48. Referring now to Fig. 2, a conversion chart is shown for the physical address mapping of the display information, i.e. display VRAM, in memory 46. It will be appreciated from a review of the above that the goal of the invention is to gather memory fragments and in effect pack them onto existing linear memory, if available, such that processor 42 simply sees one large contiguous linear memory space. The portion of VRAM in memory 46 which is directly mapped to the display area is referred to herein as display VRAM memory. In nearly all cases, the mapping of this memory is in the traditional scheme, mainly, x-y address as the TMS34020 refers to it. As shown in Fig. 2, spaces 0 through 18 are the equivalent to address lines LAD23 - LAD5 of the TMS34020. It will be understood that "LAD" signifies local address data. It will also be understood that RAdd and CAdd signify row address and column address respectively. The VRAM devices which make up memory 46 are addressed physically the bits depicted as RAdd and CAdd. To this end, PAL 44 is remapping the address portion of the 32 bit word generated by processor 42. As shown in Fig. 1, PAL 44 receives two signals from a control register (not shown) at 50 and 52, which control register can be controlled by either the host controller or by graphics processor 42. The signal at 50 is an indication from the control register as to the size of the display. In examples shown herein, the display is sized any one of four ways, namely, 1024x768x4, 1024x768x8, 1280x1024x4 or 1280x1024x8. The signal at 52 signifies the amount of available memory in memory 48. For the purposes of Figs. 2 through 17, it is assumed that memory 48 contains zero memory space. As shown in Fig. 3, information is to be stored in memory 46 in conjunction with a display which has been sized at 1024x768x8. It will be seen that the conversion chart of Fig. 2 utilized in conjunction with the TMS 34020 results in the display memory, i.e. even scan lines and odd scan lines, as being relatively contiguous. In other words, the unused portion of memory, the memory fragments, are physically contiguous. This is true even for STACK one, which is utilized in a double buffering schemes. As shown in Fig. 4, the display has been sized as 1024x768x4 which again results in very straight forward logical mapping of display VRAM space. In other words, the display VRAM space (no cross hatching) shown in Figs. 3 and 4 is housed such that VRAM space appears to processor 42 utilizing the conversion chart shown in Fig. 2. Referring now to Fig. 5, the conversion chart is shown for use in relation to the mapping of display VRAM memory by PAL 44 for displays sized as 1280x1024x8. Utilization of such conversion chart results in the storage of display VRAM in a manner depicted in Fig. 6. In certain cases, for example, where processor 42 desires to store information for display area having a pitch of 1024 and a four bit per pixel mode, the offscreen memory is broken apart, i.e. becomes physically noncontiguous, as shown in Fig. 7. Such physically noncontiguous memory fragments are more difficult to remap. Consequently, it is preferred to additionally remap that portion of VRAM where information is to be stored in x-y address format so that such information is stored in locations which are physically contiguous. This is necessary in order to make use of page mode when accessing offscreen memory. In other words, it is desired to store information in display VRAM in a manner depicted in Fig. 8. To this end, a conversion chart is shown in Fig. 9 for use in the remapping of display VRAM to achieve the results depicted in Fig. 8. In the conversion chart shown in Fig. 9 certain of the column address bits are converted. Such conversion is carried out in accordance with the function table shown in Fig 10. Thus it will be appreciated that for the four display sizes described, the equations utilized by program PAL 44 are designed such that if operating in either of the 1024x768 modes or in the 1280x1024x8 mode the address generated by processor 42 for display VRAM is passed through. However, if operating in the 1280x1024x4 mode, the address portion of the signal generated by processor 42 is remapped according to the function table shown in Fig. 4, wherein the upper four column address inputs are modified. Consider the following example. If the bit values generated by processor 42 for address locations 8, 7, 6 and 5 is 1000, respectively, PAL 44 remaps the column address portions to be 0101, respectively. As a result of the above remapping scheme, offscreen VRAM is physically contiguous. The goal of the present invention, therefore becomes to remap the excess or offscreen VRAM such that it can be used as linear address space by processor 42. Such offscreen VRAM memory, as remapped, can be used for any linear address format, such as the storage of program execution information. A conversion chart is shown in Fig. 11 for use in converting the address portion of the information signal generated by processor 42 in order to remap those memory fragments contained in memory 46 constituting offscreen VRAM so that offscreen VRAM is accessible to processor 42 for linearly address format information. To this end, it is noted that column and row address locations 0 through 14 are passed straight through, while address positions 15, 16, 17 and 18 are decoded in accordance with the tables shown in Fig. 14. The use of either table is dependent upon whether the display is sized as a 1024x768x8 or as a 1024x768x4 display. In other words, in order to remap offscreen VRAM depicted in Fig. 12, the table in Fig. 14 which does not modify address position 15 is utilized. Consider the example where bit positions 18, 17 and 16 are represented as 110, respectively. In such a situation, PAL 44 remaps those bit positions to now be representative of 111, respectively. Fig. 13 is remapped in a similar fashion, however, address position 15 is also modified. The x's appearing in the tables indicate that "don't care' states to simplify the decoding equations. It will again be noted that the remapping occurring in PAL 44 is transparent to the programmer and processor 42. As far as processor 42 is concerned the offscreen memory is simply a linear address space contiguous with any other local or DRAM memory such as memory 48. It is also noted that in the Figs. 11-17 is it assumed that no DRAM memory is present. Fig. 15 shows a conversion chart for use in converting the address portion of signals produced by processor 42 when the display has been sized as either a 1280x1024x4 or as a 1280x1024x8 display. It is again noted that address positions 15-18 are utilized to remap the offscreen VRAM. However, it will now be noted that positions 0 through 5 are utilized for the first six column address positions while address positions 6 through 14 are utilized for the eight row address positions. Positions 15, 16 and 17 are utilized to complete the remaining three column address information. Information appearing at address positions 15, 16, 17 and 18 is converted in accordance with the tables shown in Fig. 17. Use of the tables shown in Fig. 17 will result in the storage of information as depicted in Fig. 16. Consider now that DRAM memory 48 does not have zero memory available, but rather, has one megabyte of local DRAM available. In such a situation, offscreen VRAM is addressed such that its locations are physically contiguous with memory 48. This result is achieved by off setting the first position in the remapped offscreen VRAM by the amount of DRAM memory which is available. If one megabyte of local DRAM memory were available, the top of the offscreen VRAM memory would be 0xFF7FFFFF instead of 0xFFFFFFFF. It will be noted that in all configurations the offscreen VRAM memory is used up in STACK 0 before any memory is used in STACK 1. This is preferred, because STACK 1 is generally optional and may not be present in some graphic systems.

Claims: Apparatus for use in read/write operations by a processor (42), wherein said processor is arranged to read and write information in first and second address formats, said apparatus comprising a memory (46) and a memory mapper (44), connected to said memory and said processor, for remapping according to a predetermined scheme those memory fragments not containing information stored in said first address format so that said memory fragments are accessible to said processor for reading and writing information in said second address format. The apparatus of claim 1, wherein said memory mapper (44) remaps those memory fragments not containing information stored in said first address format so that said memory fragments appear logically contiguous. The apparatus of claims 1 or 2, wherein said second format is a linearly addressable format and wherein said first format is a non-linearly addressable format, said memory mapper (44) remapping said memory fragments for linear addressing by said processor (42). The apparatus of any preceding claim, wherein said first address format is x-y address format. The apparatus of any preceding claim, further comprising a second memory (48), wherein said second memory is utilized for reading and writing information in said second address format, wherein said memory mapper (44) remaps said memory fragments to appear logically contiguous with said second memory. An apparatus according to any preceding claim, wherein the processor (42) is a graphics processor for generating first and second information signals, said first and second information signals comprise digital words, each of said digital words comprising an address portion, the address portion associated with said first information signal is representative of the first address format, and the address portion associated with said second information signal is representative of the second address format. The apparatus of claim 6, wherein the memory mapper (44) comprises a programmable array logic device (PAL). The apparatus of claims 6 or 7, wherein said memory (46) comprises VRAM memory. The apparatus of any of claims 6 to 8, wherein said first information signal comprises display information and said second information signal comprises programme information. The apparatus of any of claims 6 to 9, wherein said memory mapper (44) further remaps that portion of said memory where information is to be stored in said first address format so that said first information signal is stored in locations which are physically contiguous. The apparatus of any of claims 6 to 10, wherein the second memory (46) comprises DRAM memory. A method for use in read/write operations by a processor (42), wherein said processor reads and writes information in first and second address formats, said method comprising the steps of providing a memory (46) and remapping according to a predetermined scheme those memory fragments not containing information stored in said first address format so that said memory fragments are accessible to said processor for reading and writing information in said second address format.

Inventors: HODGE DAVID J, KEITH JOHN C, SORENSEN LIEF J, TUCKER STEVEN P, HODGE, DAVID J., KEITH, JOHN C., SORENSEN, LIEF J., TUCKER, STEVEN P.
Applicants: HEWLETT PACKARD CO, HEWLETT-PACKARD COMPANY
Application year: 1991
Main classification: G09G1
IPC codes: G06F12, G06T1, G09G5