throbber
ABSTRACT
`‘
`.
`An address translator for use 111 a system having a central
`Proccssing unit a graphics controller for gcnm'a?ng graphics
`addresses which index a graphics memory address map and
`for feeding data to a visual display. and a system memory
`converts a graphics address to a system address within the
`system memory. The invention initially partitions the system
`memory into a dedicated system memory for use by the
`graphics controller and a non-dedicated system memory for
`use by the central processing unit. The dedicated system
`Jllll. 12, 1996
`[22] Fil?di
`[51] Int. cl.6 .................................................... .. G06F mos “16mm c‘mspmds “’ a hm assign“ “Emmy within the
`graphics memory address map. and the non-dedicated sys
`tern memory corresponds to a portion of the graphics
`memory address map excluding the base assigned memory
`If the graphics address is within the base assigned memory.
`the graphics address is translated to a corresponding system
`address within the dedicated system memory. If the graphics
`address is within the portion of the graphics memory address
`map excluding the base assigned memory. the address
`translator converts the graphics address to a system address
`within the non-dedicated system memory. which designates
`a starting address of an available system memory block.
`Upon completion of the translation of the graphics address
`to the non-dedicated system memory. the boundary selector
`then selects a speci?c address within this allocated memory
`block corresponding to the graphics address.
`
`
`
` 5/1994 Meinerth et a1. 5,313,577 5,450,542 9/1995 Lehman et a1. 5,636,335 6/1997 Robertson et a]. .
`
`395/512
`395/515
`395/49701
`
`United States Patent [191
`Nale
`
`US005793385A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,793,385
`Aug. 11, 1998
`
`[54] ADDRESS TRANSLATOR FOR A SHARED
`MEMORY COMPUTING SYSTEM
`
`{57]
`
`[75] Inventor: William H. Nale. Livermore. Calif.
`
`[73] ASSigHCCI Chips and Technologies, Inc. San
`Jose. Calif.
`
`[21] APPL N05 662,057
`
`[52]
`
`[56]
`
`345/515
`Cl‘
`1.
`of Search ................................... ..
`395/503‘ 504" 508* 515' 521‘ 526; 364/200
`
`References cued
`U_S_ PATENT DOCUMENTS
`
`4/ 1985 Sam ...................................... .. 364/200
`4,513,369
`5,257,387 10/1993 Richer et a1. ..... ..
`
`
`
`
`
`
`
`5,659,715
`
`8/1997 Wu et a1. ......................... ..
`
`Primary Emmi"¢"—RaYm°"d J~ Hal/6T1
`Assistant Examiner—Cao H. Nguyen
`Attorney, Agent, or F irm-D’Alessandro & Ritchie
`
`36 Claims, 2 Drawing Sheets
`
`24 \
`_} DEDICATED BEFORE
`22
`1
`OS STARTS
`
`UNASSIGNED
`
`30
`
`12
`\
`
`64K PAGE
`64K PAGE
`64K PAGE
`64K PAGE
`
`ADDRESS
`TRANSLATOR
`
`—
`
`26
`BASE /
`ASSIGNED
`MEMORY
`
`GRAPHICS
`MEMORY
`ADDRESS
`MAP
`
`‘z
`2°
`
`28
`
`ALLOCATED BY OS
`
`28
`\
`' ALLOCATED BY OS
`ALLOCATED BY 08
`/
`28
`
`28
`\
`ALLOCATED BY 0s
`
`SYSTEM MEMORY MAP
`
`Apple Inc. v. Parthenon
`Ex. 1006 / Page 1 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 1
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 1 0f 2
`
`5,793,385
`
`DISPLAY /8
`MONITOR
`
`6\ GRAPHICS
`CONTROLLER
`
`ADDRESS /12
`TRANSLATOR
`
`2
`\ CPU
`
`4\ SYSTEMS
`LOGIC
`
`10
`SYSTEM
`MEMORY /
`
`\
`1s
`
`FIG.1
`
`24
`22 } DEDICATED BEFORE
`L
`Os STARTS
`
`2a
`
`'
`
`ALLOCATED BY OS
`
`UNASSIGNED
`
`so
`
`12
`\
`
`64K PAGE — -
`‘\ 64K PAGE
`64K PAGE
`64K PAGE
`
`ADDRESS
`TRANSLATOR
`
`—
`
`26
`BASE /
`ASSIGNED
`MEMORY
`
`GRAPHICS
`MEMORY
`ADDREss
`MAP
`
`‘1
`20
`
`28
`\
`E ALLOCATED BY 08
`~ ALLOCATED BY OS
`/
`2s
`
`28
`\
`ALLOCATED BY OS
`
`FIG. 2
`
`SYSTEM MEMORY MAP
`
`Ex. 1006 / Page 2 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 2
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 2 0f 2
`
`5,793,385
`
`% hmumw u
`:6
`
`u _ | . I . . . . I I . . I
`
`
`
`
`
`..u H 060.. .owm _ M m m 3 ENE m oziow?w [ m M -./ ........
`
`_ 9‘ W / W 8\\ N2: mm W m
`
`u \ _ of M
`
`W Eng 5225 \ RUE mum: "
`
`
`E\\ E Ex?
`
`. . 8m? "
`
`
`
`.. ........ ............................. NNQ v? mwi/ H H
`
`N.
`
`n
`
`w mm m
`
`m .wmE W %\
`
`m. .UI
`
`m m I
`
`u 8 " m9 02mm
`
`m é “ \ mwwmoqq
`\ / mm
`
`mm _
`
`Ex. 1006 / Page 3 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 3
`
`

`
`5,793,385
`
`1
`ADDRESS TRANSLATOR FOR A SHARED
`MEMORY COMPUTING SYSTEM
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates to memory address transla
`tion and. more particularly. to a method facilitating the
`operation of a computer graphics system in which a central
`processing unit and a graphics controller share a memory.
`and the resulting architecture.
`2. Description of Related Art
`A computer either has. or is designed to interface with. a
`display monitor. Such a computer requires memory space
`for use by both the computer’s central processing unit (CPU)
`and a graphics controller. which controls the display placed
`on the monitor. Memory space is typically provided by two
`separate memories: a system memory for use by the CPU
`and a memory for use by the graphics controller.
`Alternatively. a single memory may be shared by a CPU and
`a graphics controller. The memory space required by the
`graphics controller. however. varies according to the graph
`ics mode used. For example. a high resolution mode requires
`more memory space than a low resolution mode. To avoid
`the necessity of making the shared memory su?iciently large
`that it can handle the CPU and all graphics modes that might
`be required by the graphics controller. the prior art typically
`dedicates to the graphics controller an amount of system
`memory su?icient only for a low resolution mode. This
`creates two problems. First. it is necessary to reboot the
`system to dedicate more memory to the graphics controller
`whenever a more demanding graphics mode is to be used.
`Second. when additional memory space is allocated to the
`graphics controller for use of a new mode. the amount of
`memory then available to the computer operating system is
`limited. A need exists in the prior art for a method for
`dynamically allocating additional memory to the graphics
`controller ?'om the system memory.
`
`25
`
`35
`
`SUMMARY OF THE INVENTION
`The present invention enables a system memory to be
`shared by a graphics controller without requiring a user to
`reboot the system to accomodate more demanding graphics
`modes. Furthermore. the amount of memory available to the
`computer operating system is increased by dedicating a
`minimal amount of system memory to the graphics
`controller. and dynamically allocating additional system
`memory to the graphics controller to satisfy the memory
`requirements of a selected graphics mode.
`According to a ?rst aspect of the present invention. a
`portion of system memory is dedicated upon start-up to the
`graphics controller. This memory block is allocated from the
`top of system memory. and corresponds to a base assigned
`memory allocated from the bottom of a graphics memory
`address map.
`According to a second aspect of the present invention. the
`translator compares the graphics address to the size of the
`base assigned memory. Ifthe graphics address is within this
`dedicated area. an address selector outputs a system address
`within the dedicated system memory. If the graphics address
`is not within the area dedicated to the graphics controller. the
`address selector will dynamically allocate a memory block
`within the system memory.
`According to a third aspect of the present invention. the
`translator translates a graphics address within the base
`assigned memory into a system address within the dedicated
`system memory.
`
`2
`According to a fourth aspect of the present invention.
`additional system memory may be dynamically allocated to
`the graphics controller. Although most graphics controllers
`are designed to address contiguous memory. those portions
`of a system memory that might be usable by a graphics
`controller generally are not contiguous. The address trans
`lator translates. or converts. contiguous graphics addresses
`generated by a graphics controller into non-contiguous
`addresses in the system memory. The translation occurs in
`real-time and the system memory address corresponds to an
`available portion of the system memory. A memory block is
`available if it is not otherwise being used by the computer
`operating system.
`Translation of non-dedicated system memory is achieved
`with a look-up table. The starting address of each allocated
`memory block in system memory is stored in a location in
`the look-up table. According to the presently preferred
`embodiment. each memory block must be a speci?ed size
`(i.e.. 64 K bytes). Therefore. the look-up table. and the
`memory containing the look-up table. can be smaller than
`required to accomodate a direct mapping of the addresses.
`According to a ?fth aspect of the present invention. a
`greater number of starting addresses than contained in the
`look-up table can accessed According to the presently
`preferred embodiment of the present invention. 4 K byte
`blocks of system memory can be addressed within 64 K byte
`blocks stored in the look-up table. allowing the 64 K blocks
`to be allocated on 4 K byte boundaries.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram providing the basic operational
`?ow of a preferred embodiment of the invention;
`FIG. 2 is an example of an address translator converting
`contiguous graphics addresses generated by a graphics con
`troller into non-contiguous addresses in the system memory
`according to the presently preferred embodiment of the
`invention; and
`FIG. 3 is an expanded view of the address translator of the
`preferred embodiment of the invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`45
`
`55
`
`65
`
`Those of ordinary skill in the art will realize that the
`following description of the present invention is illustrative
`only and not in any way limiting. Other embodiments of the
`invention will readily suggest themselves to such skilled
`persons.
`According to a presently preferred embodiment of the
`present invention. an address translator translates a graphics
`address generated by a graphics controller into a system
`memory address. The translator ?rst determines whether the
`graphics address to be translated is within the dedicated
`portion of system memory. If the address is not within the
`dedicated system memory. an available portion of system
`memory is allocated through a look-up table. Furthermore.
`through the use of a binary adder. the system memory
`address space can be addressed with a liner granularity than
`the blocks of system memory identi?ed by the loolcup table.
`According to the presently preferred embodiment. 64 K
`blocks of system memory can be allocated on 4 K byte
`boundaries.
`Referring to FIG. 1. a block diagram providing the basic
`operational ?ow of a preferred embodiment of the invention
`is shown. The computer architecture includes a CPU 2 and
`systems logic 4 for interfacing the CPU 2 with other
`
`Ex. 1006 / Page 4 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 4
`
`

`
`3
`components. such as a graphics controller. A graphics con
`troller 6 controls and issues data for a visual display pro
`vided by a display monitor 8. A system memory 10 provides
`memory for the CPU 2 via the systems logic 4. In addition.
`the system memory 10 provides memory for the graphics
`controller 6 via an address translator 12. The address trans
`lator 12 is positioned to intercept addresses generated by the
`graphics controller 6 and translate same into addresses in the
`system memory 10.
`According to the presently preferred embodiment of the
`present invention. the system memory 10 is used by the CPU
`2 in connection with its data operations. and by the graphics
`controller 6. In a shared memory arrangement of this kind.
`it is typical to dedicate a portion of the system memory 10
`to the graphics controller 6 for its use. This dedicated portion
`typically is no larger than needed by the graphics controller
`6 in a graphics mode requiring little memory (i.e.. low
`resolution mode). For example. it is relatively common to
`provide a system memory of 8 megabytes. with one mega
`byte being dedicated to use by the graphics controller.
`However. while one megabyte is su?icient memory space
`for the graphics controller when it is in a low resolution
`mode. more memory is needed for higher resolution graph
`ics.
`One advantage of the address translator 12 is that it
`dynamically allocates additional system memory 10 space to
`the graphics controller 6 as required by various graphics
`modes. As a result. it becomes unnecessary to reboot the
`computer when a new graphics mode is selected. However.
`there is a possibility that the memory space required by the
`graphics controller may be greater than the contiguous
`memory space available in the system memory. The oper
`ating system allocates memory blocks in 4 K byte incre
`ments. Typically. a graphics controller will refuse portions of
`the system memory offered to it which are not of a prede
`termined size. For example. according to the presently
`preferred embodiment. a system memory block must have a
`size of at least 64 K bytes. Any memory blocks which are
`less than 64 K bytes can be given back to the operating
`system by the software driver. Furthermore. although the
`operating system will allocate memory in 4 K byte blocks.
`contiguous sections of 64 K bytes or more can reasonably be
`expected. Accordingly. the translator assumes that any
`blocks of memory from the operating system will be at least
`64 K in size.
`Referring now to FIG. 2. the translator 12 of the present
`invention is illustrated converting graphics addresses gen
`erated by a graphics controller into addresses in the system
`memory. according to the presently preferred embodiment
`of the invention. A graphics memory address map 20 illus
`trates the contiguous graphics addresses generated by the
`graphics controller. Similarly. a system memory map 22
`illustrates the non-contiguous addresses corresponding to
`available memory blocks in the system memory.
`According to a presently preferred embodiment. the sys
`tem memory is approximately 256 megabytes. starting at
`location 0 in the system memory. The system address
`comprises bits 0:27. or a total of 28 bits. to address this
`memory space. For the purposes of the present invention. the
`system memory is divided into two portions. A ?rst portion
`of the system memory is a dedicated system memory 24. a
`block of system memory dedicated to the graphics controller
`at start-up. According to a ?rst aspect of the present
`invention. a means for partitioning the system memory into
`the dedicated system memory 24 and a non-dedicated sys
`tem memory when the computer system is ?rst booted is
`provided. The means for partitioning comprises a graphics
`
`45
`
`50
`
`55
`
`65
`
`5.793.385
`
`15
`
`25
`
`35
`
`4
`memory dedicator for creating the dedicated system memory
`24. As embodied herein. the graphics memory dedicator
`comprises software which allocates the dedicated system
`memory 24 from the top of the system memory. correspond
`ing to a base as signed memory 26 allocated from the bottom
`of the graphics memory address map 20. The top of the
`system memory is the highest installed system memory
`location. and the bottom of the graphics memory address
`map 20. address 0. is the lowest address that may be
`generated by the graphics controller. According to the pre
`ferred embodiment of the present invention. the dedicated
`system memory 24 comprises 1 Megabyte. However. one of
`ordinary sldll in the art will recognize that a greater or
`smaller amount of system memory may be dedicated to the
`graphics controller.
`A second portion of the system memory is the system
`memory below the dedicated system memory 24. This
`portion will hereinafter be referred to as the non-dedicated
`system memory. The present invention dynamically allo
`cates this memory to the graphics controller upon a request
`to the operating system for a block of memory of a particular
`size.
`The maximum memory required by the graphics control
`ler is approximately 4 megabytes. starting at location 0 of
`the graphics memory address map 20. According to the
`presently preferred embodiment of the present invention. the
`base assigned memory 26 comprises a 1 M area starting at
`location 0 of the graphics memory address map 20.
`When the display mode is changed. the graphics control
`ler will request that additional memory be allocated to it.
`Since the system memory is allocated to the graphics
`controller during real-time operation. the allocated system
`memory blocks 28 are not necessarily contiguous. The
`graphics addresses 30 provided by the graphics controller.
`however. are contiguous. Thus. the memory blocks will
`appear contiguous to the graphics device.
`Referring now to FIG. 3. an expanded view of the address
`translator 12 of the preferred embodiment of the invention is
`shown. According to a second aspect of the present
`invention. an address selecting means 40 determines
`whether a system address within the dedicated system
`memory will be output from the address translator. or
`whether memory within the system memory must be
`dynamically allocated. According to the presently preferred
`embodiment. the address selecting means 40 comprises an
`address selector. multiplexer 42. If the graphics address is
`within the base assigned memory. a ?rst data input 44 to the
`multiplexer 42 is selected. and an address within the dedi
`cated system memory is output. However. if the graphics
`address is not within this ?xed range. a second data input 46
`to the multiplexer 42 is selected. and an address correspond
`ing to an available block of system memory is output. The
`output of the multiplexer 42 comprises the most signi?cant
`bits of the system memory address. while the lower bits 48
`of the system memory address are passed through the
`translator 12 from the graphics address.
`A comparator 50 is used to determine whether the graph
`ics address is within the base assigned memory. The graph
`ics address provided by the graphics controller feeds a ?rst
`input 52 of the comparator 50. A register 54 storing the size
`of the area dedicated to the graphics controller feeds a
`second input 56 of the comparator 50. To determine whether
`the graphics address is within the base assigned memory. the
`comparator 50 compares the graphics address to the size of
`the area dedicated to the graphics controller. contained in the
`register 54. If the address is within this ?xed range. the result
`
`Ex. 1006 / Page 5 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 5
`
`

`
`10
`
`15
`
`25
`
`30
`
`5
`of the comparison will be “true”or 1. However. if the address
`is not within this ?xed range. the result of the comparison
`will be 0. The output of this comparator 50 feeds the select
`line to the multiplexer 42.
`The graphics address comprises bits 0:22. or a total of 23
`bits. Bits 0-2 address speci?c bytes within a 64 bit block.
`and bits 3-11 address bytes within a 4 K location. Since the
`translator does not access memory blocks less than 4 K bytes
`in size. these lower bits 48 addressing locations within a 4
`K byte memory block can be ignored. and are always passed
`through the translator unmodi?ed.
`According to a third aspect of the present invention. if the
`graphics address is within the base assigned memory. the
`graphics address is translated to an address within the
`dedicated system memory. As embodied herein. a means for
`mapping the graphics address to a system address within the
`dedicated system memory comprises a dedicated system
`memory translator 58. As embodied herein. the dedicated
`system memory translator comprises selecting logic 60
`having a ?rst input 62 operatively coupled to graphics
`address bits 12:22 and a second input 64 operatively coupled
`to a register 66. The register 66 contains an address corre
`sponding to the highest memory location in the system
`memory. Since the dedicated system memory starts at this
`uppermost location in the system memory. the memory is
`allocated downward from this highest memory location.
`Furthermore. since the graphics memory address map starts
`at location 0. the graphics address supplies the oifset from
`the highest memory location. Thus. the selecting logic 60
`e?'ectively subtracts the graphics address from the highest
`system memory address stored within the register. An output
`of the selecting logic comprises bits 12:27 of the system
`memory address. According to the presently preferred
`embodiment. a granularity of 256 K is provided. and the
`most signi?cant bits of the system memory address are
`generated by inverting bits 18:22 from the graphics address
`and concatenating these inverted bits to bits 23:27 of the
`system memory address. obtained from the register contain
`ing the uppermost system address. Bits 12:17 are passed
`through unmodi?ed. This output is operatively coupled to
`the ?rst data input 44 of the address selecting means 40.
`If the graphics address is not within the base assigned
`memory. the graphics address must be translated to a system
`address pointing to memory which has been obtained from
`the computer operating system. This system address corre
`sponds to a starting address of an available portion of system
`memory obtained by the software driver.
`According to a fourth aspect of the present invention. a
`means for translating the graphics address to a system
`address within the non-dedicated system memory is pro
`vided. The means for translating the graphics address to a
`system address within the non-dedicated system memory
`comprises a non-dedicated system memory translator. As
`embodied herein. the non-dedicated system memory trans
`lator comprises a look-up table 68 which stores the starting
`address of each allocated memory block within the system
`memory. The size of memory required for the look-up table
`68 is dependent upon the number of allocated memory
`blocks. and therefore the size of the allocated memory
`blocks. According to the presently preferred embodiment of
`the present invention. 48 64 K byte blocks may be dynami
`cally allocated. for a total of 3 M of memory. in addition to
`the 1 M dedicated system memory. One of ordinary skill in
`the art will recognize that a different number of system
`memory blocks may be allocated. Similarly. an allocated
`65
`system memory block may be larger. or smaller. than 64 K
`in size. However. allocating memory in 64 K increments
`
`55
`
`35
`
`50
`
`5.793.385
`
`6
`minimizes the size of memory (i.e.. RAM) that is required
`for the look-up table 68. since only 48 locations in the
`look-up table 68 are required. If memory were allocated in
`4 K increments. 768 locations would be required in the
`loolorp table 68 to allocate the same 3 M of memory. Since
`the amount of RAM required for such a look-up table would
`be expensive to implement in many technologies. this inven
`tion employs a technique to reduce this memory size.
`Alternatively. allocating memory in blocks larger than 64 K.
`while reducing the size of memory required for a look-up
`table. would diminish the chances of getting the proper
`amount of memory allocated from the operating system.
`When the graphics mode is changed. the software driver
`requests the additional needed memory from the operating
`system. In response to this request. the operating system will
`respond with the starting addresses of available memory
`blocks. In the unlikely event that there is an insu?icient
`amount of memory available. an appropriate error message
`will be given to the user. Furthermore. the software driver
`will reject any memory blocks of less than the requested
`size. For each allocated memory block within the system
`memory. the starting address of this memory block will be
`written to a location in the look-up table 68. For example. if
`1 M of additional system memory is needed. the starting
`addresses of 16 available 64 K memory blocks are stored in
`16 corresponding locations in the look-up table 68.
`Therefore. the number of locations used in the look-up table
`68 will depend upon the number of allocated memory
`blocks.
`According to the presently preferred embodiment. the
`look-up table 68 allows 64 K byte sections to be allocated.
`with each 64 K byte section lying on a 4 K byte address
`boundary. According to the presently preferred embodiment.
`this look-up table 68 is stored in RAM. An input to the
`look-up table 68 is address lines 16:22 from the graphics
`address. Bits 16:21 determine which 64 K block of memory
`the graphics controller is requesting. These 6 bits can select
`64 locations within this look-up table 68. corresponding to
`a total of 4 M available to the graphics controller. However.
`the ?rst 16 locations address the bottom 1 M in graphics
`memory. which is the minimum memory dedicated to the
`graphics controller. It follows that only 48 locations are
`necessary in the look-up table 68 to address the remaining 3
`M. which can be dynamically allocated. Therefore. a 48
`location look-up table is used. each location containing 16
`bits. Since the system address comprises bits 0:27. the
`output of the lookup table 68 comprises address lines 12:27.
`These address lines 12:27 contain the starting address of
`each 64 K block.
`According to a ?fth aspect of the present invention. a
`boundary selecting means is provided to allow a greater
`number of starting addresses than contained in the look-up
`table 68 to be accessed. As embodied herein. the boundary
`selecting means comprises a boundary selector. binary adder
`‘70. Through the use of the binary adder 70. the system
`memory address space can be addressed with a ?ner granu
`larity than the size of the blocks of system memory idenu'fred
`by the look-up table 68. The binary adder 70 outputs a
`system address on a 4 K boundary. since this is the boundary
`in which the operating system will allocate memory. A ?rst
`input 74 to the binary adder 70 is the mapped address from
`the look-up table 68 comprising bits 12:27 . A second input
`76 to the binary adder 70 comprises bits 12:15 of the
`graphics address. which select the 4 K byte area within the
`64 K byte memory block being requested by the graphics
`controller. The ?rst input 74 and the second input 76 are
`added by the binary adder 70. and the output comprises
`
`Ex. 1006 / Page 6 of 10
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1006, p. 6
`
`

`
`7
`address lines 12:27 . denoting the actual 4 K byte block
`being accessed. This output is operatively coupled to the
`second data input 46 of the address selecting means 40.
`Address bits 0:11 of the graphics address are passed directly
`through as system address bits 0:11.
`Example
`
`Address Bits
`
`27:24 23:20
`
`19:16
`
`15:12
`
`11:3
`
`Graphics Address
`Look-up table output
`(of location 01 01(1))
`?nal address
`
`- -O1
`——
`0010 0100
`
`0100
`1001
`
`0110
`1101
`
`010101010
`—
`
`0010 0100
`
`1010
`
`0011
`
`010101010
`
`Bits 21:16 of the graphics address select the location in the
`look-up table which contains address 249D (hex). Bits 15:12
`of the graphics address are added to this to produce a
`memory address of 24A3 (hex).
`In summary. the address translator 12 dedicates a portion
`of the system memory to the graphics controller 6. and
`dynamically allocates additional memory to the graphics
`controller 6 when a user selects a graphics mode requiring
`additional memory. Through the use of a look-up table 68
`and a binary adder 70. the size of RAM required for the
`look-up table 68 is minimized. This combination further
`allows 64 K byte blocks to be allocated on 4 K byte
`boundaries.
`While embodiments and applications of this invention
`have been shown and described. it would be apparent to
`those skilled in the art that many more modi?cations than
`mentioned above are possible without departing from the
`inventive concepts herein. The invention. therefore. is not to
`be restricted except in the spirit of the appended claims.
`What is claimed is:
`1. A method for converting a graphics address to a system
`address. the method being implemented within a computer
`system having an operating system. a central processing
`unit. a graphics controller for generating graphics addresses
`which index a graphics memory address map and for feeding
`data to a visual display. and a system memory to be shared
`by the central processing unit and the graphics controller. the
`gaphics address being generated by the graphics controller
`and the system address denoting an address within the
`system memory. the method comprising the following steps:
`partitioning the system memory into a dedicated system
`memory for use by the graphics controller and a
`non-dedicated system memory for use by the central
`processing unit. the dedicated system memory corre
`sponding to a base assigned memory within the graph
`ics memory address map. the non-dedicated system
`memory corresponding to a portion of the graphics
`memory address map excluding the base assigned
`memory;
`mapping the graphics address to a corresponding system
`address within the dedicated system memory when the
`graphics address is within the base assigned memory;
`translating the graphics address to a system address within
`the non-dedicated system memory when the graphics
`address is within the portion of the graphics memory
`address map excluding the base assigned memory. the
`system address within the non-dedicated system
`memory designating a starting address of an available
`memory block within the non-dedicated system
`memory;
`selecting a boundary address within the available memory
`block upon completion of the translating step. based
`
`to O
`
`35
`
`60
`
`65
`
`5,793,385
`
`LII
`
`8
`upon the system address generated during the translat
`ing step and the graphics address; and
`outputting the system address generated during the map
`ping step when the graphics address is within the base
`assigned memory. and otherwise outputting the system
`address generated during the selecting step.
`2. The method according to claim 1. wherein the system
`memory is a memory de?ned by a highest installed memory
`location and a lowest installed memory location. wherein the
`graphics memory address map is an address range de?ned
`by a top corresponding to a highest address that can be
`generated by the graphics controller and a bottom corre
`sponding to a lowest address that can be generated by the
`graphics controller. wherein the step of partitioning allocates
`the dedicated system memory starting from the highest
`15 installed memory location. and wherein the base assigned
`memory is de?ned by an area starting at the bottom of the
`graphics memory address map.
`3. The method according to claim 2. wherein the step of
`mapping subtracts the graphics address from the highest
`installed memory location to generate the system address.
`4. The method according to claim 3. wherein the system
`address within the system memory is de?ned by bits 0
`through 27 inclusive. wherein the graphics address within
`the graphics memory address map is de?ned by bits 0
`through 22 inclusive. the system address bits 0 through 17
`inclusive equal the graphics address bits 0 through 17
`inclusive. the system address bits 18 through 22 inclusive
`are formed by inverting the graphics address bits 18 through
`22 inclusive. and the system address bits 23 through 27
`inclusive equal bits 23 through 27 inclusive of the highest
`installed memory location.
`5. The method according to claim 1. the step of translating
`further comprising the steps of:
`obtaining an additional amount of the system memory
`sufficient to accomodate a selected graphics mode; and
`selecting the system address from the additional amount
`in response to the graphics address.
`6. The method according to claim 5. the step of obtaining
`further comprising the steps of:
`allocating an available block of the system memory;
`choosing one of a plurality of locations in a look-up table.
`each of the plurality of locations selectable by the
`graphics address; and
`storing a starting address of the available block in the one
`of a plurality of locations.
`7. The method according to claim 6. the step of allocating
`further comprising the steps of:
`requesting from the operating system an available system
`memory block; and
`rejecting the available system memory block if the
`memory block is less than a speci?ed size.
`8. The method according to claim 7. wherein the speci?ed
`size is 64 K bytes and wherein a block of the system memory
`is an available system memory block when not otherwise
`being used by the operating system.
`9. The method according to claim 6. wherein the step of
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket