← Back to Patent Explorer
US5796978A Expired / Lapsed US ⏱️ 0.0 years remaining

Data processor having an address translation buffer operable with variable page sizes

Assignee: Advanced Processor Technologies LLC
•
Filing: 1995-09-07
•
Granted: 1998-08-18
•
Expires: 2015-09-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processor capable of supporting a plurality of page sizes without increasing the chip occupation area or the power consumption. This data processor for supporting a virtual memory is constructed of a set associative type cache memory having a plurality of banks having their index addresses shared, in which the virtual page size can be set for each page and which includes a TLB to be shared among the plural virtual pages set in various manners. This TLB is provided with a latch field for latching a pair of the virtual page number and the physical page number. The maximum size of the virtual page to be supported is set to the power of two of the minimum size, and the bank number of the TLB is set to no less than the power of two of the former.

Inventors

  • 👤 Shinichi Yoshioka
  • 👤 Ikuya Kawasaki
  • 👤 Susumu Narita
  • 👤 Saneaki Tamaki

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 00:40
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F12/1036; G06F15/00; G06F15/16; G06F2212/00; G06F2212/65; G06F2212/652; Y; Y02; Y02D; Y02D10/00

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 172 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated to a physical address at the page unit, comprising: a buffer memory including a plurality of banks each of which includes a plurality of memory fields, each of said plurality of memory fields including virtual page information representing a virtual page, physical page information corresponding to the virtual page information and size information for the virtual page; a selection circuit which selects a memory field from each of said plurality of banks in accordance with first logical address data, wherein the first logical address data comprises predetermined bits of the logical address; and a comparing circuit which compares the virtual page information in the selected memory field with second logical address data, wherein the second logical address data comprises bits of the logical address, wherein the bits of the logical address are determined in response to the size information in the selected memory field.
Claim 2
Dependent Claim 172 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated to a physical address at the page unit, comprising: a buffer memory including a plurality of banks each of which includes a plurality of memory fields, each of said plurality of memory fields including virtual page information representing a virtual page, physical page information corresponding to the virtual page information and size information for the virtual page; a selection circuit which selects a memory field from each of said plurality of banks in accordance with first logical address data, wherein the first logical address data comprises predetermined bits of the logical address; and a comparing circuit which compares the virtual page information in the selected memory field with second logical address data, wherein the second logical address data comprises bits of the logical address, wherein the bits of the logical address are determined in response to the size information in the selected memory field.
Claim 3
Dependent Claim 55 words
A data processor according to claim 1, wherein a size of said virtual page is set between a minimum size thereof and a maximum size thereof, and the maximum size is N 2 times the minimum size, and wherein the number of the banks of said buffer memory is no less than N 2 .
Claim 4
Dependent Claim 67 words
A data processor according to claim 2, wherein the first logical address data for selecting the memory field from each of the banks have address locations fixed in the logical address, and wherein the fixed address locations are determined by the address locations in the logical address by which the memory field is selected from each of the banks when the virtual page has the maximum size.
Claim 5
Dependent Claim 107 words
A data processor according to claim 3, wherein the virtual page information stored in the memory field includes a field for storing first bits to be compared with the second logical address data if the virtual page has the maximum size, and a field for storing second bits which are not compared with the second logical address data if the virtual page has the maximum size and which are compared with the logical address data if the virtual page has the minimum size, and wherein whether or not the comparison for said second bits is reflected a hit decision is determined in accordance with the size information.
Claim 6
Dependent Claim 146 words
A data processor for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual pare number; means for providing a control signal; and an index address generating circuit which receives at least a portion of the logical address and the control signal, wherein the index address generating circuit generates an index address for selecting a memory field from each of the plurality of banks, and wherein the index address generating circuit generates a different index address in accordance with the control signal.
Claim 7
Dependent Claim 146 words
A data processor for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual pare number; means for providing a control signal; and an index address generating circuit which receives at least a portion of the logical address and the control signal, wherein the index address generating circuit generates an index address for selecting a memory field from each of the plurality of banks, and wherein the index address generating circuit generates a different index address in accordance with the control signal.
Claim 8
Dependent Claim 63 words
A data processor according to claim 5, wherein said index address generating circuit includes a first circuit modifying said portion of the logical address based on information corresponding to a process using said logical address, and a second circuit providing said portion of the logical address or an output from the first circuit as the index address in accordance with the control signal.
Claim 9
Dependent Claim 139 words
A data processor including a central processing unit, and for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address from the central processing unit is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual page number; and a designating circuit which is accessed by the central processing unit and which designates a bank including a memory field in which information is to be replaced, wherein the bank in which information is to be replaced is determined by software executed by the central processing unit.
Claim 10
Dependent Claim 139 words
A data processor including a central processing unit, and for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address from the central processing unit is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual page number; and a designating circuit which is accessed by the central processing unit and which designates a bank including a memory field in which information is to be replaced, wherein the bank in which information is to be replaced is determined by software executed by the central processing unit.
Claim 11
Dependent Claim 41 words
A data processor according to claim 7, wherein the designating circuit includes a register in which information for designating the bank in which information is to be replaced is set by an execution of the software by said central processing unit.
Claim 12
Dependent Claim 138 words
A data processor for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address from the central processing unit is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual page number; a circuit designating one of the plurality of banks, which includes a memory field having information to be replaced according to a predetermined rule; and a central processing unit coupled to the circuit and changing the designation of said bank by said circuit in response to the central processing unit executing predetermined software.
Claim 13
Dependent Claim 138 words
A data processor for supporting a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address from the central processing unit is translated to a physical address at the page unit, comprising: a set associative type cache memory having a plurality of banks each having a plurality of memory fields each of which includes a virtual page number for indicating a virtual page and a physical page number corresponding to the virtual page number; a circuit designating one of the plurality of banks, which includes a memory field having information to be replaced according to a predetermined rule; and a central processing unit coupled to the circuit and changing the designation of said bank by said circuit in response to the central processing unit executing predetermined software.
Claim 14
Dependent Claim 129 words
A data processor according to claim 9, wherein the designating circuit includes a counter circuit and wherein said predetermined rule for designating the bank having information to be replaced includes incrementing said counter circuit in response to a request for replacing information of the set associative type cache memory, setting the incremented result as the bank having information to be replaced if each of the banks stores effective data, and setting said counter circuit with a bank which stores no effective data as the bank having information to be replaced if the set associative type cache memory includes a bank storing no effective data; and wherein the central processing unit changes the counter circuit in response to executing the predetermined software, wherein the designation of said bank is changed.
Claim 15
Dependent Claim 160 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages, a logical address is translated to a physical address at the virtual page unit, and a plurality of processes are executed using the virtual memory function, comprising: a multiple virtual mode in which the logical address is modified according to a process to be executed and each of said plurality of processes is capable of using an address over the logical address space; a single virtual mode in which said logical address is unmodified according to a process to be executed, wherein each of the plurality of processes is capable of using an address in an address space assigned thereto within the logical address space and a portion of said logical address space is exclusively assigned among the plurality of processes to be executed; and a selector selecting either said multiple virtual mode or said single virtual mode.
Claim 16
Dependent Claim 160 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages, a logical address is translated to a physical address at the virtual page unit, and a plurality of processes are executed using the virtual memory function, comprising: a multiple virtual mode in which the logical address is modified according to a process to be executed and each of said plurality of processes is capable of using an address over the logical address space; a single virtual mode in which said logical address is unmodified according to a process to be executed, wherein each of the plurality of processes is capable of using an address in an address space assigned thereto within the logical address space and a portion of said logical address space is exclusively assigned among the plurality of processes to be executed; and a selector selecting either said multiple virtual mode or said single virtual mode.
Claim 17
Dependent Claim 40 words
A data processor according to claim 11, wherein each of the plurality of processes is represented by a process number, and the process number in said multiple virtual mode is used as memory protecting information in said single virtual mode.
Claim 18
Dependent Claim 42 words
A data processor according to claim 11, further comprising: a register storing information to select either said multiple virtual mode or said single virtual mode; and a central processing unit setting the information in said register in response to executing predetermined software.
Claim 19
Dependent Claim 337 words
A data processor having a virtual memory function in which a logical address space of a central processing unit is divided into a plurality of virtual pages, a logical address is translated to a physical address at the virtual page unit, and a plurality of processes are executed using the virtual memory function, comprising: mode information designating an operation mode of the central processing unit, wherein the central processing unit operates in either a privileged mode or a user mode; control information designating a virtual memory mode which is either a multiple virtual mode or a single virtual mode in which each of said plurality of processes is capable of using an address over the logical address space in the multiple virtual mode and a logical address is modified according to a process using the logical address, and in which each of the plurality of processes is exclusively assigned portions of the logical address space in the single virtual mode and each of the plurality of processes is capable of using an address in an address portion assigned thereto without modifying the address by the process; a translation lookaside buffer accessed by using at least a portion of the logical address as an index address, and having a plurality of fields each of which includes process information for representing a process, a virtual page information representing a virtual page corresponding to said process, physical page information corresponding to the virtual page information, and share information indicating whether or not the virtual page corresponding to said process is shared with another process; and a control circuit for said translation lookaside buffer, wherein the control circuit uses the process information in a hit decision of the translation lookaside buffer if said share information designates a non-share condition, and wherein the control circuit uses said process information as memory protection information if said mode information represents the user mode of the central processing unit, the control information represents the single virtual mode and said share information represents the non-share condition.
Claim 20
Dependent Claim 337 words
A data processor having a virtual memory function in which a logical address space of a central processing unit is divided into a plurality of virtual pages, a logical address is translated to a physical address at the virtual page unit, and a plurality of processes are executed using the virtual memory function, comprising: mode information designating an operation mode of the central processing unit, wherein the central processing unit operates in either a privileged mode or a user mode; control information designating a virtual memory mode which is either a multiple virtual mode or a single virtual mode in which each of said plurality of processes is capable of using an address over the logical address space in the multiple virtual mode and a logical address is modified according to a process using the logical address, and in which each of the plurality of processes is exclusively assigned portions of the logical address space in the single virtual mode and each of the plurality of processes is capable of using an address in an address portion assigned thereto without modifying the address by the process; a translation lookaside buffer accessed by using at least a portion of the logical address as an index address, and having a plurality of fields each of which includes process information for representing a process, a virtual page information representing a virtual page corresponding to said process, physical page information corresponding to the virtual page information, and share information indicating whether or not the virtual page corresponding to said process is shared with another process; and a control circuit for said translation lookaside buffer, wherein the control circuit uses the process information in a hit decision of the translation lookaside buffer if said share information designates a non-share condition, and wherein the control circuit uses said process information as memory protection information if said mode information represents the user mode of the central processing unit, the control information represents the single virtual mode and said share information represents the non-share condition.
Claim 21
Dependent Claim 203 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, comprising: a processing unit generating the logical address which includes an index address, a comparison address and an offset address; and a translation lookaside buffer translating the logical address generated by said processing unit to a physical address, wherein said translation lookaside buffer includes: a plurality of banks each having a plurality of entries each of which includes a virtual page number indicating a virtual page, size information indicating a size of said virtual page, and a physical page number corresponding to said virtual page number; a selector selecting an entry designated by said index address from each of said plurality of banks in response to said index address; and a comparator comparing the virtual page number from the selected entry with said comparison address, wherein a bit number of the virtual page number to be compared is decided by the size information in the selected entry, and wherein said physical address is generated from said physical page number in said selected entry and said offset address.
Claim 22
Dependent Claim 203 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, comprising: a processing unit generating the logical address which includes an index address, a comparison address and an offset address; and a translation lookaside buffer translating the logical address generated by said processing unit to a physical address, wherein said translation lookaside buffer includes: a plurality of banks each having a plurality of entries each of which includes a virtual page number indicating a virtual page, size information indicating a size of said virtual page, and a physical page number corresponding to said virtual page number; a selector selecting an entry designated by said index address from each of said plurality of banks in response to said index address; and a comparator comparing the virtual page number from the selected entry with said comparison address, wherein a bit number of the virtual page number to be compared is decided by the size information in the selected entry, and wherein said physical address is generated from said physical page number in said selected entry and said offset address.
Claim 23
Dependent Claim 21 words
A data processor according to claim 15, wherein said processor and said translation lookaside buffer are formed on a semiconductor chip.
Claim 24
Dependent Claim 45 words
A data processor according to claim 16, wherein a first size of the virtual page is the N-th power of two of a second size of the virtual page, and wherein a number of said banks is no more than said N-th power of two.
Claim 25
Dependent Claim 109 words
A data processor according to claim 16, wherein the data processor executes a plurality of processes using the virtual memory function, the data processor further comprising: a first control bit settable by said processor, and a register for outputting a process number to indicate a process among the plurality of processes, and wherein said selector modifies said index address with a portion of said process number and selects an entry by using the modified index address if said first control bit is set in a first status, and said selector selects an entry by using said index address if said first control bit is set in a second status.
Claim 26
Dependent Claim 49 words
A data processor according to claim 18, wherein said selector includes an exclusive logical circuit receiving said index address and the portion of said process number and a decoder decoding either an output of said exclusive logical circuit or said index address in accordance with said first control bit.
Claim 27
Dependent Claim 28 words
A data processor according to claim 18, wherein said each of plurality of entries includes a process number to be compared with said process number from the register.
Claim 28
Dependent Claim 93 words
A data processor according to claim 16, further comprising: a first control bit settable by said processor, and a second selector designating one of said plurality of banks in accordance with said first control bit if no effective information is stored in one of the entries selected by said index address, wherein a physical page number is written in the entry which is designated by said index address and which is included in the bank designated by the second selector, wherein the information in said entry is replaced in said translation lookaside buffer.
Claim 29
Dependent Claim 127 words
A data processor according to claim 16, wherein the data processor executes a plurality of processes using the virtual memory function, further comprising a register storing a process number for specifying a process among the plurality of processes, wherein each of the plurality of entries includes a process field for storing a process number to specify a process, and a share field for storing share information indicating whether or not a virtual page indicated by a virtual page number stored in the entry is shared among the plurality of processes, and wherein it is decided by said share information whether a comparison between the process number stored in said register and the process number stored in said process field is executed in the comparison by said comparator.
Claim 30
Dependent Claim 243 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, and which executes a plurality of processes under the virtual memory function, comprising: a processing unit generating the logical address which comprises an index address, a comparison address and an offset address; a circuit outputting a process number to specify a process among the plurality of processes; a circuit settable by said processing unit and outputting index information for specifying an index; a translation lookaside buffer which translates the logical address generated by said processing unit to a physical address, and which includes: a plurality of banks each having a plurality of entries each of which includes a virtual page number for indicating a virtual page, and a physical page number corresponding to said virtual page number; a selector which selects either said index address in the logical address or an index address which is obtained by modifying said index address in the logical address by said process number, in accordance with said index information, and which selects an entry designated by the selected index address from each of said plurality of banks; and a comparator comparing a virtual page number from the selected entry with said comparison address, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 31
Dependent Claim 243 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, and which executes a plurality of processes under the virtual memory function, comprising: a processing unit generating the logical address which comprises an index address, a comparison address and an offset address; a circuit outputting a process number to specify a process among the plurality of processes; a circuit settable by said processing unit and outputting index information for specifying an index; a translation lookaside buffer which translates the logical address generated by said processing unit to a physical address, and which includes: a plurality of banks each having a plurality of entries each of which includes a virtual page number for indicating a virtual page, and a physical page number corresponding to said virtual page number; a selector which selects either said index address in the logical address or an index address which is obtained by modifying said index address in the logical address by said process number, in accordance with said index information, and which selects an entry designated by the selected index address from each of said plurality of banks; and a comparator comparing a virtual page number from the selected entry with said comparison address, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 32
Dependent Claim 17 words
A data processor according to claim 23, wherein said data processor is formed on a semiconductor chip.
Claim 33
Dependent Claim 219 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, comprising: a processing unit for generating the logical address which comprises an index address, a comparison address and an offset address; a bank designating circuit settable by said processing unit; a translation lookaside buffer which translates said logical address generated by said processing unit a physical address, and which includes: a plurality of banks each having a plurality of entries each of which comprises a virtual page number for representing the virtual page, and a physical page number corresponding to said virtual page number; a selector selecting an entry designated by said index address from each of said plurality of banks in response to said index address; a comparator comparing a virtual page number from the selected entry with said comparison address; and a bank selector designating a bank which is designated by said bank designation circuit to execute a replacement of an entry if said comparator indicates that a virtual page number corresponding to said comparison address is not stored in the selected entry, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 34
Dependent Claim 219 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, comprising: a processing unit for generating the logical address which comprises an index address, a comparison address and an offset address; a bank designating circuit settable by said processing unit; a translation lookaside buffer which translates said logical address generated by said processing unit a physical address, and which includes: a plurality of banks each having a plurality of entries each of which comprises a virtual page number for representing the virtual page, and a physical page number corresponding to said virtual page number; a selector selecting an entry designated by said index address from each of said plurality of banks in response to said index address; a comparator comparing a virtual page number from the selected entry with said comparison address; and a bank selector designating a bank which is designated by said bank designation circuit to execute a replacement of an entry if said comparator indicates that a virtual page number corresponding to said comparison address is not stored in the selected entry, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 35
Dependent Claim 17 words
A data processor according to claim 25, wherein said data processor is formed on a semiconductor chip.
Claim 36
Dependent Claim 238 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, and which executes a plurality of processes, comprising: a processing unit for generating the logical address having an index address, a comparison address and an offset address; a register settable with a process number for specifying a process among the plurality of processes by the processing unit; and a translation lookaside buffer which translates the logical address generated by said processing unit to a physical address and which includes: a plurality of entries each of which stores a virtual page number for representing the virtual page, a physical page number corresponding to said virtual page number, a process number for specifying a process, and common information indicating whether or not the virtual page represented by said virtual page number is shared among processes; a selector selecting an entry designated by said index address; and a comparator which compares a virtual page number from the selected entry with said comparison address, wherein it is determined by the common information whether or not a comparison between the process number stored in said register and the process number in the selected entry by the comparator is executed, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 37
Dependent Claim 238 words
A data processor having a virtual memory function in which a logical address space is divided into a plurality of virtual pages and a logical address is translated at the page unit to a physical address, and which executes a plurality of processes, comprising: a processing unit for generating the logical address having an index address, a comparison address and an offset address; a register settable with a process number for specifying a process among the plurality of processes by the processing unit; and a translation lookaside buffer which translates the logical address generated by said processing unit to a physical address and which includes: a plurality of entries each of which stores a virtual page number for representing the virtual page, a physical page number corresponding to said virtual page number, a process number for specifying a process, and common information indicating whether or not the virtual page represented by said virtual page number is shared among processes; a selector selecting an entry designated by said index address; and a comparator which compares a virtual page number from the selected entry with said comparison address, wherein it is determined by the common information whether or not a comparison between the process number stored in said register and the process number in the selected entry by the comparator is executed, wherein said physical address is generated from said physical page number in said entry and said offset address.
Claim 38
Dependent Claim 17 words
A data processor according to claim 27, wherein said data processor is formed on a semiconductor chip.
Claim 39
Dependent Claim 64 words
A data processor according to claim 1, wherein a size of the virtual page is settable to a maximum size thereof and a minimum size thereof, and wherein the relationship among the number of banks, the maximum size and the minimum size is represented by N≧Smax/Smin, wherein N represents the number of banks, Smax represents the maximum size, and Smin represents the minimum size.
Claim 40
Dependent Claim 64 words
A data processor according to claim 16, wherein a size of the virtual page is settable to a first size thereof and a second size thereof, and wherein the relationship among a number of banks, the first size and the second size is represented by N≧S1st/S2nd, wherein N represents the number of banks, S1st represents the first size, and S2nd represents the second size.

References Cited (Backward Citations)

US4084230A Cited
US4525778A Cited
US5123101A Cited
US5222222A Cited
US5263140A Cited
US5465337A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag