BACKGROUND
Field of the Invention
[0001] The present invention generally relates to address translation, and particularly
relates to translating virtual addresses that create memory page boundary crossing
conditions.
Relevant Background
[0002] Virtual memory is a memory management technique whereby possibly non-contiguous physical
memory (physical address space) is presented to a process (software) as contiguous
memory (virtual address space). Even though allocated physical memory is not always
sequentially organized (or even in the same media, e.g., SDRAM and ROM), processes
view memory as a linear sequence because they deal with a contiguous virtual address
space. Further, programs are not usually aware of how physical memory is allocated.
Instead, a processor or other device conventionally manages virtual memory allocation.
[0003] Memory management divides physical memory into pages (or segments) and provides a
mapping of virtual addresses onto the actual physical memory pages which is transparent
to processes accessing the memory. Processes view only the virtual address space while
the physical address space is where corresponding data actually reside in memory.
A processor conventionally maps the virtual address space onto a physical address
space using address translation. Address translation involves looking up a physical
address based on a given virtual address. A virtual address is conventionally divided
into at least two parts - a virtual page number and a page offset. The virtual page
number identifies a particular page of virtual memory. The page offset identifies
a desired region (or block) within the page.
[0004] A page table maintained in main memory conventionally stores a list of virtual page
numbers and corresponding physical page numbers. The page table is searched using
the virtual page number portion of a virtual address. If a virtual page number matches
an entry in the page table, the corresponding physical page number is retrieved from
the table. Otherwise, a page table error occurs. The retrieved physical page number,
along with the page offset, forms a physical address used to retrieve information
from memory. The page number identifies the proper page of physical memory. The desired
memory region within the page is then accessed using the page offset.
[0005] To improve performance, frequently accessed page table entries are stored locally
to a processor, e.g., in a Translation Lookaside Buffer (TLB). TLBs may support a
single level of local cache memory or multiple cache levels, e.g., level one instruction
and data caches and a level two cache. In any event, a TLB performs address translation
much the same way as a page table does. If a match occurs during a TLB lookup using
a virtual page number, the corresponding physical page number is retrieved from the
TLB and provided, with the page offset, to a physically-tagged cache. If the physical
address hits in the cache, the cache line corresponding to the physical address is
retrieved from the cache. Otherwise, a higher level cache lookup may occur.
[0006] Virtual memory enables programs to execute without requiring their entire address
space to be resident in physical memory. Thus, programs can be executed using less
physical memory than actually needed. In addition, virtual memory isolates programs
from each other because each program's virtual address space can be independently
mapped to one or more pages of physical memory allocated exclusively to that program.
Also, application programs are simplified in that they are not responsible for memory
management. However, certain types of memory accesses require additional address translation
processing to complete successfully.
[0007] For example, when a misaligned memory access occurs, the desired word is located
partly in one memory row and partly in another. If the two rows are allocated to different
memory pages, a page boundary crossing occurs. An instruction that references a region
in memory crossing a boundary between two memory pages is conventionally replicated
and executed in two parts. A first page piece of the replicated instruction completes
execution based on a physical address associated with the first memory page and a
second page piece of the replicated instruction completes execution based on an address
associated with the second memory page. Thus, the different memory pages are accessed
separately by replicating the instruction.
[0008] Multiple address translations are conventionally required to obtain the physical
memory addresses associated with the different memory pages. A first address translation
is performed to retrieve the physical address associated with the first memory page
and a second address translation is performed to retrieve the physical address associated
with the second memory page. The additional address translation processing required
for an instruction that creates a boundary crossing condition reduces processor performance
and increases power consumption, particularly if access to a page table maintained
in main memory is needed.
EP 0967553 describes a system in which an address converter decides which base address an entered
logical address belongs to for thereby determining the number of bits of data of one
word.
US 5,784,707 describes a computer system having virtual memory that can be mapped using multiple
page sizes onto logically addressable physical memory.
SUMMARY OF THE DISCLOSURE
[0009] According to the methods and apparatus taught herein, address translation performance
within a processor is improved by identifying virtual or physical addresses that cause
boundary crossings between different pages in memory. That is, an instruction is identified
if it will cause a misaligned memory access that also crosses a page boundary. When
such a condition is recognized, address translation information associated with both
memory pages is linked together and stored within the processor. The address translation
information associated with both pages may be obtained using a single address translation
responsive to the same page-crossing region in memory being subsequently accessed.
Thus, multiple address translations are avoided.
[0010] According to one embodiment of a processor, the processor comprises circuitry configured
to recognize an access to a region in memory crossing a page boundary between first
and second memory pages. The circuitry is also configured to link address translation
information associated with the first and second memory pages. Thus, responsive to
a subsequent access to the same memory region, the address translation information
associated with the first and second memory pages is retrievable based on a single
address translation.
[0011] When the same region in memory is subsequently accessed, the processor circuitry
recognizes the corresponding instruction and translates a virtual address presented
by the instruction into a physical address associated with the first memory page.
The circuitry retrieves a physical address associated with the second memory page
based on previously established information linking the virtual address to the physical
address associated with the second memory page. Thus, address translation information
associated with the first and second memory pages is retrieved based on a single address
translation.
[0012] Of course, the present invention is not limited to the above features and advantages.
Those skilled in the art will recognize additional features and advantages upon reading
the following detailed description, and upon viewing the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
[0013] Figure 1 is a block diagram illustrating an embodiment of a processor having circuitry
for tracking page boundary crossings during address translation.
[0014] Figure 2 is a block diagram illustrating one embodiment of the page crossing tracking
circuitry of Figure 1.
[0015] Figure 3 is a logic flow diagram illustrating an embodiment of program logic for
storing address translation information in the page crossing tracking circuitry of
Figure 1.
[0016] Figure 4 is a logic flow diagram illustrating an embodiment of program logic for
retrieving address translation information from the page crossing tracking circuitry
of Figure 1.
[0017] Figure 5 is a block diagram illustrating another embodiment of the page crossing
tracking circuitry of Figure 1.
DETAILED DESCRIPTION
[0018] Figure 1 illustrates an embodiment of a processor 10 including an instruction unit
12, execution units 14, data and instruction caches 16 and 18, a second-level cache
20 and a bus interface unit 22. The instruction unit 12 provides centralized control
of instruction flow to the execution units 14. The execution units 14 execute instructions
dispatched by the instruction unit 12, including loading and storing information in
the data cache 16. The data and instruction caches 16 and 18 store data and instructions,
respectively. The L2 cache 20 provides a high-speed memory buffer between the data
and instruction caches 16 and 18 and main memory external to the processor such as
DRAM 24 and/or one or more hard-disk-drives (HDDs) 26. The bus interface unit 22 provides
a mechanism for transferring data, instructions, addresses, and control signals between
the processor 10 and devices external to the processor such as peripherals 28 and
main memory.
[0019] Main memory is represented as virtual memory to processes running on the processor
10. That is, pages of main memory are allocated as virtual memory for use by processes
during program execution. Memory management divides physical memory into pages and
provides a mapping of virtual addresses onto the physical memory pages that is transparent
to processes accessing the memory. A page table (not shown) is maintained in main
memory for enabling mapping between virtual and physical memory addresses. A Memory
Management Unit (MMU) 30 or similar device included in the processor 10 maintains
frequently or recently referenced page table entries local to the processor 10 for
improving address translation performance.
[0020] To this end, a Translation Lookaside Buffer (TLB) 32 included in or associated with
the MMU 30 stores the most frequently or recently accessed page table entries. Address
translation is performed locally within the processor 10 by the TLB 32. If a TLB entry
matches a given virtual page number, the corresponding physical page number is provided
by the TLB 32. Otherwise, higher-level address translation is performed, usually by
operating system software, via page tables maintained in main memory. A page crossing
tracker 34 included in or associated with the MMU 30 improves address translation
performance by reducing the number of address translations performed to accommodate
a misaligned memory access that crosses a memory page boundary.
[0021] The page crossing tracker 34 stores address translation information associated with
one or more virtual or physical addresses that create a page boundary crossing condition.
That is, if an instruction executed by the processor 10 references a memory region
crossing a boundary between two physical memory pages, the page crossing tracker 34
stores address translation information associated with the second memory page, e.g.,
a physical address or page number identifying the second memory page and a link to
the virtual address. This way, if a subsequent instruction references the same address,
the page crossing tracker 34 is able to recognize the address and provide the corresponding
physical address information. Accordingly, the TLB 32 performs only one address translation
to retrieve the physical page number associated with the first memory page. The physical
page number associated with the second memory page is non-translationally retrieved
from the page crossing tracker 34. That is, the physical page number associated with
the second memory page is retrieved from the page crossing tracker 34 instead of having
to perform a second address translation. The instruction is replicated and executed
in two parts based on the respective physical addresses. The instruction may be replicated
multiple times if the instruction causes several cache lines to be crossed in one
of the caches 16, 18, 22.
[0022] Figure 2 illustrates one embodiment of the page crossing tracker 34 and several stages
of a load-store unit (i.e., one of the execution units 14) included in the processor
10. According to this embodiment, the page crossing tracker 34 comprises a register
for storing address translation information associated with an address that creates
a page boundary crossing condition. Alternatively, the page crossing tracker 34 may
be a table having multiple entries. Either way, the page crossing tracker 34 reduces
address translation processing by storing address translation information associated
with at least one virtual or physical address that causes a page boundary crossing.
[0023] Operation of the page crossing tracker 34 is next described with reference to the
program logic of Figure 3 and a virtual address presented by an instruction that does
not initially match any entries in the TLB 32. As such, higher level address translation
is performed to obtain the physical address corresponding to the virtual address.
In more detail, the virtual address may comprise a virtual page number and an offset.
The virtual page number identifies a particular virtual memory page while the page
offset identifies a location within the page. Because no matching TLB entry initially
exists in this example, a first-level address translation stage 36 indicates higher-level
address translation is needed, e.g., as illustrated by Block 100 of Figure 3. A higher-level
address translation stage 38 requests translation of the virtual address, e.g., by
accessing a higher-level TLB (not shown) included in the processor 10 or the page
table maintained in main memory. Either way, a physical address associated with the
virtual address is eventually obtained.
[0024] The address translation information is stored in a TLB entry, e.g., as illustrated
by Block 102 of Figure 3. This way, the address translation information is more readily
available in the event the same virtual address is subsequently requested. In one
embodiment, a physical address select stage 40 such as multiplexer circuitry or any
other stage at which the virtual address is known also determines whether the virtual
address translates to a physical memory region that crosses a boundary between two
pages, e.g., as illustrated by Block 104 of Figure 3. For example, the page offset
portion of the virtual address is compared with the memory page size settings to determine
whether a page boundary crossing will occur. If the address translates to a memory
region located within a single page of memory, instruction execution is completed
based on the translated physical address, e.g., as illustrated by Block 106 of Figure
3. For example, a cache access stage 42 determines whether the data cache 16 or L2
cache 20 contains the line tagged by the physical address, and if not, retrieves it
from external memory.
[0025] However, if the virtual address references a memory region spanning multiple memory
pages, an instruction replication stage 44 replicates the instruction, e.g., as illustrated
by Block 108 of Figure 3. For example, if the address references a quadword having
four bytes located in one physical memory page and four bytes located in another page,
the previously translated physical address is used to retrieve the four bytes residing
in the first memory page. To retrieve the four bytes located in the second memory
page, a physical address identifying the second page is obtained by the higher-level
address translation stage 38, e.g., as illustrated by Block 110 of Figure 3. The first
page piece of the replicated instruction completes execution based on the physical
address identifying the first memory page, e.g., as illustrated by Block 112 of Figure
3. The second page piece of the replicated instruction completes execution based on
the physical address identifying the second memory page, e.g., as illustrated by Block
114 of Figure 3. A write back stage 46 ensures proper storage of instruction execution
results.
[0026] Because a page boundary crossing was detected, the address translation information
obtained for the second memory page is stored for subsequent use. However, instead
of storing the information in a different TLB entry, it is stored in a physical address
field 48 of the page crossing tracker 34, e.g., as illustrated by Block 116 of Figure
3. In addition, an indicator value is stored in an indicator field 50. The indicator
value links the page crossing tracker entry containing the second page's address translation
information to the TLB entry containing the first page's address translation information.
[0027] In one embodiment, the indicator field 50 stores the index value of the TLB entry
containing the address translation information associated with the first memory page.
In another embodiment, the indicator field 50 stores the physical address or page
number associated with the first memory page. In yet another embodiment, the indicator
field 50 stores the virtual address that creates the boundary crossing condition.
Those of skill in the art will readily recognize that a broad variety of values could
be stored in the indicator field 50 to link the physical address information 48 with
the TLB entry associated with the first memory page. Further, the instruction replication
stage 44 may identify page boundary crossings instead of the physical address select
stage 40, e.g., by identifying physical addresses that cause page boundary crossings.
Regardless, if the same region in memory is subsequently accessed, the page crossing
tracker 34 recognizes the boundary crossing condition by examining the indicator field
50. In response, the tracker 34 provides address translation information associated
with the second page.
[0028] Operation of the page crossing tracker 34 is described next with reference to the
program logic of Figure 4 and a subsequent instruction that presents the same virtual
address that caused the boundary crossing condition previously discussed. Because
the TLB 32 contains a matching entry in this example, the physical address or page
number associated with the virtual address is provided by the TLB 32, e.g., as illustrated
by Block 200 of Figure 4. The physical address select stage 40 determines whether
the virtual address references a region in memory that crosses a page boundary, e.g.,
as illustrated by Block 202 of Figure 4. Alternatively, the instruction replication
stage 44 determines whether the corresponding physical address causes a page boundary
crossing condition. Regardless, if a boundary crossing condition is not detected,
the instruction completes execution based on the physical address information provided
by the TLB 32, e.g., as illustrated by Block 204 of Figure 4.
[0029] However, in the present example, the virtual address is known to cause a page boundary
crossing between first and second memory pages. Thus, the instruction is replicated
as previously described, e.g., as illustrated by Block 206 of Figure 4. Further, the
indicator field 50 of the page crossing tracker 34 is examined to determine whether
a link has been formed with the virtual address. In one embodiment, the matching TLB
entry index is compared to one or more values stored in the indicator field 50. In
another embodiment, the virtual address or corresponding physical address (or page
number) provided by the TLB 32 is compared to one or more address values stored in
the indicator field 50.
[0030] Regardless, the information stored in the indicator field 50 indicates whether the
tracker 34 contains the desired physical address information. Unless a valid field
52 indicates the entry is invalid, the physical address information associated with
the second page is retrieved from the page crossing tracker 34, e.g., as illustrated
by Block 208 of Figure 4. The valid field 52 indicates invalidity when the corresponding
entry in the TLB is invalidated.
[0031] A first page piece of the replicated instruction completes execution based on the
physical address identifying the first memory page as provided by the TLB 32, e.g.,
as illustrated by Block 210 of Figure 4. A second page piece of the replicated instruction
completes execution based on the physical address identifying the second memory page
as retrieved from the page crossing tracker 34, e.g., as illustrated by Block 212
of Figure 4. Circuitry (not shown) prevents a subsequent address translation from
occurring when the page crossing tracker 34 contains address translation information
for the second page. Thus, only a single address translation is performed when the
page crossing tracker 34 recognizes a page boundary crossing condition.
[0032] Figure 5 illustrates another embodiment of the page crossing tracker 34. According
to this embodiment, the tracker 34 is implemented as part of the TLB 32. Each entry
in the TLB 32 has a valid field 54, indicator field 56, index 58, tag field 60 and
two physical address fields 62 and 64. The tag field 60 stores the virtual address
(or page number) of those virtual addresses whose physical address information is
maintained by the TLB 32. As such, the tag field 60 is searched during a TLB access
to determine whether a record matching a given virtual address is stored in the TLB
32.
[0033] The first physical address field 62 contains physical address information such as
the complete address or physical page number corresponding to each virtual address
having a record maintained by the TLB 32. If a particular virtual address is known
to cause a boundary crossing between two memory pages, then the second physical address
field 64 contains physical address information associated with the second memory page.
The indicator field 56 contains one or more bits linking the two physical address
fields 62 and 64 when the corresponding TLB entry is associated with a virtual address
that creates a boundary crossing condition.
[0034] Operation of the page crossing tracker 34 implemented as part of the TLB 32 is next
described with reference to a virtual address presented by an instruction that does
not initially match any entries in the TLB 32. A higher-level address translation
is performed to obtain the physical address corresponding to the virtual address,
e.g., as illustrated by Block 100 of Figure 3. The physical address field 62 in the
corresponding TLB entry is updated with the translation results, e.g., as illustrated
by Block 102 of Figure 3. If the physical address select stage 40 determines the virtual
address will cause a boundary crossing between two memory pages during memory access,
a second higher-level address translation is performed. Alternatively, the instruction
replication stage 44 may detect the page boundary crossing condition based on the
corresponding physical address. Regardless, the physical address identifying the second
memory page is obtained during the second higher-level address translation, e.g.,
as illustrated by Block 110 of Figure 3. This way, physical address information for
both pages is available for completing instruction execution.
[0035] The instruction is replicated and execution is completed using the two physical memory
addresses as previously described, e.g., as illustrated by Blocks 108, 112 and 114
of Figure 3. In addition, the physical address information associated with the second
memory page is stored in the same TLB entry containing the physical address information
associated with the first page, e.g., as illustrated by Block 116 of Figure 3. That
is, in the same TLB entry, physical address information associated with the first
page is stored in first address field 62 and physical address information associated
with the second page is stored in second address field 64. The indicator field 56
in the TLB entry is set to indicate the two physical addresses are linked and associated
with a virtual address that creates a page boundary crossing condition. This way,
if a subsequent instruction references the same virtual or physical address, only
a single address translation is needed to obtain the physical address information
associated with the first and second memory pages.
[0036] Operation of the page crossing tracker 34 implemented as part of the TLB 32 is next
described with reference to a subsequent instruction accessing the same virtual address
that created the boundary crossing condition previously described. When the TLB 32
is accessed, a matching entry is identified by comparing the virtual address to the
tag values stored in the TLB 32, e.g., as illustrated by Block 200 of Figure 4. In
the present example, the virtual address is known to cause a page boundary crossing
between first and second memory pages. Thus, the instruction is replicated as previously
described, e.g., as illustrated by Block 206 of Figure 4. Further, the first address
field 62 of the matching TLB entry provides the physical address information associated
with the first memory page. Execution of a first page piece of the replicated instruction
completes based on the physical address information obtained from the first address
field 62, e.g., as illustrated by Block 210 of Figure 4.
[0037] In addition, the indicator field 56 in the matching TLB entry indicates that the
first and second physical address fields 62 and 64 are linked. Accordingly, the physical
address information stored in the second address field 64 is retrieved, e.g., as illustrated
by Block 208 of Figure 4. The physical address information retrieved from the second
address field 64 identifies the second memory page. Execution of a second page piece
of the replicated instruction completes based on the physical address information
obtained from the second address field 64, e.g., as illustrated by Block 212 of Figure
4. This way, only a single address translation is performed during execution of the
subsequent instruction.
[0038] If the valid field 54 indicates the TLB entry is invalid, address translation is
not performed and the higher-level address translation stage 38 obtains the necessary
physical addresses as previously described, e.g., as illustrated by Blocks 100 and
110 of Figure 3. Further, the indicator field 56 may also indicate the link between
two memory pages is invalid responsive to an architected register that affects address
translation being updated or a TLB entry being overwritten. When an invalid page crossing
link is encountered, the address translation information associated with the linked
page is not used. Instead, a subsequent address translation is performed.
[0039] With the above range of variations and applications in mind, it should be understood
that the present invention is not limited by the foregoing description, nor is it
limited by the accompanying drawings. Instead, the present invention is limited only
by the following claims and their legal equivalents.
1. A method of handling a misaligned memory access in a processor, comprising:
recognizing (104) an access to a region in memory crossing a page boundary between
first and second memory pages; and
linking (116) address translation information associated with the first and second
memory pages, wherein responsive to a subsequent access to the same region in memory,
the address translation information associated with the first and second memory pages
is retrievable based on a single address translation.
2. The method of claim 1, wherein recognizing (104) the access comprises identifying
an address configured to cause the page boundary crossing during a memory access.
3. The method of claim 2, wherein linking (116) address translation information associated
with the first and second memory pages comprises linking the address to the address
translation information associated with the second memory page.
4. The method of claim 2, further comprising replicating an instruction that presented
the address, wherein execution of the instruction completes (112, 210) based on a
physical address associated with the first memory page and execution of the replicated
instruction completes (114, 212) based on a physical address associated with the second
memory page.
5. The method of claim 1, wherein linking (116) address translation information associated
with the first and second memory pages comprises:
storing (102) virtual address information and physical address information associated
with the first memory page in a translation lookaside buffer entry; and
linking the translation lookaside buffer entry to physical address information associated
with the second memory page.
6. The method of claim 5, wherein linking the translation lookaside buffer entry to physical
address information associated with the second memory page comprises storing (116)
the physical address information associated with the second memory page and information
identifying the translation lookaside buffer entry.
7. The method of claim 5, wherein linking (116) the translation lookaside buffer entry
to physical address information associated with the second memory page comprises:
storing the virtual and physical address information associated with the first memory
page and the physical address information associated with the second memory page in
the translation lookaside buffer entry; and
setting one or more bits in the translation lookaside buffer entry for indicating
a virtual address associated with the first memory page caused the page boundary crossing.
8. The method of claim 1, further comprising breaking the link between the address translation
information associated with the first and second memory pages.
9. The method of claim 8, wherein breaking the link comprises invalidating information
linking physical address information associated with the second memory page to virtual
address information associated with the first memory page.
10. A processor, comprising circuitry configured to carry out the method of any of claims
1 to 9.
1. Ein Verfahren zum Handhaben eines fehlausgerichteten Speicherzugriffs in einem Prozessor,
wobei das Verfahren folgende Schritte aufweist:
Erkennen (104) eines Zugriffs auf einen Bereich im Speicher, der eine Seitengrenze
zwischen ersten und zweiten Speicherseiten überschreitet, und
Verknüpfen (116) von Adressübersetzungsinformationen, die mit den ersten und zweiten
Speicherseiten assozüert sind, wobei in Antwort auf einen folgenden Zugriff auf denselben
Bereich im Speicher die mit den ersten und zweiten Speicherseiten assoziierten Adressübersetzungsinformationen
basierend auf einer einzelnen Adressübersetzung abrufbar ist.
2. Verfahren nach Anspruch 1, wobei das Erkennen (104) des Zugriffs das Identifizieren
einer Adresse aufweist, die konfiguriert ist, um eine Überschreitung der Seitengrenze
während eines Speicherzugriffs zu veranlassen.
3. Verfahren nach Anspruch 2, wobei das Verknüpfen (116) von mit den ersten und zweiten
Speicherseiten assoziierten Adressübersetzungsinformationen das Verknüpfen der Adresse
mit den mit der zweiten Speicherseite assoziierten Adressübersetzungsinformationen
aufweist.
4. Verfahren nach Anspruch 2, das weiterhin das Replizieren eines die Adresse angebenden
Befehls aufweist, wobei die Ausführung des Befehls basierend auf einer mit der ersten
Speicherseite assoziierten physikalischen Adresse erfolgt (112, 210) und wobei die
Ausführung des replizierten Befehls basierend auf einer mit der zweiten Speicherseite
assoziierte physikalischen Adresse erfolgt (114, 212).
5. Verfahren nach Anspruch 1, wobei das Verknüpfen (116) von mit den ersten und zweiten
Speicherseiten assoziierten Adressübersetzungsinformationen aufweist:
Speichern (102) von mit der ersten Speicherseite assoziierten virtuellen Adressinformationen
und physikalischen Adressinformationen in einem Übersetzungspuffereintrag, und
Verknüpfen des Übersetzungspuffereintrags mit physikalischen Adressinformationen,
die mit der zweiten Speicherseite assozüert sind.
6. Verfahren nach Anspruch 5, wobei das Verknüpfen des Übersetzungspuffereintrags mit
physikalischen Adressinformationen, die mit der zweiten Speicherseite assozüert sind,
das Speichern (116) der physikalischen Adressinformationen, die mit der zweiten Speicherseite
assozüert sind, und von Informationen, die den Übersetzungspuffereintrag identifizieren,
aufweist.
7. Verfahren nach Anspruch 5, wobei das Verknüpfen (116) des Übersetzungspuffereintrags
mit physikalischen Adressinformationen, die mit der zweiten Speicherseite assoziiert
sind, aufweist:
Speichern der virtuellen und physikalischen Adressinformationen, die mit der ersten
Speicherseite assoziiert sind, und der physikalischen Adressinformationen, die mit
der zweiten Speicherseite assoziiert sind, in dem Übersetzungspuffereintrag, und
Setzen eines oder mehrerer Bits in dem Übersetzungspuffereintrag, um eine mit der
ersten Speicherseite assoziierte virtuelle Adresse, die das Überschreiten der Seitengrenze
veranlasst hat, anzugeben.
8. Verfahren nach Anspruch 1, das weiterhin das Aufheben der Verknüpfung zwischen den
mit den ersten und zweiten Speicherseiten assoziierten Adressübersetzungsinformationen
aufweist.
9. Verfahren nach Anspruch 8, wobei das Aufheben der Verknüpfung das Ungültigmachen von
Informationen aufweist, die physikalische Adressinformationen, die mit der zweiten
Speicherseite assoziiert sind, mit virtuellen Adressinformationen, die mit der ersten
Speicherseite assoziiert sind, verknüpfen.
10. Ein Prozessor mit einem Schaltungsaufbau, der konfiguriert ist, um das Verfahren nach
einem der Ansprüche 1 bis 9 auszuführen.
1. Procédé de gestion d'un accès mémoire non aligné dans un processeur, comprenant :
la reconnaissance (104) d'un accès à une région de mémoire franchissant une frontière
de page entre des première et seconde pages de mémoire ; et
la liaison (116) d'informations de traduction d'adresse associées aux première et
seconde pages de mémoire, dans lequel en réponse à un accès subséquent à la même région
de mémoire, les informations de traduction d'adresse associées aux première et seconde
pages de mémoire sont récupérables sur la base d'une seule traduction d'adresse.
2. Procédé selon la revendication 1, dans lequel la reconnaissance (104) de l'accès comprend
l'identification d'une adresse configurée pour provoquer le franchissement de frontière
de page durant un accès mémoire.
3. Procédé selon la revendication 2, dans lequel la liaison (116) d'informations de traduction
d'adresse associées aux première et seconde pages de mémoire comprend la liaison de
l'adresse à l'information de traduction d'adresse associée à la seconde page de mémoire.
4. Procédé selon la revendication 2, comprenant en outre la duplication d'une instruction
qui a présenté l'adresse, dans lequel l'exécution de l'instruction s'accomplit (112,
210) sur la base d'une adresse physique associée à la première page de mémoire et
l'exécution de l'instruction dupliquée s'accomplit (114, 212) sur la base d'une adresse
physique associée à la seconde page de mémoire.
5. Procédé selon la revendication 1, dans lequel la liaison (116) d'informations de traduction
d'adresse associées aux première et seconde pages de mémoire comprend :
le stockage (102) d'une information d'adresse virtuelle et d'une information d'adresse
physique associées à la premiére page de mémoire dans une entrée de répertoire de
pages actives ; et
la liaison de l'entrée de répertoire de pages actives à une information d'adresse
physique associée à la seconde page de mémoire.
6. Procédé selon la revendication 5, dans lequel la liaison de l'entrée de répertoire
de pages actives à une information d'adresse physique associée à la seconde page de
mémoire comprend le stockage (116) de l'information d'adresse physique associée à
la seconde page de mémoire et d'une information identifiant l'entrée de répertoire
de pages actives.
7. Procédé selon la revendication 5, dans lequel la liaison (116) de l'entrée de répertoire
de pages actives à une information d'adresse physique associée à la seconde page de
mémoire comprend :
le stockage des inforntations d'adresses virtuelle et physique associées à la première
page de mémoire et de l'information d'adresse physique associée à la seconde page
de mémoire dans l'entrée de répertoire de pages actives ; et
le réglage d'un ou plusieurs bits dans l'entrée de répertoire de pages actives pour
indiquer une adresse virtuelle associée à la première page de mémoire provoquée par
le franchissement de frontière de page.
8. Procédé selon la revendication 1, comprenant en outre la rupture de la liaison entre
les informations de traduction d'adresse associées aux première et seconde pages de
mémoire.
9. Procédé selon la revendication 9, dans lequel la rupture de la liaison comprend l'invalidation
d'une information liant une information d'adresse physique associée à la seconde page
de mémoire à une information d'adresse virtuelle associée à la première page de mémoire.
10. Processeur, comprenant un circuit configuré pour mettre en ouvre le procédé selon
l'une quelconque des revendications 1 à 9.