Patent US5793385A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5793385A Expired / Lapsed US ⏱️ 0.0 years remaining

Address translator for a shared memory computing system

Assignee: Intel Corp
•
Filing: 1996-06-12
•
Granted: 1998-08-11
•
Expires: 2016-06-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An address translator for use in a system having 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 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 memory corresponds to a base assigned memory within the graphics memory address map, and the non-dedicated system 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 specific address within this allocated memory block corresponding to the graphics address.

Inventors

  • 👤 William H. Nale

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 02:14
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292

Claims Analysis

Total Claims: 41
Claim 1
Independent Claim 291 words
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 graphics 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 corresponding to a base assigned memory within the graphics 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 upon the system address generated during the translating step and the graphics address; and outputting the system address generated during the mapping step when the graphics address is within the base assigned memory, and otherwise outputting the system address generated during the selecting step.
Claim 2
Independent Claim 291 words
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 graphics 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 corresponding to a base assigned memory within the graphics 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 upon the system address generated during the translating step and the graphics address; and outputting the system address generated during the mapping step when the graphics address is within the base assigned memory, and otherwise outputting the system address generated during the selecting step.
Claim 3
Dependent Claim 107 words
The method according to claim 1, wherein the system memory is a memory defined by a highest installed memory location and a lowest installed memory location, wherein the graphics memory address map is an address range defined by a top corresponding to a highest address that can be generated by the graphics controller and a bottom corresponding 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 installed memory location, and wherein the base assigned memory is defined by an area starting at the bottom of the graphics memory address map.
Claim 4
Dependent Claim 26 words
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.
Claim 5
Dependent Claim 98 words
The method according to claim 3, wherein the system address within the system memory is defined by bits 0 through 27 inclusive, wherein the graphics address within the graphics memory address map is defined 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.
Claim 6
Dependent Claim 45 words
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.
Claim 7
Dependent Claim 62 words
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.
Claim 8
Dependent Claim 42 words
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 specified size.
Claim 9
Dependent Claim 37 words
The method according to claim 7, wherein the specified 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.
Claim 10
Dependent Claim 41 words
The method according to claim 6, wherein the step of choosing includes selecting the one of the plurality of locations in response to a third portion of the graphics address, the third portion comprising the uppermost bits of the graphics address.
Claim 11
Dependent Claim 37 words
The method according to claim 9, wherein each of the plurality of locations contains bits 12 through 27 inclusive of the system address, and the third portion comprises bits 16 through 21 inclusive of the graphics address.
Claim 12
Dependent Claim 19 words
The method according to claim 6, wherein the available memory block is allocated on a 4 K byte boundary.
Claim 13
Dependent Claim 30 words
The method according to claim 1, wherein the step of selecting includes adding the system address generated by the step of translating to a second portion of the graphics address.
Claim 14
Dependent Claim 20 words
The method according to claim 12, wherein the second portion comprises bits 12 through 15 inclusive of the graphics address.
Claim 15
Dependent Claim 18 words
The method according to claim 1, wherein a first portion of the graphics address is passed through unmodified.
Claim 16
Dependent Claim 20 words
The method according to claim 14, wherein the first portion comprises bits 0 through 11 inclusive of the graphics address.
Claim 17
Dependent Claim 19 words
The method according to claim 1, wherein the available memory block is allocated on a 4 K byte boundary.
Claim 18
Dependent Claim 257 words
An address translator for translating a graphics address generated by a graphics controller to a system address when a user-selected graphics mode requires that additional memory be allocated to the graphics controller, the address translator for use with a computer system having a central processing unit, the 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 system address denoting an address within the system memory corresponding to a dynamically allocated block of the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for 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; and boundary selecting means for selecting a boundary address within the available memory block in response to the system address generated by the translating means and the graphics address.
Claim 19
Dependent Claim 257 words
An address translator for translating a graphics address generated by a graphics controller to a system address when a user-selected graphics mode requires that additional memory be allocated to the graphics controller, the address translator for use with a computer system having a central processing unit, the 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 system address denoting an address within the system memory corresponding to a dynamically allocated block of the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for 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; and boundary selecting means for selecting a boundary address within the available memory block in response to the system address generated by the translating means and the graphics address.
Claim 20
Dependent Claim 313 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; means for 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; boundary selecting means operatively coupled to the means for translating, the boundary selecting means adapted for selecting a boundary address within the available memory block based upon the system address generated by the means for translating and the graphics address; and address selecting means for outputting the system address generated by the mapping means when the graphics address is within the base assigned memory, and otherwise outputting the system address generated by the boundary selecting means.
Claim 21
Dependent Claim 313 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; means for 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; boundary selecting means operatively coupled to the means for translating, the boundary selecting means adapted for selecting a boundary address within the available memory block based upon the system address generated by the means for translating and the graphics address; and address selecting means for outputting the system address generated by the mapping means when the graphics address is within the base assigned memory, and otherwise outputting the system address generated by the boundary selecting means.
Claim 22
Dependent Claim 368 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: a graphics memory dedicator for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; a dedicated system memory translator for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; a non-dedicated system memory translator for 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; a boundary selector having a first input operatively coupled to the non-dedicated system memory translator and a second input operatively coupled to the graphics address, the boundary selector capable of selecting a boundary address within the available memory block in response to the system address generated by the non-dedicated system memory translator and the graphics address; and an address selector having a first input operatively coupled to the dedicated system memory translator, a second input operatively coupled to the boundary selector, and an output operatively coupled to a system address bus, the address selector placing the first input at the output when the graphics address is within the base assigned memory, and otherwise placing the second input at the output.
Claim 23
Dependent Claim 368 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: a graphics memory dedicator for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; a dedicated system memory translator for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; a non-dedicated system memory translator for 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; a boundary selector having a first input operatively coupled to the non-dedicated system memory translator and a second input operatively coupled to the graphics address, the boundary selector capable of selecting a boundary address within the available memory block in response to the system address generated by the non-dedicated system memory translator and the graphics address; and an address selector having a first input operatively coupled to the dedicated system memory translator, a second input operatively coupled to the boundary selector, and an output operatively coupled to a system address bus, the address selector placing the first input at the output when the graphics address is within the base assigned memory, and otherwise placing the second input at the output.
Claim 24
Dependent Claim 108 words
The address translator according to claim 19, wherein the system memory is a memory defined by a highest installed memory location and a lowest installed memory location, wherein the graphics memory address map is an address range defined by a top corresponding to a highest address that can be generated by the graphics controller and a bottom corresponding to a lowest address that can be generated by the graphics controller, wherein the graphics memory dedicator allocates the dedicated system memory starting from the highest installed memory location, and wherein the base assigned memory is defined by an area starting at the bottom of the graphics memory address map.
Claim 25
Dependent Claim 61 words
The address translator according to claim 20, the dedicated system memory translator further comprising: selecting logic having a first input operatively coupled to the graphics address and a second input operatively coupled to a memory location containing the highest installed memory location, wherein the selecting logic subtracts the graphics address from the highest installed memory location to generate the system address.
Claim 26
Dependent Claim 105 words
The address translator according to claim 21, wherein the system address within the system memory is defined by bits 0 through 27 inclusive, wherein the graphics address within the graphics memory address map is defined by bits 0 through 22 inclusive, the system address bits 0 through 17 inclusive are operatively coupled to 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 are operatively coupled to bits 23 through 27 inclusive of the highest installed memory location.
Claim 27
Dependent Claim 57 words
The address translator according to claim 19, wherein the non-dedicated system memory translator comprises a look-up table having a plurality of locations, with each of the locations in the look-up table available for storing a starting address of an allocated block of the system memory, and each of the plurality of locations selectable by the graphics address.
Claim 28
Dependent Claim 93 words
The address translator according to claim 23, wherein a software driver requests from the operating system an additional amount of the system memory sufficient to accomodate a selected graphics mode, the additional amount comprising a plurality of memory blocks, wherein the software driver rejects one of the plurality of memory blocks upon a determination that the one of the plurality of memory blocks is less than a specified size, and stores a starting address of each unrejected one of the plurality of memory blocks in a different one of the plurality of locations.
Claim 29
Dependent Claim 15 words
The address translator according to claim 24, wherein the specified size is 64 K bytes.
Claim 30
Dependent Claim 37 words
The address translator according to claim 23, wherein one of the plurality of locations is selected in response to a third portion of the graphics address, the third portion comprising the uppermost bits of the graphics address.
Claim 31
Dependent Claim 41 words
The address translator according to claim 26, wherein the look-up table comprises 48 locations, each of the locations comprises bits 12 through 27 inclusive of an address within the system memory, and the third portion comprises bits 16 through 21 inclusive.
Claim 32
Dependent Claim 55 words
The address translator according to claim 23, wherein the boundary selector comprises a binary adder having a first data input operatively coupled to one of the plurality of locations within the look-up table corresponding to the graphics address, a second data input operatively coupled to a second portion of the graphics address, and an output.
Claim 33
Dependent Claim 21 words
The address translator according to claim 28, wherein the second portion comprises bits 12 through 15 inclusive of the graphics address.
Claim 34
Dependent Claim 15 words
The address translator according to claim 23, wherein the look-up table is stored in RAM.
Claim 35
Dependent Claim 19 words
The address translator according to claim 19, wherein a first portion of the graphics address is passed through unmodified.
Claim 36
Dependent Claim 17 words
The address translator according to claim 31, wherein the first portion comprises bits 0 through 11 inclusive.
Claim 37
Dependent Claim 77 words
The address translator according to claim 19, the address selector comprising a multiplexer having a first data input operatively coupled to the boundary selector, a second data input operatively coupled to the dedicated system memory translator, an output operatively coupled to a system address bus, and a select line placing the second data input at the output when the graphics address is within the base assigned memory, and otherwise placing the first data input at the output.
Claim 38
Dependent Claim 68 words
The address translator according to claim 33, the address selector further comprising: a comparator having a first input operatively coupled to the graphics address, a second input operatively coupled to a memory location containing a size of the base assigned memory, and an output operatively coupled to the select line, the output being 1 if the graphics address is within the base assigned memory, and otherwise being 0.
Claim 39
Dependent Claim 14 words
The address translator according to claim 34, wherein the memory location comprises a register.
Claim 40
Dependent Claim 343 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; means for allocating an available memory block of the system memory on a 4 K byte boundary to the graphics controller when the graphics address is within the portion of the graphics memory address map excluding the base assigned memory; means for translating the graphics address to a system address 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 the available memory block; boundary selecting means operatively coupled to the means for translating, the boundary selecting means adapted for selecting a boundary address within the available memory block based upon the system address generated by the means for translating and the graphics address; and address selecting means for outputting the system address generated by the mapping means when the graphics address is within the base assigned memory, and otherwise outputting the system address generated by the boundary selecting means.
Claim 41
Dependent Claim 343 words
An address translator for converting a graphics address to a system address, the address translator for use with 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 graphics address being generated by the graphics controller and the system address denoting an address within the system memory, the address translator comprising: means for 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 corresponding to a base assigned memory within the graphics memory address map, the non-dedicated system memory corresponding to a portion of the graphics memory address map excluding the base assigned memory; means for mapping the graphics address to a corresponding system address within the dedicated system memory when the graphics address is within the base assigned memory; means for allocating an available memory block of the system memory on a 4 K byte boundary to the graphics controller when the graphics address is within the portion of the graphics memory address map excluding the base assigned memory; means for translating the graphics address to a system address 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 the available memory block; boundary selecting means operatively coupled to the means for translating, the boundary selecting means adapted for selecting a boundary address within the available memory block based upon the system address generated by the means for translating and the graphics address; and address selecting means for outputting the system address generated by the mapping means when the graphics address is within the base assigned memory, and otherwise outputting the system address generated by the boundary selecting means.

References Cited (Backward Citations)

US4513369A Cited
US5257387A Cited
US5636335A Cited
US5313577A Cited
US5450542A Cited
US5659715A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-10 2002-02-09 2002-08-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-10 2006-02-09 2006-08-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-10 2010-02-09 2010-08-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag