WO2000065451A1 - System and method for flexible memory banking - Google Patents
System and method for flexible memory banking Download PDFInfo
- Publication number
- WO2000065451A1 WO2000065451A1 PCT/US2000/009548 US0009548W WO0065451A1 WO 2000065451 A1 WO2000065451 A1 WO 2000065451A1 US 0009548 W US0009548 W US 0009548W WO 0065451 A1 WO0065451 A1 WO 0065451A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- banked
- gate
- memory
- space
- address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
Definitions
- the present invention relates generally to memory systems, and more particularly to a system and method for flexible memory banking.
- microprocessors Since the advent of microprocessors, computers and processor-based systems have become an increasingly integral part of our contemporary society. In fact, the microprocessor has enabled a plethora of new consumer-related products that play an important role in the day-to-day lives of millions of people throughout the world. For example, the realization of low-cost, relatively fast, mass-producible processors has led to the introduction of affordable consumer items such as, for example, calculators, personal computers, wireless handsets, and electronic organizers, just to name a few. Additionally, the microprocessor has enabled other more conventional consumer products to experience an evolution in features and capabilities, beyond those originally anticipated. In fact, numerous consumer products developed or in existence prior to the proliferation of microprocessors have been enhanced or improved by the addition of one or more processors. Such products include, for example, automobiles, telephones, appliances, televisions, stereo components, and other consumer products. This evolution has not been limited to consumer products, but has also enabled the enhancement of commercial and military products as well.
- microprocessor has further fueled the advancement of microprocessor technologies.
- One area of advancement has been in the width of the address bus associated with microprocessors. Providing the contemporary processor with a wider address bus, allows the processor to address or access larger amounts of memory.
- memory banking With memory banking, two or more banks of memory share common address space. These banks are swapped in and out, such that the common address space actually addresses only one of the plurality of available memory banks.
- most contemporary memory banking techniques are somewhat rigid in their application.
- the present invention provides a system and method for providing enhanced memory banking.
- addressable memory space is divided into a plurality of sections, at least one of which is banked, and at least one of which is not banked.
- the code, data, and other routines for the system are allocated to banked and unbanked portions of the memory space based on system requirements. For example, in one implementation, system critical code is allocated to unbanked memory space, while non-critical code portions are allocated to banked memory space. As a result of this configuration, switching among a plurality of memory banks during system operation can be reduced or even minimized.
- addressable memory space is divided into at least three portions, non-banked RAM space, non-banked code space, and banked code space.
- the banked code space is referred to as overlay space, or an overlay region in this document.
- Non-banked RAM space can be used to implement RAM memory functions conventionally provided with processor systems. It is preferable that the RAM space be unbanked, as this space is generally used by the processor in real time to assist with instruction execution.
- non-banked code space be used to store what is referred to herein as system critical code.
- System critical code can include code, portions of code or data that are used by the processor and have a measure of time-criticality associated therewith.
- system critical code can include the real-time operating system, interrupt service routines, and code that is shared among or executed by or in conjunction with other applications in the system.
- System critical code can also or alternatively be defined as including code, portions of code or other data that would, if allocated to a banked code space, have to be duplicated in a plurality of banks reducing the need to perform frequent bank switching.
- Non-critical code allocated to banked memory space can include, for example, one or more applications, or portions of applications, that can be executed relatively independently of one another. As such, the execution of an application in one bank is less likely to result in the need to do a bank switch to continue or complete execution of that application.
- another aspect of the invention facilitates bank switching to allow code in one bank to efficiently call code in another bank and to return values from the called code.
- the invention determines whether the address is in banked space or unbanked space. If the address is in unbanked space, the presented address is the actual address, and this address is used to access the designated memory locations. If, on the other hand, the address is in banked memory space, the invention determines which of a plurality of banks are actually being addressed. Once this is determined, the actual address is converted or translated to address the appropriate banked memory location or locations. In alternative embodiments, the invention determines and drives which one of the memory banks is mapped into the overlay region.. In order to determine which bank is being addressed, in one embodiment a decoder is used to decode one or more bank-select lines. Additionally, the bank select lines can be used in the address translation.
- One advantage of the invention is that the allocation of critical and non-critical code to banked and unbanked memory space can reduce the need to switch between banks, thereby reducing the unwanted latencies associated with the bank switching.
- Figure 1 is a diagram illustrating a conventional memory banking scheme.
- Figure 2 is a diagram illustrating a conventional memory banking scheme used in a application of an 80186 chip set for CDMA wireless handsets.
- Figure 3 is a diagram illustrating an example architecture of a processor-based system using shared software in conjunction with software modules.
- Figure 4 is a diagram illustrating an example embodiment of a memory banking scheme according to one embodiment of the invention.
- Figure 5 is a block diagram illustrating an example implementation of the memory banking scheme according to one embodiment of the invention.
- Figure 6 is an operational flow diagram illustrating a process for selecting one of several banks according to one embodiment of the invention.
- Figure 7 is a schematic diagram illustrating an example implementation for bank select circuitry according to one embodiment of the invention.
- Figure 8 is an operational flow diagram illustrating a process for calling a function in an overlay bank according to one embodiment of the invention.
- the present invention is directed toward a system and method for providing an efficient, flexible memory banking scheme.
- the memory space is allocated in such a way that allows system-critical data or code to be maintained in a non-banked address space, while non-critical code portions are banked.
- FIG. 1 is a diagram illustrating a memory mapping for a conventional memory banking technique.
- address space 104 represents the real address space that can be seen by the processor. That is, real address space 104 is within the range of addressable space of the processor.
- this real address space can be on the order of one megabyte to several megabytes, depending on the width of the address bus of the processor.
- an actual physical size for the memory space is not critical. Therefore, the size for the memory space is illustrated as being some number N megabytes of addressable space, where N can be a whole number or a fraction.
- Extended address space 114 includes the memory portions that are banked. Because, in most applications, RAM space 108 cannot be banked, a portion 118 of extended address space 114 is not used. Extended address space 114 includes code space 116 that is typically the same size as code space 106. Therefore, by switching the memory bank from real address space 104 to extended address space 114, ROM space 116 is accessed instead of ROM space 106. Thus, within a given range of address capability the range of accessible memory has increased by N - M megabytes. More than one extended address space 114 can be provided, further extending the range of accessible memory.
- ROM space 106 is totally memory banked.
- routines are preferably readily accessible to enhance performance, these routines are duplicated within the banked code space.
- interrupt service routines and the real time operating system be present in order to enable the application to run, or at least to run efficiently. Therefore, when the code space is duplicated in banked memory, portions of the code, including interrupt service routines and real-time operating system, for example, are duplicated. This partially defeats the purpose of memory banking.
- this example implementation includes real address space 204 and extended address space 214.
- This example implementation of memory banking is implemented in a CDMA phone system using an 80186 processor that has the ability of addressing one megabyte of address space.
- real address space 204 is one megabyte in size, and is divided into 640 kilobytes of ROM code space 206, 256 kilobytes of RAM space 208, and 128 kilobytes of space reserved for future use.
- only ROM code space 206 is banked.
- extended address space 214 includes 640 kilobytes of ROM space 216, and 384 kilobytes of space 218 that is unused.
- the memory bank is switched such that code space 216 can be accessed.
- the memory banking is again switched such that the processor can access code space 206.
- an additional space is defined in the address space, in addition to the code space and the RAM space in the memory map.
- This additional space is referred to in this document as overlay space.
- overlay space it is this additional overlay space that is banked, thereby allowing the code space to remain unbanked.
- system critical code portions can be kept in unbanked memory.
- the RAM space can remain unbanked as well.
- the code space can include functions required for or shared among some or all banked applications, as well as important functions such as interrupt service routines and the real time operating system. This allows these code portions to be accessed at all times without the need for bank switching, regardless of which bank is currently active.
- This embodiment is especially useful in applications where any of several different applications may be called upon to be run by a processor.
- an electronic organizer capable of performing many functions, such as maintaining a list of personal contacts, maintaining a calendar, acting as a calculator, providing the ability to send email, and other similar functions commonly found in contemporary organizers.
- a multi-function wireless phone capable of performing these organizer-like functions in addition to real-time phone functions.
- the various applications or other non-critical code portions can be provided in banked memory that is mapped into or otherwise accessed via overlay space, and system critical functions can remain in unbanked code space.
- system-critical code portions can be defined as including those portions of code or data that are used for real-time operations, or that may be used as shared code or shared data among a plurality of other code portions, or that are part of the real-time operating system or the interrupt services routines.
- Another example might include utility functions such as text or graphics formatting code.
- non-critical code portions can include code portions that are relatively independent of other code portions, or are code portions for one application that are not frequently required by other applications or for real-time processing. In other words, it is preferred that code portions that would otherwise be duplicated in the plurality of banks for performance reasons be kept in the unbanked code portion of the memory space.
- FIG. 3 is a diagram illustrating a high-level architecture for a personal organizer.
- the multi-application organizer includes shared software 304 as well as application specific software, or software modules, 308, 309, 310, 311, 312.
- critical software 304 includes items such as the operating system for the electronic organizer, interrupt service routines, and other portions of the code that may be shared among any of the several applications 308 through 312.
- critical-code 304 can include code to enable user interfaces such as a keyboard 320, a display 322, sound processing 324, or other features and functions shared among the various applications.
- critical code 304 can also include code to enable communications, power control, or other realtime telephone features.
- the electronic organizer includes an e-mail application 308, a notepad application 309, a calculator application 310, a contact list application 311, and a calendar application 312.
- each application 308 through 312 contains its own set of code that is unique, or at least somewhat unique to that application.
- Other code used to run the application that may be shared by other applications or by all the applications can be provided as a part of critical code 304.
- running a particular application may require the processor to have access to code in both shared code 304 as well as the associated application 308 through 312.
- shared code 304 resides in code space
- various applications 308 through 312, or other applications reside in banked memory locations.
- the code in banked memory locations such as, for example, application code, can be switched, or banked in and out of the overlay space of the real address space. For example, as a new application is called upon to run, the code associated with that application is banked into the overlay space.
- FIG 4 is a diagram illustrating an example layout of the real address space according to one embodiment of the invention. Also illustrated in Figure 4 is an example implementation of the extended address space according to one embodiment of the invention.
- real address space 404 includes shared code space 406, RAM space 408, and overlay space 410.
- Extended address space 424 includes shared code space 426 as well as a plurality of banked memory spaces 427, 428, 429.
- RAM space 408 provides random access storage locations for use by the processor in executing code.
- the address space 404 can be allocated as necessary by the system designer.
- shared code space 406 includes common code such as, for example, code shared between one or more applications, the real time operating system, interrupt service routines, and other code that the processor may be called upon to access.
- common code is shared software 304.
- Overlay space 410 is mapped as the space into which application spaces 427, 428, 429 will be banked. Banked spaces 427, 428, 429 include the code executed by the processor in carrying the various applications that it may be called upon to provide. Overlay space 410 may be allocated to provide enough space for one or more applications.
- the processor may be executing a first application that is banked in overlay space 410.
- the processor may be executing code banked in overlay space 410 as well as common code mapped to shared code space 406.
- the processor is called upon to execute a second application that is not within the section currently banked to overlay space 410, the actual address space containing that application is banked into overlay space 410.
- the alternative application space 427, 428, 429 containing the code for that application is banked into overlay space 410.
- the processor continues to execute the code for the new application, as well as any code that may be required to be executed in shared code space 406.
- This memory banking scheme is now described in terms of an example embodiment of a wireless phone communicating using CDMA technology, and having additional features such as a contacts database, organizer, calculator, and so forth.
- the wireless handset is implemented using a chipset based on the 80186 microprocessor. Because the 80186 microprocessor is capable of addressing 1 megabyte of memory space, the real address space for the processor spans the range from 00000 to FFFFF, hexadecimal. An example mapping of the real address space for this embodiment is illustrated in Figure 5.
- the real address space 504 includes 256 kilobytes of RAM [00000 to 3FFFF], 640 kilobytes of code space [40000 to DFFFF], and 128 kilobytes of bankable application space [E0000 to FFFFF].
- Extended address space 524 for the example embodiment.
- Extended address space according to this example embodiment is allocated as having 640 kilobytes of common code space 526 [40000 to DFFFF], and three application banks.
- the application banks are each 128 kilobytes in the illustrated example.
- Bank 0 527 ranges from E0000 to FFFFF hex, bank 2 528 from 20000 to 3FFFF hex, and bank 1 529 from 0000 to 1FFFF hex.
- extended address space 524 is the actual memory space, containing the common code in common code space 526, as well as the specific applications in Banks 0, 1 and 2 527, 528, 529.
- the main system code for the wireless phone is provided in common code space 526, and includes the common code or shared software for the phone and its various applications.
- the common code includes basic phone operations (CDMA in the example embodiment), the operating system, a user interface manager, non- volatile data support, interrupt service routines, phone status information, display drivers, and the like.
- the user interface manager is small, and used to start and suspend the various application tasks of the phone, and application bank selection.
- Non-volatile data support can provide the functionality used to support read and write operations to non-volatile data sections.
- Examples of the functions that can be associated with the phone status are collect and display phone status, signal strength, battery levels, roaming indicator, SMS indications, time/date, etc.
- banks 0 - 2 contain the applications.
- each application is self-contained in that they do not need to communicate with other applications in other banks.
- the applications may need to communicate with the common code in common code space 526.
- Figure 6 is an operational flow diagram illustrating a process for selecting memory banks according to one embodiment of the invention. Specifically, the embodiment illustrated in Figure 6 is that in which there are three possible banks, bank 0, bank 1 and bank 2.
- a real address is received by the memory banking system. The real address is the address provided by the processor to access a portion of the memory space.
- the memory banking system determines whether the address provided by the processor lies within a range of the memory space that is not banked. If the address is accessing a portion of memory that is not banked, the real address provided by the processor is used to access that memory location at that address, as illustrated by a step 607.
- step 606 can determine whether the address provided by a processor is addressing the common code address space from 40000 through DFFFF. If so, the real address is used to access code in common code portion 526 of the system memory. In an alternative embodiment, the system can also determine whether the address is within the RAM address space, ranging from 00000 to 3FFFF in the embodiment illustrated in Figure 5. If so, in that embodiment, the RAM space 508 is also not banked, and therefore when an address in this range is received, the system addresses RAM address space 508. In one embodiment, addressing is not used, per se, to drive banking. Instead, special functions can be called when banked code needs to be accessed or invoked. These functions perform the overlay mapping if needed.
- bank 0 527 lies within the same address range as application space 510. Specifically, in the illustrated embodiment, bank 0 527 lies within the address ranges EOOOO to FFFFF. This is illustrated by steps 610 and 616 in Figure 6.
- the real address is translated or manipulated to address the appropriate one of banks 1 or 2.
- this translation or manipulation is performed by simply performing an address offset calculation, such as, for example, an addition or a subtraction from the real address value.
- this computation is performed by subtracting an address offset from the actual address. This is illustrated by steps 612, 614, 618 and 620 in Figure 6.
- the memory banking system subtracts the address value EOOOO from the real address to achieve the address mapped to bank 1 529.
- this subtraction can be done by exclusive-OR-ing the real address with the offset value EOOOO.
- the memory banking system subtracts the address value C0000 from the real address to achieve the correct address within the space of bank 2 528. Again, in one embodiment, this subtraction is performed by exclusive-OR-ing the real address with the value C0000.
- AND gate Ul has three inputs, which, in the described embodiment, receive the three most-significant bits (MSBs) of the real address.
- MSBs most-significant bits
- inputs N, N-l, and N-2 represent the three most significant bits of the 20-bit address bus used to address the one megabyte of memory space.
- Ul outputs a high level at its output.
- the output of Ul is tied to input pins A and B of AND gates U3 and U4. Therefore, when the output of Ul is high, inputs A, B of U3 and U4 are high, allowing U3 and U4 to pass the signals at their respective inputs C to exclusive-OR gates U5, U6 and U7.
- AND gates Ul, U3 and U4 can be said to be active in that they enable the exclusive-OR operation performed by exclusive-OR gates U5, U6 and U7.
- the real address is in the range of 111XX...X (i.e., 11100...0 to 11111...1), the exclusive-OR address offset function is enabled.
- the address bus when the three most significant bits of the 20-bit address bus are high, the address bus is addressing memory in the range EOOOO through FFFFF, the overlay region 510. As stated, when this section of the address space is being address, bank regions 0, 1 and 2, 527, 528 and 529 are being accessed.
- two bank select bits are provided. These are illustrated as BSEL0 and BSEL1. These bits are provided at the input of exclusive-OR gate U2 and are ultimately used in conjunction with AND gates U3 and U4 (when these gates are 'enabled' by high inputs A, B) to provide the values to be exclusive-OR' ed to the real address space. Specifically, in the illustrated embodiment, when BSELO and BSEL1 are both low, the output of U2 is a zero, which provides a zero at input C of AND gate U3. Additionally, because BSEL1 is provided as an input C to AND gate U4, this input C of AND gate U4 is also zero. Therefore, the output of AND gates U3 and U4 are both zero.
- BSELO being a low level
- BSEL1 being a high level
- the output of exclusive-OR gate U2 is high. This high level is provided to input C of AND gate U3.
- U3 When all of the most significant bits of the address bus are high, and input C is high, U3 outputs a high level to inputs D and E of exclusive-OR gates U5 and U6.
- input C of AND gate U4 is high, as it is provided directly BSEL1. With input C being high and the most significant bits of the address begin high, the output of U4 is a high and this high level is provided to input F of exclusive-OR gate U7.
- input F to exclusive-OR gate U7 is also zero. Because the output of exclusive-OR U2 is a 1 , input C to U3 is high, which, when the most significant bits of the address bus are high, provides a high output from AND gate U3, which results in a high level at inputs D and E of exclusive-OR gates U5 and U6. Thus, the most significant bits of the address N, N-l, N-2 are exclusive-OR' ed in gates U5, U6, U7 with the value 110. This results in an output of the address value for the most significant bits as 001. Thus, the address 111XXXXXX, is replaced with the address OOIXXXXXXX. As such, bank 2 528 is selected.
- the occurrence of all l's in the three most significant bits of the address enable the exclusive-OR function to take place.
- the values for the two bank select bits determine whether the most significant bits of the address are exclusive-OR' ed with one of the following: 111, 110, or 000.
- additional bits i.e., bank select bits
- these bits are provided by a routine that is running in the common code of the application.
- this routine By providing this routine in the common code region of the application, it can be made available to and executed by the processor when necessary, regardless of the bank selected.
- This routine is described below and is referred to in this document as a program code overlay mechanism, or simply, overlay code.
- the banking architecture permits memory regions outside of the processor's address space to be logically mapped into an overlay bank (e.g., bank region 510) residing within the memory address space.
- the overlay bank region 510 resides at the top 128 kilobytes of the ROM (896 K-1024 K). While the hardware architecture described above is described in terms of an embodiment having a 1 megabyte address range, the software design can be extended to multiple megabyte code storage with little modification. As stated above, any code can reside in a bank or overlay, but in the preferred embodiment, application-level code is designated as residing in the bank due to slight additional overhead requirements to invoke functions residing in a bank.
- code within a bank is mostly self-contained, meaning that it primarily calls for functions that reside within the same bank. As such, this minimizes the need to do bank switching.
- one aspect of the invention enables code in one bank to call functions residing within another bank, effectively mapping both banks into memory at the same time.
- bank select lines BSEL1, BSEL2 can be used to address the appropriate bank in memory.
- overlay code is invoked and results in specific outputs on a pair of GPIO (general purpose I/O) lines on the processor as the bank select lines. Depending on the values output on the GPIO lines, the desired bank is mapped into the overlay mapping area designated in the address space.
- GPIO general purpose I/O
- additional overlay banks could be supported with additional space to store code overlays and additional hardware support.
- additional GPIO lines could be used, or some other type of chip select mechanism, to support more code capacity.
- One problem associated with allowing code resident in one bank to invoke code in another bank, is that while the return address for the calling function is valid, the proper code overlay won't be mapped into the memory space when the called function is returned. Because the calling function's code would not be re-mapped into the overlay bank, invalid code would be executed. This would most likely result in a hardware reset.
- One aspect of the invention avoids this problem by providing small stub functions in the main code that access all overlay functions. The stub functions map the appropriate bank into the overlay region if necessary, call the appropriate function, and restore the previously overlayed mapping, and pass back any return value from the called overlay function.
- FIG 8 is an operational flow diagram illustrating a process for calling code in an overlay bank and allowing code in one overlay bank to call code in another overlay bank, according to one embodiment of the invention.
- a step 804 executing code calls a function that is coded in one of a plurality of overlay banks.
- code in a common code region e.g., common code 526
- the overlay manager maps the new bank into the overlay region. This is illustrated by steps 810 and 812. In embodiments where the banks are selected using GPIO outputs, the overlay manager simply causes the GPIO outputs to be changed, reflecting that the new bank is now mapped into the overlay region, at least for the duration of the called function. If, on the other hand, the function being called resides in the same bank as that currently mapped into the overlay region, as illustrated by decision step 810, no re-mapping of the overlay space needs to be done.
- a step 816 the software calls the function from the overlay region, executes the function and saves the return value. If the overlay manager determined that bank switching needed to occur, and the new bank was mapped into the overlay region, this function was then called from that new bank mapped into the overlay region. Additionally, if a bank switch did occur to execute the called function, it is more than likely that the previously mapped bank needs to be restored.
- the overlay manager maps the previously mapped bank back to the overlay space as illustrated by steps 820 and 822. Once the previously mapped bank is restored, if needed, the saved value return from the overlay function is provided to the calling function in the previously mapped bank. This is illustrated by step 824.
- these overlay functions are contained in a single module referred to as the overlay manager.
- the overlay manager resides in a common code region of the memory space such that it is readily available for use by applications or other software running in any of the mapped banks.
- the overlay manager provides the function of tracking the currently mapped bank into the overlay region. This eliminates the need for the rest of the system code to know in which bank a particular overlay function resides and whether or not it's currently mapped.
- the existing code can specify whether it is calling an overlay version of a function rather than the actual function.
- the overlay version of the function is provided with the same name as the actual function with the additional designation OV_ added to the beginning of the name. For example, a call to a function named print will be replaced by a call to OV_print, designating the overlay version.
- OV_print designating the overlay version.
- the code that actually resides in an overlay requires no modification.
- code is placed in overlay banks at a module level.
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU43378/00A AU4337800A (en) | 1999-04-23 | 2000-04-10 | System and method for flexible memory banking |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29843999A | 1999-04-23 | 1999-04-23 | |
US09/298,439 | 1999-04-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2000065451A1 true WO2000065451A1 (en) | 2000-11-02 |
WO2000065451B1 WO2000065451B1 (en) | 2000-12-21 |
Family
ID=23150521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/009548 WO2000065451A1 (en) | 1999-04-23 | 2000-04-10 | System and method for flexible memory banking |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU4337800A (en) |
WO (1) | WO2000065451A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713759A (en) * | 1984-01-27 | 1987-12-15 | Mitsubishi Denki Kabushiki Kaisha | Memory bank switching apparatus |
US5796940A (en) * | 1993-03-10 | 1998-08-18 | Sega Enterprises, Ltd. | Method for executing software program and circuit for implementing the method |
US5802543A (en) * | 1995-04-28 | 1998-09-01 | Nec Corporation | Paging receiver employing memory banking system |
-
2000
- 2000-04-10 WO PCT/US2000/009548 patent/WO2000065451A1/en active Application Filing
- 2000-04-10 AU AU43378/00A patent/AU4337800A/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713759A (en) * | 1984-01-27 | 1987-12-15 | Mitsubishi Denki Kabushiki Kaisha | Memory bank switching apparatus |
US5796940A (en) * | 1993-03-10 | 1998-08-18 | Sega Enterprises, Ltd. | Method for executing software program and circuit for implementing the method |
US5802543A (en) * | 1995-04-28 | 1998-09-01 | Nec Corporation | Paging receiver employing memory banking system |
Also Published As
Publication number | Publication date |
---|---|
WO2000065451B1 (en) | 2000-12-21 |
AU4337800A (en) | 2000-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5826057A (en) | Method for managing virtual address space at improved space utilization efficiency | |
US7353361B2 (en) | Page replacement policy for systems having multiple page sizes | |
US6219774B1 (en) | Address translation with/bypassing intermediate segmentation translation to accommodate two different instruction set architecture | |
US6584558B2 (en) | Article for providing event handling functionality in a processor supporting different instruction sets | |
US6021489A (en) | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture | |
US5095526A (en) | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status | |
US4777588A (en) | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance | |
US4500962A (en) | Computer system having an extended directly addressable memory space | |
JPWO2003025743A1 (en) | Processor system with Java accelerator | |
US5613151A (en) | Data processor with flexible register mapping scheme | |
US5802598A (en) | Data memory access control and method using fixed size memory sections that are sub-divided into a fixed number of variable size sub-sections | |
US6029241A (en) | Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor | |
US7761686B2 (en) | Address translator and address translation method | |
EP0908812B1 (en) | Processor architecture scheme for implementing various addressing modes and method therefor | |
US6138210A (en) | Multi-stack memory architecture | |
US5903919A (en) | Method and apparatus for selecting a register bank | |
JPH07248967A (en) | Memory control system | |
US6393498B1 (en) | System for reducing processor workloads with memory remapping techniques | |
EP1103898A2 (en) | Microprocessor and memory | |
WO2000065451A1 (en) | System and method for flexible memory banking | |
EP1901171A1 (en) | Apparatus and method for handling interrupt disabled section and page pinning apparatus and method | |
EP0101718B1 (en) | Computer with automatic mapping of memory contents into machine registers | |
CN201145900Y (en) | Microcontroller | |
Gliwa et al. | Microprocessor Technology Basics | |
JP2002318686A (en) | Processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
AK | Designated states |
Kind code of ref document: B1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: B1 Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
B | Later publication of amended claims | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |