WO2007077595A1 - メモリ制御方法、プログラム及び装置 - Google Patents

メモリ制御方法、プログラム及び装置 Download PDF

Info

Publication number
WO2007077595A1
WO2007077595A1 PCT/JP2005/024053 JP2005024053W WO2007077595A1 WO 2007077595 A1 WO2007077595 A1 WO 2007077595A1 JP 2005024053 W JP2005024053 W JP 2005024053W WO 2007077595 A1 WO2007077595 A1 WO 2007077595A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
area
memory
logical address
usage
Prior art date
Application number
PCT/JP2005/024053
Other languages
English (en)
French (fr)
Inventor
Kosaku Nakada
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2005/024053 priority Critical patent/WO2007077595A1/ja
Priority to EP05822500A priority patent/EP1967955A4/en
Priority to CN2005800518645A priority patent/CN101292229B/zh
Priority to KR1020087008986A priority patent/KR101011171B1/ko
Priority to JP2007552819A priority patent/JP4810542B2/ja
Publication of WO2007077595A1 publication Critical patent/WO2007077595A1/ja
Priority to US12/052,846 priority patent/US8219881B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Definitions

  • the present invention relates to a memory control method, program, and apparatus for accessing a memory composed of a plurality of memory modules, and in particular, a memory that sets a use-prohibited area in a CPU address space based on an abnormal part of a memory module. Concerning control methods, programs and devices.
  • a storage device such as a main memory used in a computer system having a multi-CPU configuration
  • a plurality of memory modules also referred to as memory banks
  • a memory device is constructed by mounting it, and in this way, the memory module used for the memory device cannot avoid variations in quality caused by the memory module production process.
  • memory modules that have been recognized as abnormal once may not be incorporated into the system until the abnormal memory module is replaced, even if the memory configuration changes due to a change in the number of ways of interleave control. It is necessary to improve the robustness of the operation system, to reduce the maintenance time when failure occurs after operation, and to reduce maintenance costs.
  • the memory controller divides the address space of the memory module, which also has CPU power, into areas of appropriate size, and the memory module. If an abnormal state is detected, the area corresponding to the abnormal part is prohibited from use, and memory control is performed to degenerate the memory so that the area containing the abnormal part is not included in the area that can be used by CPu. ing.
  • Patent Document 1 JP-A-2-166543
  • Patent Document 2 JP-A-4-165548
  • the correspondence between the memory module's real address and the logical address seen by the CPU will also be changed.
  • the address of the abnormal part before the memory configuration change corresponds to the mth area, but after the memory configuration change, it corresponds to another nth area.
  • the abnormal location of the memory module is identified again, and the area corresponding to the abnormal location of the memory module is determined by the divided area of the address space where the CPU power after the configuration change can be seen. It is necessary to manage the area so that it is prohibited from being used, and the area including the abnormal part is not included in the CPU usage area.
  • the area usage information before the configuration change cannot be taken over after the configuration change, and the memory There is a problem that the processing load for determining the CPU available area after configuration increases, and it takes time to restart the process after changing the memory configuration.
  • the present invention provides information on the use of an area obtained by dividing a memory address space in view of CPU power. It is an object of the present invention to provide a memory control device, method, and program that can easily and quickly set area use information after a configuration change when the configuration is changed.
  • the present invention provides a memory control method. That is, the present invention relates to a memory control method for accessing a memory by converting a logical address into a real address.
  • the present invention provides a memory control method. That is, the present invention relates to a memory control method for accessing a plurality of memory elements by converting a logical address of CPU power into a real address composed of an element selection address and a memory element address.
  • the CPU logical address is converted to a real address determined by the number of ways W, multiple memory elements are accessed by interleave control, and the memory configuration is reconfigured by specifying a different number of ways W.
  • Real address space consisting of configurable interleave control steps and multiple memory elements can be used by dividing the number of CPU logical address space areas N by the maximum number of ways of interleave control Wmax (NX Wmax) Create a real address area usage table common to all ways where information is recorded, and record the prohibition information in the area containing the abnormal part of the real address area usage table when an abnormality is detected in the memory element Administrative steps;
  • the real address area utilization table power A logical address area utilization table in which usable information or prohibited information is recorded in each area in the logical address space is generated and the CPU Logical address area management step for determining the area of the logical address space used by It is provided with.
  • the memory configuration is reconfigured by specifying any one of the different way numbers W that are powers of 2.
  • the actual address area management step is (for example, the CPU address is 10 bits, the memory element address is 8 bits from A7 to A0, element selection Address is B1 ⁇ : 2 bits of BO), lower 2 bits of element selection address (Bl BO),
  • the logical address area management step is based on the real address area utilization table when the memory configuration is such that the interleave control step is determined by one way.
  • the logical address space area used by the CPU is determined by creating a one-way logical address area usage table that records usage permission information or usage prohibition information in each area divided into N by the 3-bit address (Bl BO A7).
  • the logical address area management step is based on the real address area utilization table when the memory configuration is determined by the 2-way interleave control step.
  • a memory control method characterized by determining a region of a logical address space to be performed.
  • Interleave control step can reconfigure memory by specifying number of ways 1, 2 or 4 ⁇ ,
  • the real address area management step (when the CPU address is 10 bits, the memory element address is 8 bits from A7 to A0, and the element selection address is B1 to: BO is 2 bits, for example) is the lower 2 of the element selection address Bit (Bl BO),
  • the logical address area management step is based on the real address area utilization table in the case of a memory configuration where the interleave control step is determined by one way.
  • the logical address area management step is based on the real address area utilization table when the memory configuration is determined by the 2-way interleave control step.
  • the logical address area management step is determined by the interleave control step force way.
  • the real address area usage table For the memory configuration, the real address area usage table
  • the present invention provides a memory control program.
  • a memory control program according to the present invention converts a logical address of CPU power into a real address composed of an element selection address and memory element address power, and accesses a computer of a memory control device that accesses a plurality of memory elements.
  • the CPU logical address is converted to a real address determined by the number of ways W, multiple memory elements are accessed by interleave control, and the memory configuration is reconfigured by specifying a different number of ways W.
  • Real address space consisting of configurable interleave control steps and multiple memory elements can be used by dividing the number of CPU logical address space areas N by the maximum number of ways of interleave control Wmax (NX Wmax) Create a real address area usage table common to all ways where information is recorded, and record the prohibition information in the area containing the abnormal part of the real address area usage table when an abnormality is detected in the memory element Administrative steps;
  • the real address area utilization table power A logical address area utilization table in which usable information or prohibited information is recorded in each area in the logical address space is generated and the CPU Logical address area management step for determining the area of the logical address space used by
  • the present invention provides a memory control device. That is, the memory control device of the present invention includes a plurality of memory elements that are accessed by a real address that also includes an element selection address and a memory element addressing power, The logical address of the CPU using the logical address space divided into N areas is converted to real addresses determined by the number of ways W, and the memory devices are accessed by interleave control.
  • the real address space consisting of a reconfigurable interleave control unit and multiple memory elements is divided into (NX Wmax) areas that are the number of CPU logical address space areas N multiplied by the maximum number of ways of interleaving control Wmax. Create a real address area usage table that is common to the total number of ways for which usable information is recorded, and record the prohibition information in the area containing the abnormal part of the real address area usage table when an abnormality is detected in the memory device.
  • a logical address area usage table in which usable information or usage prohibition information is recorded in each area in the logical address space is generated from the real address area usage table.
  • a logical address area management unit that determines the area of the logical address space used by the CPU;
  • the present invention provides an information processing apparatus. That is, the present invention
  • a processing unit
  • a storage unit connected to the processing unit and storing information
  • the memory control unit converts a logical address from the CPU into a real address and accesses the storage unit;
  • a logical address area management unit that updates the contents of the logical address area use table in which the availability information of each area in the logical address space is recorded based on the contents of the first table.
  • the management of the available area of the memory module in terms of CPU power is performed based on the memory element address.
  • the memory element address does not depend on the memory configuration change and is determined by the memory element. If the memory error location is the same, the memory element address that points to the error location does not change.
  • FIG. 1 is a block diagram of a computer system provided with a memory control device of the present invention.
  • FIG. 4 An explanatory diagram of the address map corresponding to the one-way interleaved address translation of Fig. 3.
  • FIG. 5 An explanatory diagram of memory module access by one-way interleaving.
  • FIG. 7 An explanatory diagram of the address map corresponding to the 2-way interleave address translation of Fig. 6.
  • FIG. 8 An explanatory diagram of memory module access by the 2-way interleave.
  • FIG. 12 is a flow chart of processing for creating a real address area use table of memory element addresses in the present invention.
  • FIG. 13 A flow chart of a computer system that creates a logical address area usage table having a memory configuration corresponding to the number of ways and determines a CPU usage area created by the processing of FIG.
  • FIG. 14 Flowchart of processing for creating a logical address area use table in the one-way memory configuration in step S6 of FIG.
  • FIG.15 Flowchart of processing to create logical address area usage table in 2-way memory configuration following Fig.14
  • FIG. 17 An explanatory diagram of an address map corresponding to the 4-way interleave address conversion of FIG.
  • FIG.21 Real address area usage table of memory element addresses created when memory can be reconfigured in 1-way, 2-way, or 4-way, and CPU logical address area usage in 2-way memory configuration Explanatory drawing of processing to create a table
  • FIG.24 Flowchart of processing to create logical address area usage table for 1-way memory configuration from real address area usage table corresponding to 1-way, 2-way or 4-way
  • FIG.25 Flowchart of processing to create a logical address area usage table for 2-way memory configuration from a 1-way, 2-way, or 4-way real address area usage table
  • FIG.26 Real address area usage table corresponding to 1-way, 2-way or 4-way, etc. Flowchart of processing to create logical address area usage table when 4-way memory is configured
  • FIG. 1 is a block diagram of a computer system provided with a memory control device of the present invention.
  • CPUs 12-1 to 12-4 and memory modules 14-1 to 14-4 are connected to the memory controller 10 constituting the memory control device of the present invention.
  • the memory controller 10 is provided with an interleave control unit 16, a real address area management unit 18, and a logical address area management unit 20, and a real address area management file 22 is further connected.
  • the interleave control unit 16 of the memory controller 10 can reconfigure the memory configuration by specifying different way numbers W.
  • W for example, 1 way, 2 ways, 4
  • Interleave control is performed by a memory configuration of the number of ways such as ways.
  • the interleave control is a control in which the same address is specified for a plurality of memory modules, and access is performed by alternately switching modules according to the module selection address.
  • the modules since the modules are switched in a state where addressing has been performed in advance, the memory module can be operated at high speed.
  • 2-way interleaving is a control to switch modules by specifying the same address across two memory modules.
  • 4-way is a module in which the same address is specified for four memory modules. The access is controlled by switching in order.
  • 1-way interleave control is performed by selecting memory modules in order and is not addressed across multiple memory modules, so this is an access without interleaving.
  • no interleaving is used as one-way interleaving control.
  • the interleave control unit 16 in order to cope with a memory failure on the memory module 14-1 to 14-4 side, the logical address space that can be seen by the CPU address of the CPU12-1 to 12-4 is set. Divided into multiple areas, for example, N areas, and when a memory error is detected, area usage management is performed to prohibit use of the area corresponding to the abnormal area.
  • the usage management area in this CPU space is conventionally divided into divided areas of the CPU address space, and a logical address area usage table is created that stores area usage information, that is, whether the available power usage is prohibited.
  • the area of the logical address space used by the CPU is determined.
  • the memory controller 10 holds the logical address area use table for managing the logical address space of the CPU in a fixed manner. not, based on the memory module 14 1-1 4 one 4 side of the memory element address, and holds by creating a real address area utilization table convertible to a logical address area utilization table of the logical address space of the CPU .
  • the real address area management unit 18 provided in the memory controller 10 includes the memory module 14
  • the logical address area management unit 20 of the memory controller 10 is a real address area held in the real address area management file 22 when the computer system is started up or when the memory configuration is reconfigured in the interleave control unit 16.
  • the usage table power the logical address space on the CPU side is divided into N areas, and a logical address area usage table in which usable information or usage prohibition information is recorded is created each time. Based on the created logical address area usage table, The logical address space used by CPU12-1 to 12-4 at startup or memory reconfiguration Try to determine the area.
  • a real address area use table capable of generating a logical address space area on the CPU side viewed from the real addresses of the memory modules 14-1 to 144 is created. If the memory configuration is determined by the interleave control unit 16 according to the number of ways, it is stored in the actual address area management file 22 by conversion processing corresponding to the memory configuration determined by the number of ways. From the actual address area usage table, a logical address area usage table corresponding to the interleave control of the number of ways at that time can be created each time, and the area of the logical address space used by the CPU can be determined.
  • FIG. 2 is an explanatory diagram of an address translation mechanism that can reconfigure the memory configuration of the interleave control by setting the number of ways of the memory controller 10 of FIG.
  • each of the memory modules 14 1 to 144 is 256 bytes, and the total size is 1024 bytes as an example.
  • the size of one area on the CPU side is 128 bytes.
  • a 1024-byte memory space composed of the memory modules 14-1 to 14-4 can be accessed with 10-bit CPU addresses C9 to CO from the CPUs 12-1 to 12-4. Therefore, the memory controller 10 is provided with an input address register 26 that holds 10-bit CPU addresses C9 to CO.
  • the real addresses of the memory modules 14-1 to 144 are the 8-bit memory element addresses A7 to A0 that access the memory modules 14-1 to 144, respectively, and the memory modules. It consists of 2-bit device selection addresses Bl and BO to select Yule 14—1 to 144.
  • an output address register 28 for storing the memory element addresses A7 to AO and a module selection register 30 for holding the element selection addresses Bl and BO are provided.
  • Selectors 34 and 36 are provided between the input address register 26 and the output address register 28.
  • the selector 34 switches between the upper 2 bits C9 and C8 of the input address register 26 and the lower 2 bits Al and AO of the output address register 28.
  • the selector 36 performs switching connection to the upper 2 bits C9 and C8 of the input address register 26 and the element selection bits Bl and B0 of the module selection register 30 of the lower 2 bits CI and CO.
  • the number of ways in the interleave control of the memory controller 10 is an example of switching the memory configuration by three ways of 1 way, 2 ways, and 4 ways. Or be able to establish a connection to achieve 4-way address transformation! /
  • the way memory configuration 24 by the interleave control can be constructed by the input address register 26, the output address register 28, the module selection register 30 provided in the memory module selector 32, and the selectors 34 and 36. .
  • FIG. 3 is an explanatory diagram of an address conversion structure based on a 1-way interleaved memory configuration.
  • the memory controller 10 connects the output address register 28 and the module selection register 30 to the input address register 26 of the illustrated 1-way memory configuration 24-1, by switching the connection by the selectors 34 and 36 shown in FIG.
  • the 10-bit CPU addresses C9 to C0 from CPU12—1 to 12—4 are held in the input address register 26, and the memory modules 14—1 to 14—4 in the output address register 28 are established.
  • 8-bit memory device addresses A7 to A0 are converted to device selection addresses Bl and B0 for module selection, and memory access according to 1-way interleave is executed.
  • 1-way memory configuration 24-1 is the case without interleaving, in which case the CPU address
  • the upper 2 bits C9 and C8 of the memory are converted to device selection addresses Bl and BO, and the lower 8 bits C7 to C0 of the CPU address are converted to memory device addresses A7 to A0 and accessed.
  • FIG. 4 is an explanatory diagram of the 1-way address bit map 38-1 corresponding to the 1-way interleaved address translation of FIG.
  • the 1-way address map 38-1 is divided into the memory selection and memory addresses in the upper column, and the CPU addresses C9 to CO and the element selection addresses Bl and BO that become real addresses and the memory element addresses A7 to A0 are displayed. It shows the address bits when the CPU addresses C9 to CO are sequentially changed from all 0 power to all 1 and the corresponding address decimal display.
  • FIG. 5 is an explanatory diagram of memory module access by 1-way interleaving.
  • access is simple, and the four memory modules 14-1 to 14-3 are viewed from the CPU side as indicated by dotted lines.
  • the memory modules 14 When the CPU address is changed sequentially from all 0s to all 1s, the memory modules 14 as shown by arrows 44-1 to 44-8 — It can be accessed in the order of 1 to 14 3, that is, the area 42 — 1 to 42-8 as seen from the CPU side.
  • the memory module 14-1 in FIG. 3 has an address “11111111”, that is, data cannot be read or written to address 255 in decimal display, and a memory error occurs.
  • address map 38-1 it becomes an abnormal part 40, which is “00111111111” when seen from the CPU addresses C9 to C0, and when it is displayed in decimal, it is also the 255th address.
  • FIG. 6 is an explanatory diagram of an address conversion structure based on a 2-way interleaved memory configuration.
  • the memory controller 10 of FIG. 6 by specifying the number of ways W for interleave control as 2 ways, the output address register 28 and the memory module selector for the input address register 26 shown in 2-way memory configuration 24-2 Connection between module selection registers 30 provided in 32 is established.
  • Figure 7 shows the 2-way address map corresponding to the 2-way interleaved address translation of Figure 6.
  • FIG. 8 In this 2-way interleave control, as shown in memory modules 14-1 to 14-4 in Fig. 8, it is determined by the number of divisions on the CPU side of the two memory modules 14-1 to 14-2. Per byte area, indicated by arrow 60-1 at the start address As shown in the figure, with the same address specified for memory module 14-1 and memory module 142, the memory modules 14-1 and 14-2 are sequentially switched by the element selection address, and two addresses are accessed.
  • the memory modules 14-1 and 14- correspond to the change from all 0 to all 1 of the CPU addresses C9 to C0. Divided into even address area 58-1 and odd address area 58-2 for 2 and even address area 58-3 and odd address area 58-4 for memory modules 14-3, 14-4. It is done.
  • the element selection addresses Bl and B0 alternate between "00" and "01".
  • the module is selected with the same address assigned to the two memory modules 14-1 and 14-2, and 2-way interleave control is performed.
  • the abnormal part 40 in the 1-way address map 38-1 shown in FIG. 4 on the map can be stored as the same address position.
  • FIG. 10 shows a real address utilization table generated by the real address area management unit 18 when the memory reconfiguration by the interleave control unit 16 of the memory controller 10 of FIG.
  • FIG. 5 is an explanatory diagram of a logical address area utilization table used in a 1-way memory configuration created by the address area management unit 20 in the form of a real address utilization table.
  • FIG. 10 (A) is used to create the one-way logical address area usage table 50-1 shown in FIG. 10 (C) from the real address area usage table 48 shown in FIG. 10 (B).
  • 1-way search register 46-1 is used to create the one-way logical address area usage table 50-1 shown in FIG. 10 (C) from the real address area usage table 48 shown in FIG. 10 (B).
  • the real address area utilization table 48 in FIG. 10 (B) shows the element selection addresses and memory element addresses constituting the real addresses of the memory modules 14-1 to 14-4.
  • the usage flag is stored in 16 areas determined from the correspondence table in Fig. 9 using
  • the real addresses stored in the real address area utilization table 48 are the same as those shown in the one-way memory configuration 24-1 in FIG. Depending on the dress change structure, the CPU address C9, C8, C7, CO 4 bits are supported.
  • the use flag of the real address area use table 48 records “X” as the usable information, and records “X” in the area including the address of the abnormal location 40 shown in FIG. 4 as the use prohibition information. is doing.
  • FIG. 10 (C) When the 1-way logical address area usage table 50-1 shown in FIG. 10 (C) necessary for the memory configuration of the 1-way interleave control is created from the actual address area usage table 48, FIG. Use the 1-way search register 46-1 (A) to check the usage flag in the real address area usage table 48.
  • the 1-way search register 46-1 is composed of X, Y, ⁇ , “OZl” area, and usage flag storage area.
  • the second area # 1 in the CPU area is prohibited from use “X”.
  • FIG. 11 is an explanatory diagram of a process for creating a 2-way logical address area usage table when the memory is configured by 2-way interleave control using the same real address area usage table 48 as in FIG. 10B.
  • FIG. 11 (A) shows a two-way survey for creating the 2-way logical address area usage table 50-2 in Fig. 11 (C) from the real address area usage table 48 in Fig. 11 (B).
  • Search register 46-2 2-way search register 46-2 from the upper side
  • the actual address area utilization table 48 survey shows that the utilization flags of the two areas are both used in accordance with the area pair 62-1 to 62-8 indicated by the arrow on the right side. If the permission is “Yes”, the usage flag of the corresponding area in the 2-way logical address area usage table 50-2 in FIG. 11 (C) is set to “Yes”, and V or one of them is prohibited to use “X”. If so, record the usage flag of the corresponding area in 2-way logical address area usage table 50-2 in usage prohibition “X”.
  • FIG. 12 is a flowchart of processing for creating a real address area utilization table that also considers the memory element addressing power in the present invention.
  • step S4 for example, when 1-way and 2-way reconfiguration as shown in FIG. 10B is possible, the element selection address Bl, BO and the most significant bit A of the memory element address Create a real address area use table with 16 divided areas using 7 and the least significant bit AO 4 bits, and the use flag, that is, the use information, should be set to “Yes” at the time of initial creation. Record.
  • FIG. 13 is a flowchart of a computer system that creates a logical address table having a memory configuration corresponding to the number of ways of interleaving control and determines a CPU usage area created by the processing of FIG. It is.
  • step S1 the computer system performs initialization and diagnosis upon power-up in step S1, and if a memory abnormality is detected in step S2, the element selection address of the abnormal memory module is detected in step S3.
  • the memory element address is acquired, and in step S4, the use prohibition information is written in the divided area corresponding to the abnormal part of the already created real address area use table.
  • processing in steps S3 and S4 is skipped.
  • step S5 the number of ways of the memory configuration is acquired, and in step S6, a logical address area usage table of the memory configuration determined by the number of ways is created from the real address area usage table, and the CPU usage area is determined. To do.
  • step S7 the OS is installed along with the boot process of the computer, and in step S8, the operation process by the application is started. If there is a memory configuration change in step S9 during this operation process, the process returns to step S5 to obtain the number of ways after the change due to this memory configuration change, and in step S6 the real address area utilization table power is also changed after the memory configuration change.
  • Nou Create a logical address area usage table with a memory configuration determined by the number of rays, determine the CPU usage area, install the OS from step S7 by rebooting, etc., and enter the operation process by the application in step S8.
  • FIG. 14 is a flowchart of a process for creating a logical address area utilization table in the one-way memory configuration in step S6 of FIG.
  • the process proceeds to step S2, and the real address area utilization table 48 is stored in the one-way search register 46-1 in FIG.
  • step S6 is skipped. If at least! / Is one of the prohibited use "X”, step S6 is executed as shown in FIG. In the (C) 1-way logical address area use table 50-1, use prohibited “XJ” is written in the area corresponding to the address XYZ at that time.
  • step S7 it is checked whether or not the address XYZ is the final address. If it is not the final address, the address XYZ is incremented by 1 in step S8, and the processing from step S4 is repeated.
  • FIG. 15 is a flowchart of processing for creating a logical address area utilization table in the 2-way memory configuration subsequent to FIG.
  • the process proceeds to step S10, and the 2-way search register 46-2 shown in FIG. Set the real address area use table 48 address.
  • step S14 If at least one of them is prohibited to use "X”, the process proceeds to step S14, and the area corresponding to the address XYZ in the 2-way logical address area usage table 50-2 shown in Fig. 11 (C). Write “X” forbidden to use. Then, in step S15, check whether the address XYZ is the final address If not, return to step S16, increment the address XYZ by 1, and repeat the processing from step S12.
  • the interleave control unit 16 provided in the memory controller 10 of FIG. 1, the real address area utilization table when the 1-way, 2-way, and 4-way memory reconfiguration is possible as the memory configuration by the interleave control. And the creation of the logical address area usage table generated from it.
  • FIG. 16 is an explanatory diagram of an address change structure with a 4-way interleaved memory configuration.
  • the output address register 28 and the module selection register 30 are connected to the input address register 26 in the memory controller 10 as shown in the figure. This establishes a 4-way memory configuration 24-3.
  • FIGS. 17 and 18 are explanatory diagrams of the 4-way address map 38-3 corresponding to the 4-way interleave address conversion of FIG.
  • FIG. 19 is an explanatory diagram of memory module access by 4-way interleaving.
  • memory modules 14-1 to 14-4 with 256-byte size are divided into 128-byte areas according to the number of divisions 8 on the CPU side, and arrows 66-1 to As shown in 66-3, the memory modules 14-1, 14-2, 14-3, 1-4 are assigned to the first half of the memory modules 14-1 to 14-4 by the element selection address with the same address specified. Select in order and perform 4-way interleaved access.
  • each memory module 14 1-14 Address As shown in the decimal display, address numbers 0, 4, 8,..., 4 addresses are skipped, and access is performed by 4-way interleaving, and then the second address area 64-2 Thus, interleave is performed every four addresses, such as address numbers 1, 5, 7, ... in decimal notation, and address numbers 2, 6, 12, ... in the third address area 64-3.
  • 4-way interleave access, and 4-way interleave access with address numbers 3, 7, 11, ... as shown in the fourth address area 64-4 in Fig. 18 become.
  • Figure 20 shows the real address area usage table created when memory can be reconfigured in 1-way, 2-way, and 4-way, and the logical address area usage of the CPU address when 1-way memory is configured. It is explanatory drawing of the process which produces a table
  • FIG. 20A is an explanatory diagram of a 1-way search register 70-1 used to create a 1-way logical address table from the real address area utilization table 72 in FIG. 20B.
  • the real address area utilization table 72 corresponding to 1 way, 2 way and 4 way in FIG. 20 (B) is the real address area utilization table corresponding to 1 way and 2 way shown in FIG. 10 (B).
  • the actual address area is divided into 32 areas by adding 48 bits to memory address bit A1 and 48 bits.
  • the one-way search register 70-1 in Fig. 20 (A) is the one-way search register 46 in Fig. 10 (A).
  • FIG. 21 uses the same real address area utilization table 72 as FIG. 20 (B) and investigates using the two-way search register 70-2 in FIG. This is a process to create the same 2-way logical address area usage table 50-2.
  • the two-way search register 70-2 adjusts the usage flags of the four areas of groups 80-1 to 80-8 indicated by arrows on the right side of the real address area usage table 72. If all the usage flags of the four areas are “O”, record “O” in the 2-way logical address area usage table 50-2 and use at least one of the four areas. If “X”, use prohibition “X” is recorded in 2-way logical address area use table 50-2.
  • FIG. 22 is an explanatory diagram of processing for creating a logical address area usage table corresponding to a 4-way memory configuration using the same real address area usage table 72 as in FIG. 20 (B).
  • the 4 area use flag 82-1 to 82-8 indicated by the arrow on the right side is shown as the 4 area use flag. If all are available “Yes”, record the available “Yes” in the corresponding usage flag in the 4-way logical address area usage table 50-3 in FIG. On the other hand, if at least one usage flag of the four areas is use prohibition “X”, use prohibition “X” is stored in the use flag of the 4-way logical address area use table 50-3 in FIG.
  • FIG. 24 is a process for creating a logical address area usage table in the case of 1-way memory configuration from the real address area usage table shown in FIG. 20.
  • step S1 When 1 way is determined in step S1, it is executed in step S2.
  • step S2 Set the address in the address area utilization table 72 to the 1-way search register 70—1, set the address XYZ to the initial value in step S3, and then select the address XYZ in step S4.
  • Al, AO 00, 01, 10, 11 Investigate ⁇ IJ flags for each of the four areas.
  • Step S6 is skipped if all four areas are permitted in step S5, and if at least one of the areas is prohibited, step S6 is used to set the 1-way logical address area utilization table. Write disabled to address XYZ. Such processing is repeated while incrementing the address XY in step S8 until the final address of the address XY is determined in step S7.
  • FIG. 25 is a flowchart of a process for creating a logical address area usage table in a 2-way memory configuration from the real address area usage table 72 in FIG.
  • the address in the real address area utilization table 72 is set in the 2-way search register 70-2 in step S10, and the address XYZ is set as the initial address in step S11.
  • step S13 if all four areas are permitted to be used “Yes”, step S14 is skipped, and if at least one of the forces is unavailable “X”, two-way logic in step S14 Write use prohibition “X” in the area of address XYZ in the address area use table.
  • the processing from step S12 is repeated while incrementing the address in step S16 until the final address is determined in step S15.
  • FIG. 26 is a flowchart of the process of creating the logical address area use table 50-3 in the 4-way configuration from the real address area use table 72 in FIGS.
  • the address of the real address area utilization table 72 is set in the 4-way search register 70-3 in step S18, and the address XYZ is initialized in step S19.
  • the address XYZ is initialized in step S19.
  • step S21 if all four areas are permitted to be used "Yes”, step S22 is skipped, and if at least one of the forces is prohibited to use "X”, the process proceeds to step S22, and FIG. Write usage prohibition “X” to the usage flag in Table 4- 3 of 4-way logical address area usage.
  • the processing from step S20 is repeated while incrementing the address in step S24 until the final address is determined in step S23.
  • the present invention provides a program executed by a memory controller of a computer system, that is, a memory control device, and this program is shown in FIG. 12, FIG. 13, FIG. 14, FIG. 15, FIG. The contents shown in the flowcharts of FIGS. 25 and 26 are obtained.
  • the number of CPU space divisions N and the number of ways of interleaving control W can be arbitrarily determined as necessary, and preferably each is determined as a power of two.
  • the embodiment described above is an example in which the size per memory module is set to 256 bytes.
  • the memory size of this memory module is also necessary. An appropriate value can be taken according to the above.
  • the process of creating the logical address area usage table from the real address area usage table at the time of starting the computer system and at the time of memory reconfiguration is taken as an example.
  • the creation process from the real address area usage table is not limited to the timing of the appropriate memory configuration, such as when restarting due to a power down or when reconfiguring due to system switching. You may make it perform when it detects.

Abstract

 素子選択アドレスとメモリ素子アドレスから構成される実アドレスにより複数のメモリ素子を、N領域に分割された論理アドレス空間を利用したCPUの論理アドレスをウェイ数Wで決まる実アドレスに変換してインタリーブ制御によりアクセスする。複数のメモリ素子で構成される実アドレス空間を、CPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成して保持し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する。システム起動時又は再構成時には、インタリーブ制御のウェイ数で決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間をN領域に分割して利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表をその都度生成し、CPUが利用する論理アドレス空間の領域を決定する。

Description

明 細 書
メモリ制御方法、プログラム及び装置
技術分野
[0001] 本発明は、複数のメモリモジュールで構成されたメモリをアクセスするメモリ制御方 法、プログラム及び装置に関し、特に、メモリモジュールの異常箇所に基づき CPUの アドレス空間に利用禁止領域を設定するメモリ制御方法、プログラム及び装置に関す る。
背景技術
[0002] 従来、マルチ CPU構成のコンピュータシステムに利用される主記憶などの記憶装 置にあっては、独立してアクセス可能なメモリ素子である複数のメモリモジュール (メモ リバンクともいう)をボードに実装して記憶装置を構築しており、このように記憶装置に 利用されるメモリモジュールは、メモリモジュールの生産過程によって生ずる品質の ばらつきは不回避である。
[0003] このメモリモジュールの生産上の品質のばらつきにより、記憶装置に実装して利用 している間に、一部のアドレスについてデータの読み書きを正常に行うことができなく なる異常が発生する場合がある。メモリ異常を検出した場合には、メモリ異常を起して いるメモリモジュールを特定し、システム力も異常部分を排除することで、システムを 安定運用することが重要である。
[0004] また、一度異常と認識したメモリモジュールについては、例えインタリーブ制御のゥ エイ数の変更によりメモリ構成が変わっても、異常メモリモジュールが交換されるまで はシステムに組み込まないようにすることが、運用システムにおける堅牢性の向上、 運用後に故障が起こったときの故障保守作業時間、保守にかかるコストの節減のた めに必要なことである。
[0005] そこで従来の記憶装置にあっては、メモリコントローラのハードウェア機能により、メ モリ異常を検出した場合に、メモリ異常を起しているメモリモジュールを特定し、シス テム力も異常部分を排除するようにしている。即ち、メモリコントローラは、 CPU力も見 えるメモリモジュールのアドレス空間を適当な大きさの領域に分割し、メモリモジユー ルの異常を検出した場合には、異常個所に対応した領域を利用禁止に設定し、 CP uにより利用可能な領域に異常個所を含む領域を組み込まないようにメモリを縮退す るメモリ制御を行っている。
特許文献 1 :特開平 2— 166543号公報
特許文献 2 :特開平 4— 165548号公報
発明の開示
発明が解決しょうとする課題
[0006] し力しながら、従来のメモリ制御にあっては、メモリ異常を起しているメモリモジユー ルを特定してシステムに組み込まな 、ように縮退する機能をノヽードウエア機能により 実装していたため、実装回路の増大によるコストアップおよびサイズ増大が問題とな つている。
[0007] また CPUから見えるメモリモジュールのアドレス空間を適当な大きさの領域に分割 して CPUで利用可能な領域を管理する従来のメモリ制御方法にあっては、インタリー ブ制御におけるウェイ数の変更によりメモリ構成を変更した場合に対応することができ ない。
[0008] 例えばインタリーブ制御のウェイ数は 1ウェイ (インタリーブなし)力も 2ウェイのメモリ 構成に変更した場合、メモリモジュールの実アドレスと CPUから見える論理アドレスと の対応関係も変更されることになり、例えばメモリ構成変更前の異常個所のアドレス は m番目の領域に対応していたものが、メモリ構成変更後は別の n番目の領域に対 応すると ヽつたことが発生する。
[0009] このためメモリ構成を変更した後に、改めてメモリモジュールの異常箇所を特定し、 構成変更後の CPU力も見えるアドレス空間の分割領域にっ 、て、メモリモジュール の異常個所に対応した領域を判別して利用禁止に設定し、 CPUの利用領域に異常 個所を含む領域を組み込まな 、ようにする領域管理を必要とし、構成変更前の領域 利用情報を構成変更後に引き継ぐことができず、メモリ再構成後の CPU利用可能領 域を決定するための処理負担が増大し、メモリ構成変更後の処理再開に時間がかか る問題がある。
[0010] 本発明は、 CPU力も見たメモリアドレス空間を分割した領域の利用情報をメモリ構 成を変更した際に引き継いで構成変更後の領域利用情報を簡単且つ迅速に設定可 能とするメモリ制御装置、方法及びプログラムを提供することを目的とする。
課題を解決するための手段
[0011] (方法)
本発明はメモリ制御方法を提供する。即ち本発明は、論理アドレスを実アドレス〖こ 変換してメモリをアクセスするメモリ制御方法に於いて、
メモリの異常を検出した際に、メモリの実アドレス空間の利用可能情報を記録した実 アドレス領域利用表の中の、異常が検出されたメモリに対応する領域に利用禁止情 報を記録するステップと、
実アドレス領域利用表から、論理アドレス空間における各領域の利用可能情報又 は利用禁止情報を記録した論理アドレス領域利用表を生成するステップと、 を備えたことを特徴とする。
[0012] 本発明はメモリ制御方法を提供する。即ち本発明は、 CPU力ゝらの論理アドレスを素 子選択アドレスとメモリ素子アドレス力 構成される実アドレスに変換して複数のメモリ 素子をアクセスするメモリ制御方法に於 ヽて、
N領域に分割された論理アドレス空間を利用した CPUの論理アドレスをウェイ数 W で決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、 異なるウェイ数 Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと 複数のメモリ素子で構成される実アドレス空間を、 CPU論理アドレス空間の領域数 Nにインタリーブ制御の最大ウェイ数 Wmaxを乗じた(N X Wmax)領域に分割して 利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ 素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁 止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数 Wで決まるメモリ構成に対応して、実アドレス領 域利用表力 論理アドレス空間における各領域に利用可能情報又は利用禁止情報 を記録した論理アドレス領域利用表を生成して CPUが利用する論理アドレス空間の 領域を決定する論理アドレス領域管理ステップと、 を備えたことを特徴とする。
[0013] ここで、インタリーブ制御ステップは、 2のべき乗数となる異なるウェイ数 Wのいずれ か指定によりメモリ構成を再構成する。
[0014] (1 2ウェイ切替)
インタリーブ制御ステップがウェイ数 1又は 2の指定によりメモリ再構成が可能な場 実アドレス領域管理ステップは (括弧内は例えば CPUアドレスが 10ビット、メモリ素 子アドレスが A7〜A0の 8ビット、素子選択アドレスが B1〜: BOの 2ビットの場合)、 素子選択アドレスの下位 2ビット(Bl BO)、
実アドレスの最上位ビット (A7)及び
実アドレスの最下位ビット (AO)
の 4ビットアドレス(Bl BO A7 AO)により CPU論理アドレス空間の領域数 Nにイン タリーブ制御の最大ウェイ数 2を乗じて (N X 2)分割された各領域に利用許可情報又 は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが 1ウェイで決まるメモ リ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位 2ビット(Bl BO)及び
実アドレスの最上位ビット (A7)
の 3ビットアドレス (Bl BO A7)により N分割された各領域に利用許可情報又は利 用禁止情報を記録した 1ゥヱイ論理アドレス領域利用表を作成して CPUが利用する 論理アドレス空間の領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが 2ウェイで決まるメ モリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第 2ビット (B1)、
実アドレスの最下位ビット (AO)及び
実アドレスの最上位ビット (A7)
の 3ビットアドレス (Bl AO A7)により N分割された各領域に利用許可情報又は利 用禁止情報を記録した 2ゥヱイ論理アドレス領域利用表を作成して前記 CPUが利用 する論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
(1 2— 4ウェイ切替)
インタリーブ制御ステップが、ウェイ数 1、 2又は 4の指定によりメモリ再構成可能な σ、
実アドレス領域管理ステップは (括弧内は例えば CPUアドレスが 10ビット、メモリ素 子アドレスが A7〜A0の 8ビット、素子選択アドレスが B1〜: BOの 2ビットの場合)、 素子選択アドレスの下位 2ビット(Bl BO)、
実アドレスの最上位ビット (A7)及び
実アドレスの最下位 2ビット(Al AO)
の 5ビットアドレス(Bl BO A7 Al AO)により CPU論理アドレス空間の領域数 N にインタリーブ制御の最大ウェイ数 4を乗じて (N X 4)分割された各領域に利用許可 情報又は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが 1ウェイで決まるメモリ 構成の場合、実アドレス領域利用表の
素子選択アドレスの下位 2ビット(Bl BO)及び
実アドレスの最上位ビット (A7)
の 3ビットアドレス (Bl BO A7)により N分割された各領域に利用許可情報又は利 用禁止情報を記録した 1ゥヱイ論理アドレス領域利用表を作成して CPUが利用する 論理アドレス空間の分割領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが 2ウェイで決まるメ モリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第 2ビット (B1)、
実アドレスの最下位ビット (AO)及び
実アドレスの最上位ビット (A7)
の 3ビットアドレス (Bl AO A7)により N分割された各領域に利用許可情報又は利 用禁止情報を記録した 2ゥヱイ論理アドレス領域利用表を作成して CPUが利用する 論理アドレス空間の分割領域を決定し、
更に論理アドレス領域管理ステップは、インタリーブ制御ステップ力 ウェイで決まる メモリ構成の場合、実アドレス領域利用表の
実アドレスの下位 2ビット(Al AO)及び
実アドレスの最上位ビット (A7)
の 3ビットアドレス (Al AO A7)により N分割された各領域に利用許可情報又は利 用禁止情報を記録した 4ゥヱイ論理アドレス領域利用表を作成して CPUが利用する 論理アドレス空間の分割領域を決定する。
[0016] (プログラム)
本発明はメモリ制御プログラムを提供する。本発明のメモリ制御プログラムは、 CPU 力 の論理アドレスを素子選択アドレスとメモリ素子アドレス力 構成される実アドレス に変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、
N領域に分割された論理アドレス空間を利用した CPUの論理アドレスをウェイ数 W で決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、 異なるウェイ数 Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと 複数のメモリ素子で構成される実アドレス空間を、 CPU論理アドレス空間の領域数 Nにインタリーブ制御の最大ウェイ数 Wmaxを乗じた(N X Wmax)領域に分割して 利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ 素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁 止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数 Wで決まるメモリ構成に対応して、実アドレス領 域利用表力 論理アドレス空間における各領域に利用可能情報又は利用禁止情報 を記録した論理アドレス領域利用表を生成して CPUが利用する論理アドレス空間の 領域を決定する論理アドレス領域管理ステップと、
を実行させることを特徴とする。
[0017] (装置)
本発明はメモリ制御装置を提供する。即ち、本発明のメモリ制御装置は、 素子選択アドレスとメモリ素子アドレス力も構成される実アドレスによりアクセスされる 複数のメモリ素子と、 N領域に分割された論理アドレス空間を利用した CPUの論理アドレスをウェイ数 W で決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりァクセ スし、異なるウェイ数 Wの指定によりメモリ構成を再構成可能なインタリーブ制御部と 複数のメモリ素子で構成される実アドレス空間を、 CPU論理アドレス空間の領域数 Nにインタリーブ制御の最大ウェイ数 Wmaxを乗じた(N X Wmax)領域に分割して 利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ 素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁 止情報を記録する実アドレス領域管理部と、
インタリーブ制御部のウェイ数 Wで決まるメモリ構成に対応して、実アドレス領域利 用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記 録した論理アドレス領域利用表を生成して CPUが利用する論理アドレス空間の領域 を決定する論理アドレス領域管理部と、
を備えたことを特徴とする。
本発明は情報処理装置を提供する。即ち、本発明は、
処理部と、
処理部に接続され、情報を記憶する記憶部と、
記憶装置へのアクセスを制御するメモリ制御部とを備えた情報処理装置に於いて、 メモリ制御部は、 CPUからの論理アドレスを実アドレスに変換して記憶部をアクセス する制御部と、
記憶部の実アドレス空間の領域ごとに記憶部の利用可否情報を記憶した第一のテ 一ブルに、異常が検出された前記記憶部の領域に関する利用禁止情報を記録する 実アドレス管理部と、
第一のテーブル内容に基づいて、論理アドレス空間における各領域の利用可否情 報を記録した論理アドレス領域利用表の内容を更新する論理アドレス領域管理部と を備えたことを特徴とする。
発明の効果 [0019] 本発明によれば、 CPU力 見たメモリモジュールの利用可能な領域の管理をメモリ 素子アドレスを基準として行う。メモリ素子アドレスは、メモリの構成変更に依存せず、 メモリ素子により決まる。メモリ異常箇所が同じであれば、その異常箇所を指すメモリ 素子アドレスは変わらない。このメモリ素子アドレスによる利用可能領域の情報として 実アドレス領域利用表を作成し、この実アドレス領域利用表をそのときのメモリ構成に 対応する CPU力 見えるアドレスでの利用可能な領域情報である論理アドレス領域 利用表に変換し、この論理アドレス領域利用表の情報を元にメモリ利用可能領域を 決定する。
[0020] このため、メモリ素子アドレスによる利用可能領域の情報として実アドレス領域利用 表を作成して保持しておくだけで良ぐインタ
リーブ制御のウェイ数に対応したメモリ構成ごとに異なる CPUアドレス力 見たメモリ 利用可能情報を保持する必要がなくなり、メモリ利用可能領域の管理が容易になる。
[0021] 更に、メモリの構成変更により、メモリ素子アドレスと CPU力 見えるアドレスの対応 が変更となった場合、変更前のメモリ異常個所に基づくメモリ縮退情報を引き継ぐこと ができ、新し 、CPUから見えるアドレスでのメモリ縮退情報を簡単に作成することが できる。
図面の簡単な説明
[0022] [図 1]本発明のメモリ制御装置を備えたコンピュータシステムのブロック図
[図 2]図 1のメモリコントローラのアドレス変 構の説明図
[図 3]1ウェイインタリーブのメモリ構成によるアドレス変 構の説明図
[図 4]図 3の 1ウェイインターリーブのアドレス変換に対応したアドレスマップの説明図 [図 5] 1ウェイインタリーブによるメモリモジュールのアクセスの説明図
[図 6]2ウェイインタリーブのメモリ構成によるアドレス変 構の説明図
[図 7]図 6の 2ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図 [図 8]2ウェイインタリーブによるメモリモジュールのアクセスの説明図
[図 9]CPUアドレス空間を 8領域とした場合のインタリーブ制御のウェイ数に対する実 アドレス空間の分割領域数、 CPUアドレスと実アドレスとの対応関係の説明図
[図 10]1ウェイと 2ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの 実アドレス領域利用表と、そこ力 作成される 1ウェイメモリ構成時の CPUの論理アド レス領域利用表の説明図
[図 11]1ウェイと 2ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの 実アドレス領域利用表と、そこ力 作成される 2ウェイメモリ構成時の CPUの論理アド レス領域利用表の説明図
[図 12]本発明におけるメモリ素子アドレスの実アドレス領域利用表作成処理のフロー チャート
[図 13]図 12の処理により作成した実アドレス領域利用表力もウェイ数に応じたメモリ 構成の論理アドレス領域利用表を作成して CPUの使用領域を決定するコンピュータ システムのフローチャート
[図 14]図 13のステップ S6による 1ウェイメモリ構成時の論理アドレス領域利用表を作 成する処理のフローチャート
[図 15]図 14に続く 2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理の フローチャート
圆 16]4ウェイインタリーブのメモリ構成によるアドレス変棚構の説明図
[図 17]図 16の 4ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図
[図 18]図 17に続くアドレスマップの説明図
[図 19]4ウェイインタリーブによるメモリモジュールのアクセスの説明図
[図 20] 1ウェイ、 2ウェイ又は 4ウェイでメモリ再構成可能な場合に作成されるメモリ素 子アドレスの実アドレス領域利用表と、そこから 1ウェイメモリ構成時の CPUの論理ァ ドレス領域利用表を作成する処理の説明図
[図 21] 1ウェイ、 2ウェイ又は 4ウェイでメモリ再構成可能な場合に作成されるメモリ素 子アドレスの実アドレス領域利用表と、そこから 2ウェイメモリ構成時の CPUの論理ァ ドレス領域利用表を作成する処理の説明図
[図 22] 1ウェイ、 2ウェイ又は 4ウェイでメモリ再構成可能な場合に作成されるメモリ素 子アドレスの実アドレス領域利用表と、そこ力 4ウェイメモリ構成時の CPUの論理ァ ドレス領域利用表を作成する処理の説明図
圆 23]図 22の実アドレス領域利用表力も作成した論理アドレス領域利用表の説明図 [図 24]1ウェイ、 2ウェイ又は 4ウェイに対応した実アドレス領域利用表から 1ウェイメモ リ構成時の論理アドレス領域利用表を作成する処理のフローチャート
[図 25] 1ウェイ、 2ウェイ又は 4ウェイに対応した実アドレス領域利用表から 2ウェイメモ リ構成時の論理アドレス領域利用表を作成する処理のフローチャート
[図 26] 1ウェイ、 2ウェイ又は 4ウェイに対応した実アドレス領域利用表カゝら 4ウェイメモ リ構成時の論理アドレス領域利用表を作成する処理のフローチャート
発明を実施するための最良の形態
[0023] 図 1は本発明のメモリ制御装置を備えたコンピュータシステムのブロック図である。
図 1において、本発明のメモリ制御装置を構成するメモリコントローラ 10に対しては、 CPU12— 1〜12— 4とメモリモジュール 14— 1〜14— 4が接続されている。メモリコ ントローラ 10にはインタリーブ制御部 16、実アドレス領域管理部 18及び論理アドレス 領域管理部 20が設けられ、更に実アドレス領域管理ファイル 22が接続されている。
[0024] メモリコントローラ 10のインタリーブ制御部 16は、異なるウェイ数 Wの指定によりメモ リ構成を再構成可能であり、ウェイ数 Wとしては例えば 2のべき乗となる 1ウェイ、 2ゥェ ィ、 4ウェイといったウェイ数のメモリ構成によるインタリーブ制御を行う。
[0025] ここでインタリーブ制御は複数のメモリモジュールに対し同一アドレスを指定し、モ ジュール選択アドレスによりモジュールを交互に切り替えながらアクセスする制御であ り、メモリモジュールを順番に選択してアクセスする場合に比べ、予めアドレス指定が 行われた状態でモジュールを切り替えることから、メモリモジュールの高速動作が可 能である。
[0026] そして 2ウェイのインタリーブとは 2つのメモリモジュール間に跨って同一アドレスを 指定してモジュールを切り替える制御であり、 4ウェイとは 4つのメモリモジュールに対 し同一アドレスを指定した状態でモジュールを順番に切り替えてアクセスする制御と なる。
[0027] また 1ウェイのインタリーブ制御とは、メモリモジュールを順番に選択しながらァクセ スするもので、複数のメモリモジュールに跨ったアドレス指定でないことから、これはィ ンタリーブなしのアクセスである力 説明を分力り易くするため、以下にあってはインタ リーブなしを 1ウェイのインタリーブ制御としている。 [0028] またインタリーブ制御部 16にあっては、メモリモジュール 14— 1〜14— 4側におけ るメモリ故障に対応するため、 CPU12— 1〜12— 4の CPUアドレスで見える論理ァ ドレス空間を複数領域、例えば N領域に分割し、メモリ異常を検出した際には異常個 所に対応した領域を利用禁止とする領域利用管理を行っている。
[0029] この CPU空間における利用管理領域は、従来は CPUのアドレス空間の分割領域 に分けて領域利用情報、即ち利用可能力利用禁止かを格納した論理アドレス領域 利用表を作成し、これに基づき CPUが利用する論理アドレス空間の領域を決定して いるが、本発明にあっては、このような CPUの論理アドレス空間を管理する論理アド レス領域利用表を固定的にメモリコントローラ 10が保持せず、メモリモジュール 14— 1〜1 44側のメモリ素子アドレスに基づいて、 CPUの論理アドレス空間の論理アド レス領域利用表に変換可能な実アドレス領域利用表を作成して保持している。
[0030] 即ちメモリコントローラ 10に設けた実アドレス領域管理部 18は、メモリモジュール 14
- 1〜14— 4で構成される実アドレス空間を、 CPU側の論理アドレス空間の領域数 Wに、インタリーブ制御部 16で再構成可能な異なるウェイ数 Wのうちの最大ウェイ数 Wmaxを乗じた (N XWmax)の領域に分割し、この分割領域ごとに、初期状態にあ つては利用可能情報を記録した全ウェイ数のメモリ構成で共用できる実アドレス領域 利用表を作成している。
[0031] この実アドレス領域利用表には、メモリモジュール 14— 1〜14— 4の異常を検出し た際に、異常箇所を含む実アドレス領域利用表の領域に利用禁止情報を記録する。 実アドレス領域管理部 18で作成されたインタリーブ制御部 16でメモリ構成の再構成 可能な全ウェイ数に共通な実アドレス領域利用表は、実アドレス領域管理ファイル 22 に保存される。
[0032] メモリコントローラ 10の論理アドレス領域管理部 20は、コンピュータシステムの立上 げ時あるいはインタリーブ制御部 16におけるメモリ構成の再構成時に、実アドレス領 域管理ファイル 22に保持されている実アドレス領域利用表力も CPU側の論理アドレ ス空間を N領域に分割して利用可能情報または利用禁止情報を記録した論理アドレ ス領域利用表をその都度作成し、作成した論理アドレス領域利用表に基づいて、立 上げ時またはメモリ再構成時に CPU12— 1〜 12—4が利用する論理アドレス空間の 領域を決定するようにして 、る。
[0033] このように本発明のメモリ制御にあっては、メモリモジュール 14— 1〜14 4の実ァ ドレスから見た CPU側の論理アドレス空間の領域を生成可能な実アドレス領域利用 表を作成して保持しておくことで、インタリーブ制御部 16でウェイ数に応じてメモリ構 成が決まれば、そのウェイ数により決まったメモリ構成に対応した変換処理により実ァ ドレス領域管理ファイル 22に保持されている実アドレス領域利用表から、そのときの ウェイ数のインタリーブ制御に対応した論理アドレス領域利用表をその都度作成して 、 CPUが利用する論理アドレス空間の領域を決定することができる。
[0034] この結果、メモリコントローラ 10においてメモリ構成を変更した場合にも、変更前の 領域利用情報を変更後に引き継いで、 CPUのアドレス空間における領域の利用可 能情報または利用禁止情報を簡単に生成して、メモリモジュール 14— 1〜14— 4の 任意の位置における異常箇所を CPU側の領域に組み込まな 、ようにすることができ る。
[0035] このような本発明のメモリ制御につき、インタリーブ制御部 16でウェイ数 1または 2の 指定によりメモリ再構成が可能な場合を例にとって具体的に説明する。
[0036] 図 2は図 1のメモリコントローラ 10のウェイ数の設定によりインタリーブ制御のメモリ構 成を再構成可能なアドレス変換機構の説明図である。
[0037] 図 2において、メモリモジュール 14 1〜14 4はそれぞれ 256バイトであり、合計 サイズは 1024バイトを例にとっている。このようなメモリモジュール 14— 1〜14 4で 構成される 1024バイトのメモリ空間につき、 CPU12— 1〜12— 4側にあっては、例 えば N = 8領域に分割して利用可能情報を管理しており、 CPU側の 1領域のサイズ は 128バイトとなる。
[0038] メモリモジュール 14— 1〜14— 4で構成される 1024バイトのメモリ空間は、 CPU12 — 1〜12— 4からの 10ビットの CPUアドレス C9〜COでアクセスすることができる。こ のためメモリコントローラ 10には、 10ビットの CPUアドレス C9〜COを保持する入力ァ ドレスレジスタ 26が設けられている。
[0039] 一方、メモリモジュール 14— 1〜14 4の実アドレスは、メモリモジュール 14— 1〜 14 4のそれぞれをアクセスする 8ビットのメモリ素子アドレス A7〜A0と、メモリモジ ユール 14— 1〜14 4を選択するための 2ビットの素子選択アドレス Bl, BOで構成 される。
[0040] このためメモリモジュール 14— 1〜14— 4側には、メモリ素子アドレス A7〜 AOを格 納する出力アドレスレジスタ 28と、素子選択アドレス Bl, BOを保持するモジュール選 択レジスタ 30が設けられ、モジュール選択レジスタ 30のアドレスはメモリモジュール 選択器 32【こ人力され、 Bl, B0 = 00, 01, 10, 1 Uこより、メモリモジユーノレ 14 1〜 14—4を順次選択できるようにして 、る。
[0041] 入力アドレスレジスタ 26と出力アドレスレジスタ 28の間にはセレクタ 34, 36が設け られている。セレクタ 34は、入力アドレスレジスタ 26の上位 2ビット C9, C8と出力アド レスレジスタ 28の下位 2ビット Al, AOの切替接続を行う。またセレクタ 36は、入力ァ ドレスレジスタ 26の上位 2ビット C9, C8と下位 2ビット CI, COのモジュール選択レジ スタ 30の素子選択ビット Bl, B0に対する切替接続を行う。
[0042] ここでメモリコントローラ 10のインタリーブ制御におけるウェイ数は、 1ウェイ、 2ウェイ 、 4ウェイの 3つによるメモリ構成の切替を例にとっており、セレクタ 34, 36による切替 接続で 1ウェイ、 2ウェイまたは 4ウェイによるアドレス変 構を実現するための接続 を確立できるようにして!/、る。
[0043] このため、入力アドレスレジスタ 26、出力アドレスレジスタ 28、メモリモジュール選択 器 32に設けたモジュール選択レジスタ 30、及びセレクタ 34, 36によって、インタリー ブ制御によるウェイメモリ構成 24を構築することができる。
[0044] 図 3は 1ウェイインタリーブのメモリ構成によるアドレス変 «構の説明図である。図 3において、メモリコントローラ 10は、図 2に示したセレクタ 34, 36による接続切替で、 図示の 1ウェイメモリ構成 24— 1の入力アドレスレジスタ 26に対する出力アドレスレジ スタ 28及びモジュール選択レジスタ 30の接続を確立し、これによつて CPU12— 1〜 12— 4からの 10ビットの CPUアドレス C9〜C0を入力アドレスレジスタ 26に保持した 状態で、出力アドレスレジスタ 28のメモリモジュール 14— 1〜14— 4の 8ビットのメモリ 素子アドレス A7〜A0とモジュール選択のための素子選択アドレス Bl, B0に変換し 、 1ウェイインタリーブに従ったメモリアクセスを実行する。
[0045] 1ウェイメモリ構成 24—1はインタリーブなしの場合であり、この場合には CPUァドレ スの上位 2ビット C9, C8を素子選択アドレス Bl, BOに変換し、 CPUアドレスの下位 8 ビット C7〜C0をメモリ素子アドレス A7〜A0に変換してアクセスする。
[0046] 図 4は図 3の 1ウェイインタリーブのアドレス変換に対応した 1ウェイアドレスビットマツ プ 38— 1の説明図である。図 4において、 1ウェイアドレスマップ 38— 1は、上欄にメ モリ選択とメモリアドレスに分けて、 CPUアドレス C9〜COと実アドレスとなる素子選択 アドレス Bl, BO及びメモリ素子アドレス A7〜A0を表示しており、 CPUアドレス C9〜 COをオール 0力 オール 1まで順次変化させたときのアドレスビットと、これに対応し たアドレス 10進表示を示している。
[0047] 図 5は 1ウェイインタリーブによるメモリモジュールのアクセス説明図であり、この場合 のアクセスは単純であり、 4つのメモリモジュール 14— 1〜 14— 3は点線で示すように 、 CPU側から見た場合に 8つの領域 42— 1〜42— 8に分けられている力 CPUアド レスをオール 0からオール 1まで順次変化させた場合、矢印 44— 1〜44— 8に示すよ うにメモリモジュール 14— 1〜14 3の順番、即ち CPU側から見た領域 42— 1〜42 - 8の順にアクセスすることができる。
[0048] ここで図 3のメモリモジュール 14— 1のアドレス「11111111」、即ち 10進表示でアド レス 255番にデータの読み書きができな 、メモリ異常が発生して 、たとすると、図 4の 1ウェイアドレスマップ 38— 1においては異常箇所 40となり、これは CPUアドレス C9 〜C0力ら見ると「00111111111」となり、 10進表示とした場合にち同じく 255番アド レスとなる。
[0049] 図 6は 2ウェイインタリーブのメモリ構成によるアドレス変 «構の説明図である。図 6のメモリコントローラ 10にあっては、インタリーブ制御のウェイ数 Wを 2ウェイに指定 することで、 2ウェイメモリ構成 24— 2に示す入力アドレスレジスタ 26に対する出力ァ ドレスレジスタ 28とメモリモジュール選択器 32に設けたモジュール選択レジスタ 30間 の接続が確立される。
[0050] 図 7は図 6の 2ウェイインタリーブのアドレス変換に対応した 2ウェイアドレスマップ 38
2の説明図である。この 2ウェイのインタリーブ制御にあっては、図 8のメモリモジュ ール 14— 1〜14— 4に示すように、 2つのメモリモジュール 14— 1〜14— 2の CPU 側の分割数で決まる 128バイト単位の領域につき、先頭アドレスで矢印 60— 1に示 すように、メモリモジュール 14— 1とメモリモジュール 14 2の同一アドレスを指定した 状態で、素子選択アドレスによりメモリモジュール 14— 1, 14— 2を順番に切り替えて 2アドレス分のアクセスを行う。
[0051] これをメモリモジュール 14—1, 14 2の前半の領域について行った後、次に後半 の領域についてこれを繰り返す。続いて、次のメモリモジュール 14— 3, 14— 4につ き、矢印 60— 3, 60— 4に示すように、 128バイトに分けた前半の領域の同一アドレス の指定による順次読出しと後半の領域の同一アドレスの指定による順次読出しを繰り 返す。
[0052] このような 2ウェイインタリーブによる図 7の 2ウェイアドレスマップ 38— 2にあっては、 CPUアドレス C9〜C0のオール 0からオール 1への変化に対し、メモリモジュール 14 —1, 14— 2を対象とした偶数アドレス領域 58— 1と奇数アドレス領域 58— 2、及びメ モリモジュール 14— 3, 14— 4を対象とした偶数アドレス領域 58— 3と奇数アドレス領 域 58— 4に分けられる。
[0053] そして前半の偶数アドレス領域 58— 1と奇数アドレス領域 58— 2にあっては、メモリ 選択アドレスに示すように、素子選択アドレス Bl, B0が「00」「01」と交互に変化する ことで、同一アドレスを 2つのメモリモジュール 14— 1, 14— 2に指定した状態でモジ ユール選択を行う 2ウェイのインタリーブ制御を行って 、る。この点は後半の偶数アド レス領域 58— 3,奇数アドレス領域 58— 4に対応したメモリモジュール 14— 3, 14— 4についても同様である。
[0054] このような 2ウェイアドレスマップ 38— 2にあっては、マップ上における図 4に示した 1 ウェイアドレスマップ 38— 1における異常箇所 40は同じアドレス位置として保存するこ とがでさる。
[0055] 図 9は本発明のメモリ制御における CPUアドレス空間の分割領域数 N、インタリー ブのウェイ数 W、 CPUアドレス空間の分割領域数 Nに最大ウェイ数 Wmaxを掛けた 値として与えられる実アドレス空間の分割領域数 M、更に、これに対応した CPU及び 実メモリアドレスの対応関係の説明図である。即ち図 9の対応表は、 N = 8、 W= l, 2 , 4、Μ = 8, 16, 32とした場合につき、それぞれのメモリ構成におけるアドレス変換 機構の変換関係を表わして 、る。 [0056] 図 10は、図 1のメモリコントローラ 10のインタリーブ制御部 16で 1ウェイと 2ウェイでメ モリ再構成可能な場合の実アドレス領域管理部 18により生成される実アドレス利用 表と、論理アドレス領域管理部 20により実アドレス利用表力 作成される 1ウェイのメ モリ構成で使用する論理アドレス領域利用表の説明図である。
[0057] 図 10 (A)は、図 10 (B)に示す実アドレス領域利用表 48から図 10 (C)に示す 1ゥェ ィ論理アドレス領域利用表 50—1を作成するために使用する 1ウェイサーチレジスタ 46— 1である。
[0058] まず図 10 (B)の実アドレス領域利用表 48は、項目欄 54に示すように、メモリモジュ ール 14— 1〜14— 4の実アドレスを構成する素子選択アドレスとメモリ素子アドレスを 使用した図 9の対応表から決まる 16領域に分けて利用フラグを格納して 、る。
[0059] この実アドレス領域利用表 48に格納する実アドレスは、実アドレス領域利用表 48の 上部に説明的に付加した項目 52のように、図 3の 1ウェイメモリ構成 24— 1に示すァ ドレス変^ ¾構により、 CPUアドレスの C9, C8, C7, COの 4ビットが対応している。
[0060] ここで実アドレス領域利用表 48の利用フラグは、利用可能情報として「〇」を記載し 、利用禁止情報として図 4に示した異常箇所 40のアドレスを含む領域に「 X」を記録 している。
[0061] このような実アドレス領域利用表 48から 1ウェイのインタリーブ制御のメモリ構成に必 要な図 10 (C)の 1ウェイ論理アドレス領域利用表 50 - 1を作成する際には、図 10 ( A )の 1ウェイサーチレジスタ 46— 1を使用して実アドレス領域利用表 48の利用フラグを 調べる。
[0062] 1ウェイサーチレジスタ 46— 1は、 X、 Y、 Ζ、更に「OZl」領域と利用フラグの格納領 域で構成されており、実アドレス領域利用表 48を調べる際には
Χ=Β1
Υ=ΒΟ
Ζ=Α7
ΑΟ = 0/1
を格納し、上位 3ビットが同一で 4ビット目力O又は 1と変化する 4ビットアドレスの 2領 域を調べる。 [0063] このような 1ウェイサーチレジスタ 46— 1による実アドレス領域利用表 48の調査は、 表の右側に矢印で示すように、領域ぺァ56— 1〜56— 8の各2っの領域にっき、利 用フラグが利用可能「〇」か利用禁止「X」かを調べ、 2つの領域につき両方とも利用 可能「〇」であれば、これに対応した図 10 (C)の領域の利用フラグを利用可能「〇」と し、 V、ずれか一方が利用禁止「 X」であれば図 10 (C)の論理アドレス領域利用表 50 - 1の利用フラグは利用禁止「 X」とする。
[0064] このような実アドレス領域利用表 48から作成された 1ウェイ論理アドレス領域利用表 50— 1を見ると、 CPU領域の 2番目の領域 # 1が利用禁止「 X」となっている。
[0065] 図 11は図 10 (B)と同じ実アドレス領域利用表 48を使用して、 2ウェイのインタリーブ 制御によるメモリ構成時に 2ウェイ論理アドレス領域利用表を作成する処理の説明図 である。
[0066] 図 11 (A)は、図 11 (B)の実アドレス領域利用表 48から図 11 (C)の 2ウェイ論理ァ ドレス領域利用表 50— 2を作成するための調査を行う 2ウェイサーチレジスタ 46— 2 である。 2ウェイサーチレジスタ 46— 2には上位側から
X=B1
ΒΟ = 0/1
Z=A7
Y=AO
を格納して、それぞれの 4ビット領域で決まる領域の利用フラグを調べる。
[0067] この 2ウェイサーチレジスタ 46— 2を使用した実アドレス領域利用表 48の調査は、 右側の矢印で示す領域ペア 62— 1〜62— 8にっき、 2つの領域の利用フラグが両方 とも利用許可「〇」であれば図 11 (C)の 2ウェイ論理アドレス領域利用表 50— 2の対 応する領域の利用フラグを利用可能「〇」とし、 V、ずれか一方が利用禁止「 X」であれ ば 2ウェイ論理アドレス領域利用表 50— 2の対応する領域の利用フラグを利用禁止「 X」に記録する。
[0068] この結果、 2ウェイのインタリーブ制御によるメモリ構成における 2ウェイ論理アドレス 領域利用表 50— 2のメモリ異常箇所を含む CPU領域は、 4番目の CPU領域 # 3で あることが分力ゝる。 [0069] 図 12は本発明におけるメモリ素子アドレス力も見た実アドレス領域利用表を作成す る処理のフローチャートである。図 12において、実アドレス領域利用表の作成処理は 、ステップ S1で論理アドレス空間の分割領域数 N、例えば N = 8を読み込み、ステツ プ S2でメモリ構成可能なウェイ数 W、例えば W= l, 2, 4を読み込み、ステップ S3で 論理アドレス空間の領域数 Nに最大ウェイ数 Wmaxを掛け合わせて実アドレス空間 の分割数 Mを算出する。例えば 1ウェイと 2ウェイで切替可能な場合には、 M = 8 X 2 = 16として 16領域の分割数を求める。
[0070] 続いてステップ S4で、例えば図 10 (B)に示したような 1ウェイと 2ウェイの再構成が 可能な場合には、素子選択アドレス Bl, BO及びメモリ素子アドレスの最上位ビット A 7と最下位ビット AOの 4ビットを使用して 16分割した領域を持つ実アドレス領域利用 表を作成し、その利用フラグ即ち利用情報としては、初期作成時にあっては利用可 能「〇」を記録する。
[0071] 図 13は図 12の処理により作成した実アドレス領域利用表力もインタリーブ制御のゥ エイ数に応じたメモリ構成の論理アドレス表を作成して CPUの使用領域を決定するコ ンピュータシステムのフローチャートである。
[0072] 図 13において、コンピュータシステムは、ステップ S1で電源起動に伴い初期化と診 断を実行し、ステップ S2でもしメモリ異常が検出されると、ステップ S3で異常メモリモ ジュールの素子選択アドレスとメモリ素子アドレスを取得し、ステップ S4で、既に作成 した実アドレス領域利用表の異常箇所に対応した分割領域に使用禁止情報を書き 込む。もちろんステップ S2でメモリ異常がなければ、ステップ S3, 4の処理はスキップ する。
[0073] 続いてステップ S5でメモリ構成のウェイ数を取得し、ステップ S6で実アドレス領域利 用表からウェイ数で決まるメモリ構成の論理アドレス領域利用表を作成し、 CPUの利 用領域を決定する。
[0074] 続いてステップ S7でコンピュータのブート処理に伴って OSのインストールを行い、 ステップ S8でアプリケーションによる運用処理に入る。この運用処理中にステップ S9 でメモリ構成の変更があると、ステップ S5に戻り、このメモリ構成の変更に伴う変更後 のウェイ数を取得し、ステップ S6で実アドレス領域利用表力もメモリ構成変更後のゥ エイ数で決まるメモリ構成の論理アドレス領域利用表を作成して CPUの利用領域を 決定し、再起動などによりステップ S7からの OSのインストールを経て、ステップ S8の アプリケーションによる運用処理に入る。
[0075] 図 14は図 13のステップ S6による 1ウェイメモリ構成時の論理アドレス領域利用表を 作成する処理のフローチャートである。図 14において、ステップ S1でインタリーブに よるメモリ構成が 1ウェイであることを判別すると、ステップ S2に進み、図 10 (A)の 1ゥ エイサーチレジスタ 46— 1に実アドレス領域利用表 48の実アドレス側の 4ビットを配置 した後、ステップ S3でアドレス XYをオール 0にセットし、ステップ S4でアドレス XYZに つき実アドレス領域利用表 48における AO = 0の領域と AO = 1の領域の利用フラグを 調査する。
[0076] ステップ S5で 2つの領域の両方が利用許可「〇」であればステップ S6をスキップし 、少なくとも!/、ずれか一方が利用禁止「 X」であった場合にはステップ S6で図 10 (C) の 1ウェイ論理アドレス領域利用表 50— 1に、そのときのアドレス XYZに対応した領 域に使用禁止「 X Jを書き込む。
[0077] 続いてステップ S7でアドレス XYZが最終アドレスか否かチェックし、最終アドレスで なければ、ステップ S8でアドレス XYZを 1つインクリメントし、ステップ S4からの処理を 繰り返す。
[0078] 図 15は図 14に続く 2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理 のフローチャートである。図 15にあっては、ステップ S9でメモリ構成が 2ウェイであるこ とを判別すると、ステップ S 10に進み、図 11 (A)に示した 2ウェイサーチレジスタ 46— 2に図 11 (B)の実アドレス領域利用表 48のアドレスをセットする。
[0079] 続!、てステップ SI 1でアドレス XYZをオール 0の初期値にセットした後、ステップ S1 2でアドレス XYにっき B0 = 0と B0= 1の 2つの領域の利用フラグを調査する。続いて ステップ S13で 2つの領域の利用フラグの両方が利用許可「〇」の場合は、ステップ S 14はスキップする。
[0080] 少なくともいずれか一方が利用禁止「X」であった場合にはステップ S14に進み、図 11 (C)に示した 2ウェイ論理アドレス領域利用表 50— 2のアドレス XYZに対応した領 域に利用禁止「 X」を書き込む。続 、てステップ S 15でアドレス XYZが最終アドレスか 否かチェックし、そうでなければステップ S16に戻ってアドレス XYZを 1つインクリメント して、ステップ S 12からの処理を繰り返す。
[0081] 次に図 1のメモリコントローラ 10に設けたインタリーブ制御部 16において、インタリー ブ制御によるメモリ構成として、 1ウェイ、 2ウェイ及び 4ウェイのメモリ再構成が可能な 場合の実アドレス領域利用表の作成と、そこから生成する論理アドレス領域利用表の 作成を説明する。
[0082] 図 16は 4ウェイインタリーブのメモリ構成によるアドレス変 «構の説明図であり、メ モリコントローラ 10における入力アドレスレジスタ 26に対し、出力アドレスレジスタ 28 及びモジュール選択レジスタ 30は図示のように接続され、これによつて 4ウェイメモリ 構成 24— 3を確立する。
[0083] 図 17及び図 18は、図 16の 4ウェイインタリーブのアドレス変換に対応した 4ウェイア ドレスマップ 38— 3の説明図である。
[0084] 図 19は 4ウェイインタリーブによるメモリモジュールのアクセスの説明図である。図 1 9において、 4ウェイのインタリーブ制御にあっては、 256バイトサイズを持つメモリモ ジュール 14— 1〜14— 4を CPU側の分割数 8に応じた 128バイト領域に分け、矢印 66— 1〜66— 3に示すように、メモリモジュール 14— 1〜14— 4の前半について、同 一アドレスを指定した状態で素子選択アドレスによりメモリモジュール 14— 1, 14- 2 , 14- 3, 1—4を順番に選択して、 4ウェイインタリーブのアクセスを行う。
[0085] これをメモリモジュール 14 1〜14 4の前半の領域につき繰り返した後、後半の 領域【こつ ヽて矢 1, 68- 2, 68— 3【こ示すよう【こ、 4つのメモリモジユーノレ 14 1〜14 4にっき同一アドレスを指定した状態で素子選択アドレスにより順次切り 替えて、 4インタリーブによるアクセスを繰り返す。
[0086] このような 4ウェイのインタリーブ制御による図 17及び図 18の 4ウェイアドレスマップ 38— 3にあっては、まず第 1アドレス領域 64—1に示すように、各メモリモジュール 14 1〜14 4にっき、アドレス 10進表示に示すようにアドレス番号 0, 4, 8, · · ·と 4ァ ドレスずつ飛びながら 4ウェイインタリーブによるアクセスを行 、、続!ヽて第 2アドレス 領域 64— 2のように、 10進表示でアドレス番号 1, 5, 7, · · ·というように 4アドレス置き となるインタリーブを行い、更に第 3アドレス領域 64— 3でアドレス番号 2, 6, 12, · · · t 、うように 4ウェイインタリーブのアクセスを行 、、更に図 18の第 4アドレス領域 64— 4に示すようにアドレス番号 3, 7, 11, · · ·とする 4ウェイインタリーブによるアクセスを 行うことになる。
[0087] 図 20は、 1ウェイ、 2ウェイ、 4ウェイでメモリ再構成可能な場合に作成される実ァドレ ス領域利用表と、そこから 1ウェイメモリ構成時の CPUアドレスの論理アドレス領域利 用表を作成する処理の説明図である。
[0088] 図 20 (A)は、図 20 (B)の実アドレス領域利用表 72から 1ウェイ論理アドレス表を作 成するために使用する 1ウェイサーチレジスタ 70— 1の説明図である。
[0089] まず図 20 (B)の 1ウェイ、 2ウェイ及び 4ウェイに対応した実アドレス領域利用表 72 は、図 10 (B)に示した 1ウェイと 2ウェイに対応した実アドレス領域利用表 48に、更に メモリアドレスビット A1をカ卩えた 4ビットとすることで、実アドレス領域を 32領域に分割 している。
[0090] 図 20 (A)の 1ウェイサーチレジスタ 70— 1は、図 10 (A)の 1ウェイサーチレジスタ 46
1にメモリアドレスのアドレスビット A1 = 0/1をカ卩えており、この 1ウェイサーチレジ スタ 70— 1を使用して実アドレス領域利用表 72を調査することで、図 10 (C)に示した と同じ 1ウェイ論理アドレス領域利用表 50 - 1を作成することができる。
[0091] 1ウェイサーチレジスタ 70—1による実アドレス領域利用表 72の調査は、 4つの領域 を 1グループとしたグループ 78— 1〜78— 8のそれぞれにっき、 4領域の利用フラグ が全て利用可能「〇」であれば、図 10 (C)の 1ウェイ論理アドレス領域利用表 50— 1 の対応する利用フラグに利用可能「〇」を記録する。
[0092] 1グループを構成する領域の少なくともずれか 1つが利用禁止「X」であれば、図 10
(C)の 1ウェイ論理アドレス領域利用表 50— 1の利用フラグに利用禁止「 X」を書き込 む。
[0093] 図 21は、図 20 (B)と同じ実アドレス領域利用表 72を使用して、図 21の(A)の 2ゥェ ィサーチレジスタ 70— 2により調査して、図 11 (C)と同じ 2ウェイ論理アドレス領域利 用表 50— 2を作成する処理である。
[0094] この場合には、 2ウェイサーチレジスタ 70— 2により実アドレス領域利用表 72の右側 に矢印で示す 4つの領域のグループ 80— 1〜80— 8のそれぞれの利用フラグを調 ベ、 4つの領域の利用フラグが全て利用可能「〇」であれば 2ウェイ論理アドレス領域 利用表 50— 2に利用可能「〇」を記録し、 4つの領域の少なくともいずれか 1つが利 用不可「 X」であれば 2ウェイ論理アドレス領域利用表 50— 2に利用禁止「 X」を記録 する。
[0095] 図 22は、図 20 (B)と同じ実アドレス領域利用表 72を使用して 4ウェイのメモリ構成 に対応した論理アドレス領域利用表を作成する処理の説明図である。図 22 (A)は実 アドレス領域利用表 72の調査に使用する 4ウェイサーチレジスタ 70— 3であり、 X=A1
Y=A0
Z=A7
B0 = 0/1
Bl = 0/1
をセットする。
[0096] 即ち、アドレス XYZを 000〜111で変化させながら各位置ごとに Bl, BOを 00, 01 , 10, 11の 4段階に変化させて、実アドレス領域利用表 72を調査する。
[0097] この 4ウェイサーチレジスタ 70— 3を用いた実アドレス領域利用表 72の調査により、 その右側に矢印で示す 4領域のグループ 82— 1〜82— 8にっき、 4領域の利用フラ グが全て利用可能「〇」であれば、図 23の 4ウェイ論理アドレス領域利用表 50— 3の 対応する利用フラグに利用可能「〇」を記録する。一方、 4領域の少なくともいずれか 1つの利用フラグが利用禁止「 X」であれば、図 23の 4ウェイ論理アドレス領域利用表 50 - 3の利用フラグに利用禁止「 X」を格納する。
[0098] このような実アドレス領域利用表 48から作成された図 23の 4ウェイ論理アドレス領域 利用表 50— 3を見ると、 CPU領域の 8番目の領域 # 7が利用禁止「 X」となっている
[0099] このように、 1ウェイ、 2ウェイ、 4ウェイにっ 、てメモリ構成が再構成可能な場合につ いても、メモリ素子アドレスから見た 1つの実アドレス領域利用表 72を作成して保存し ておくことで、その後はメモリ構成が確定するごとに、そのメモリ構成を確定するインタ リーブ制御のウェイ数に応じた実アドレス領域利用表の調査即ち変換操作により、そ れぞれのウェイ数に対応した論理アドレス領域利用表を作成して、 CPU側の使用可 能領域を決定することができる。
[0100] 図 24は図 20に示した実アドレス領域利用表から 1ウェイメモリ構成時の論理アドレ ス領域利用表を作成する処理であり、ステップ S1で 1ウェイを判別すると、ステップ S 2で実アドレス領域利用表 72のアドレスを 1ウェイサーチレジスタ 70— 1にセットし、ス テツプ S3でアドレス XYZを初期値にセットした後、ステップ S4でアドレス XYZにっき Al, AO = 00, 01, 10, 11の 4領域につき禾 IJ用フラグを調査する。
[0101] 続!、てステップ S5で 4領域の全てが利用許可であればステップ S6はスキップし、少 なくともいずれか 1つが利用禁止であればステップ S6で 1ウェイ論理アドレス領域利 用表のアドレス XYZに使用禁止を書き込む。このような処理をステップ S7でアドレス XYの最終アドレスを判別するまで、ステップ S8でアドレス XYをインクリメントしながら 繰り返す。
[0102] 図 25は、図 21において実アドレス領域利用表 72から 2ウェイメモリ構成時の論理ァ ドレス領域利用表を作成する処理のフローチャートである。図 25において、ステップ S9で 2ウェイのメモリ構成を判別すると、ステップ S10で実アドレス領域利用表 72の アドレスを 2ウェイサーチレジスタ 70— 2にセットし、ステップ S 11でアドレス XYZを初 期アドレスにセットした後、ステップ S12でアドレス XYZにっき Al, BO = 00, 01, 10 , 11の 4領域の利用フラグを調査する。
[0103] 続!、てステップ S 13で 4領域の全てが利用許可「〇」であればステップ S14はスキッ プし、少なくともいずれ力 1つが利用不可「 X」であればステップ S14で 2ウェイ論理ァ ドレス領域利用表のアドレス XYZの領域に利用禁止「 X」を書き込む。このステップ S 12からの処理を、ステップ S 15で最終アドレスを判別するまで、ステップ S 16でァドレ スをインクリメントしながら繰り返す。
[0104] 図 26は、図 22及び図 23における実アドレス領域利用表 72から 4ウェイ構成時の論 理アドレス領域利用表 50— 3を作成する処理のフローチャートである。図 26におい て、ステップ S 17で 4ウェイのメモリ構成を判別すると、ステップ S 18で実アドレス領域 利用表 72のアドレスを 4ウェイサーチレジスタ 70— 3にセットし、ステップ S19でァドレ ス XYZを初期値にセットした後、ステップ S20でアドレス XYZにっき Bl, BO = 00, 0 1, 10, 11の 4領域の利用フラグを調査する。
[0105] 続いてステップ S21で、 4領域の全てが利用許可「〇」であればステップ S22はスキ ップし、少なくともいずれ力 1つが利用禁止「X」であればステップ S22に進み、図 23 の 4ウェイ論理アドレス領域利用表 50— 3の利用フラグに利用禁止「 X」を書き込む。 このステップ S20からの処理を、ステップ S23で最終アドレスを判別するまで、ステツ プ S24でアドレスをインクリメントしながら繰り返す。
[0106] また本発明は、コンピュータシステムのメモリコントローラ、即ちメモリ制御装置で実 行されるプログラムを提供するものであり、このプログラムは図 12、図 13、図 14、図 1 5、図 24、図 25、図 26のフローチャートに示した内容を持つことになる。
[0107] また上記の実施形態は、 CPUの論理アドレス空間の分割数 Nを N = 8、インタリー ブ制御のウェイ数を 1ウェイ、 2ウェイ、 4ウェイとした場合を例にとるものである力 CP U空間の分割数 N及びインタリーブ制御のウェイ数 Wは必要に応じて任意に定める ことができ、望ましくはそれぞれ 2のべき数として定めることが望まし 、。
[0108] また上記の実施形態は、説明を簡単にするため、メモリモジュール 1つ当たりのサイ ズを 256バイトとした場合を例に取るものであった力 このメモリモジュールのメモリサ ィズについても必要に応じて適宜の値をとることができる。
[0109] また上記の実施形態にあっては、コンピュータシステムの起動時とメモリ再構成時に おける実アドレス領域利用表からの論理アドレス領域利用表の作成処理を例に取る ものであつたが、この実アドレス領域利用表からの作成処理は、これ以外に、電源ダ ゥンに伴う再起動時、システム切替えによる再構成時など、適宜のメモリ構成のタイミ ング、更にはメモリモジュールにっき新たな異常箇所を検出した際に行うようにしても よい。
[0110] 特にメモリモジュールの故障検出については、保存している実アドレス領域利用表 の対応する領域の許可フラグを利用禁止に書き替える処理を異常検出が行われるご とに実行することが望ましい。これによつて、メモリ異常による縮退状況をリアルタイム に反映した CPU側におけるメモリ領域の利用に反映した制御を行うことができる。
[0111] また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の 実施形態に示した数値による限定は受けない。

Claims

請求の範囲
[1] 論理アドレスを実アドレスに変換してメモリをアクセスするメモリ制御方法に於 、て、 前記メモリの異常を検出した際に、前記メモリの実アドレス空間の利用可能情報を 記録した実アドレス領域利用表の中の、前記異常が検出されたメモリに対応する領 域に利用禁止情報を記録するステップと、
前記実アドレス領域利用表から、前記論理アドレス空間における各領域の利用可 能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成するステップと を備えたことを特徴とするメモリ制御方法。
[2] CPUからの論理アドレスを素子選択アドレスとメモリ素子アドレス力 構成される実 アドレスに変換して複数のメモリ素子をアクセスするメモリ制御方法に於いて、
N領域に分割された論理アドレス空間をもつ CPUの論理アドレスをウェイ数 Wで決 まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、 異なるウェイ数 Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと 前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アド レス空間を、前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制御の最大 ウェイ数 Wmaxを乗じた (N X Wmax)領域に分割して利用可能情報を記録した実ァ ドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領 域管理ステップと、
前記インタリーブ制御ステップのウェイ数 Wで決まるメモリ構成に対応して、前記実 アドレス領域利用表力 前記論理アドレス空間における各領域の利用可能情報又は 利用禁止情報を記録した論理アドレス領域利用表を生成して前記 CPUが利用する 前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、 を備えたことを特徴とするメモリ制御方法。
[3] 請求項 2記載のメモリ制御方法に於いて、前記インタリーブ制御ステップは、 2のべ き乗数となる異なるウェイ数 Wのいずれか指定によりメモリ構成を再構成することを特 徴とするメモリ制御方法。 [4] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1又は 2の指定によりメモリ再構成が可能 であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの最下位ビット
の 4ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 2を乗じて (N X 2)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 1ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ゥェ ィで決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[5] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1又は 2の指定によりメモリ再構成が可能 であり、 前記実アドレス領域管理ステップは、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの最下位ビット
の 4ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 2を乗じて (N X 2)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成することを特徴とするメモリ制御方法
[6] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1又は 2の指定によりメモリ再構成が可能 であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 1ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[7] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1又は 2の指定によりメモリ再構成が可能 であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
請求項 2記載のメモリ制御方法に於 、て、
前記インタリーブ制御ステップは、ウェイ数 1、 2又は 4の指定によりメモリ再構成可 能であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの下位 2ビット
の 5ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 4を乗じて (N X 4)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップカ^ゥエイで決 まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ゥェ ィで決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
更に前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップ力 ゥェ ィで決まるメモリ構成の場合、前記実アドレス領域利用表の 実アドレスの下位 2ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 4ゥ イ論理アドレス領域利用表を作成して前記 CPUが使用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[9] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1、 2又は 4の指定によりメモリ再構成可 能であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの下位 2ビット
の 5ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 4を乗じて (N X 4)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成することを特徴とするメモリ制御方法
[10] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1、 2又は 4の指定によりメモリ再構成可 能であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップカ^ゥエイで決 まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[11] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1、 2又は 4の指定によりメモリ再構成可 能であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[12] 請求項 2記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数 1、 2又は 4の指定によりメモリ再構成可 能であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップ力 ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
実アドレスの下位 2ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 4ゥ イ論理アドレス領域利用表を作成して前記 CPUが使用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御方法。
[13] CPUからの論理アドレスを素子選択アドレスとメモリ素子アドレス力 構成される実 アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、 N領域に分割された論理アドレス空間を利用した CPUの論理アドレスをウェイ数 W で決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりァクセ スし、異なるウェイ数 Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステ ップと、
前記複数のメモリ素子で構成される実アドレス空間を、前記 CPU論理アドレス空間 の領域数 Nに前記インタリーブ制御の最大ウェイ数 Wmaxを乗じた(N X Wmax)領 域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を 作成し、前記メモリ素子の異常を検出した際に前記実アドレス領域利用表の異常個 所を含む領域に利用禁止情報を記録する実アドレス領域管理ステップと、
前記インタリーブ制御ステップのウェイ数 wで決まるメモリ構成に対応して、前記実 アドレス領域利用表力 前記論理アドレス空間における各領域に利用可能情報又は 利用禁止情報を記録した論理アドレス領域利用表を生成して前記 CPUが利用する 前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、 を実行させることを特徴とするメモリ制御プログラム。
[14] 実アドレスにより複数のメモリ素子をアクセスするメモリ制御装置に於 、て、
CPUの論理アドレスを実アドレスに変換して前記複数のメモリ素子をアクセスする 制御部と、
前記複数のメモリ素子で構成される実アドレス空間におけるメモリ素子の利用可能 情報を記録した実アドレス領域利用表の異常が検出されたメモリ素子に対応する領 域に利用禁止情報を記録する実アドレス領域管理部と、
前記実アドレス領域利用表から、前記論理アドレス空間における各領域に利用可 能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成して、前記 CP uが利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理部と、 を備えたことを特徴とするメモリ制御装置。
[15] 請求項 14記載のメモリ制御装置に於いて、前記インタリーブ制御部は、 2のべき乗 数となる異なるウェイ数 Wのいずれか指定によりメモリ構成を再構成することを特徴と するメモリ制御装置。
[16] 請求項 14記載のメモリ制御装置に於いて、
前記インタリーブ制御部は、ウェイ数 1又は 2の指定によりメモリ再構成が可能であり 前記実アドレス領域管理部は、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの最下位ビット
の 4ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 2を乗じて (N X 2)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 1ウェイで 決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ウェイ で決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御装置。
請求項 14記載のメモリ制御装置に於いて、
前記インタリーブ制御部は、ウェイ数 1、 2又は 4の指定によりメモリ再構成可能であ り、
前記実アドレス領域管理部は、
素子選択アドレスの下位 2ビット、
実アドレスの最上位ビット及び
実アドレスの下位 2ビット
の 5ビットアドレスにより前記 CPU論理アドレス空間の領域数 Nに前記インタリーブ制 御の最大ウェイ数 4を乗じて (N X 4)分割された各領域に利用許可情報又は利用禁 止情報を記録した実アドレス領域利用表を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップカ^ゥエイで決 まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位 2ビット及び
実アドレスの最下位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 1ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが 2ゥェ ィで決まるメモリ構成の場合、前記実アドレス領域利用表の
素子選択アドレスの下位第 2ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 2ゥ イ論理アドレス領域利用表を作成して前記 CPUが利用する前記論理ァ ドレス空間の領域を決定し、
更に前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップ力 ウェイ で決まるメモリ構成の場合、前記実アドレス領域利用表の
実アドレスの下位 2ビット及び
実アドレスの最上位ビット
の 3ビットアドレスにより N分割された各領域に利用許可情報又は利用禁止情報を記 録した 4ゥ イ論理アドレス領域利用表を作成して前記 CPUが使用する前記論理ァ ドレス空間の領域を決定することを特徴とするメモリ制御装置。
処理部と、
前記処理部に接続され、情報を記憶する記憶部と、
前記記憶装置へのアクセスを制御するメモリ制御部とを備えた情報処理装置に於 いて、
前記メモリ制御部は、前記 CPUからの論理アドレスを実アドレスに変換して前記記 憶部をアクセスする制御部と、
前記記憶部の実アドレス空間の領域ごとに前記記憶部の利用可否情報を記憶した 第一のテーブルに、異常が検出された前記記憶部の領域に関する利用禁止情報を 記録する実アドレス管理部と、
前記第一のテーブル内容に基づいて、前記論理アドレス空間における各領域の利 用可否情報を記録した論理アドレス領域利用表の内容を更新する論理アドレス領域 管理部と、
を備えたことを特徴とする情報処理装置。
PCT/JP2005/024053 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置 WO2007077595A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/JP2005/024053 WO2007077595A1 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置
EP05822500A EP1967955A4 (en) 2005-12-28 2005-12-28 METHOD, PROGRAM AND DEVICE FOR MEMORY CONTROL
CN2005800518645A CN101292229B (zh) 2005-12-28 2005-12-28 用于控制存储器的方法和设备
KR1020087008986A KR101011171B1 (ko) 2005-12-28 2005-12-28 메모리 제어 방법, 기억 매체 및 장치와 정보 처리 장치
JP2007552819A JP4810542B2 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置
US12/052,846 US8219881B2 (en) 2005-12-28 2008-03-21 Memory controlling method, program and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/024053 WO2007077595A1 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/052,846 Continuation US8219881B2 (en) 2005-12-28 2008-03-21 Memory controlling method, program and device

Publications (1)

Publication Number Publication Date
WO2007077595A1 true WO2007077595A1 (ja) 2007-07-12

Family

ID=38227962

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/024053 WO2007077595A1 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置

Country Status (6)

Country Link
US (1) US8219881B2 (ja)
EP (1) EP1967955A4 (ja)
JP (1) JP4810542B2 (ja)
KR (1) KR101011171B1 (ja)
CN (1) CN101292229B (ja)
WO (1) WO2007077595A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095836A (ja) * 2014-11-14 2016-05-26 廣達電腦股▲ふん▼有限公司 メモリ障害許容率を増加する方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
CN103197999B (zh) * 2013-03-22 2016-08-03 北京百度网讯科技有限公司 一种内存故障自动定位方法及装置
US9495291B2 (en) * 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5532188A (en) * 1978-08-29 1980-03-06 Nec Corp Reconstruction controller of memory module
JPS5552600A (en) * 1978-10-13 1980-04-17 Nec Corp Main memory unit
JPH02166543A (ja) 1988-12-21 1990-06-27 Nec Ibaraki Ltd 複数メモリ用動作制御装置
JPH04165548A (ja) 1990-10-30 1992-06-11 Fujitsu Ltd メモリアドレス制御方式
JPH11312120A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 記憶装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
JPH01156852A (ja) * 1987-12-15 1989-06-20 Nec Corp インターリーブ制御方式
JPH0430231A (ja) * 1990-05-25 1992-02-03 Hitachi Ltd 主記憶アドレッシング方式
JPH04145557A (ja) 1990-10-05 1992-05-19 Nec Corp 記憶装置の障害処理方式
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
CA2116985C (en) * 1993-03-11 1999-09-21 Cynthia J. Burns Memory system
US5524231A (en) * 1993-06-30 1996-06-04 Intel Corporation Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
JP4315488B2 (ja) * 1998-06-30 2009-08-19 ソニー株式会社 データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法
US6748480B2 (en) * 1999-12-27 2004-06-08 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
JP3741258B2 (ja) * 2000-03-31 2006-02-01 シャープ株式会社 半導体記憶装置およびその救済方法
JP2002278836A (ja) * 2001-03-15 2002-09-27 Oki Electric Ind Co Ltd キャッシュメモリ
DE10127194B4 (de) * 2001-06-05 2008-08-21 Infineon Technologies Ag Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
US6874070B2 (en) * 2002-02-22 2005-03-29 Hewlett-Packard Development Company, L.P. System and method for memory interleaving using cell map with entry grouping for higher-way interleaving
JP4145557B2 (ja) 2002-04-24 2008-09-03 東芝機械株式会社 主軸端面清掃機能を有する自動工具交換装置およびそのシーケンス制御装置
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
JP4165548B2 (ja) 2005-10-06 2008-10-15 株式会社日立製作所 利用条件販売型デジタルコンテンツ販売電子モールシステム
US7486537B2 (en) * 2006-07-31 2009-02-03 Sandisk 3D Llc Method for using a mixed-use memory array with different data states

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5532188A (en) * 1978-08-29 1980-03-06 Nec Corp Reconstruction controller of memory module
JPS5552600A (en) * 1978-10-13 1980-04-17 Nec Corp Main memory unit
JPH02166543A (ja) 1988-12-21 1990-06-27 Nec Ibaraki Ltd 複数メモリ用動作制御装置
JPH04165548A (ja) 1990-10-30 1992-06-11 Fujitsu Ltd メモリアドレス制御方式
JPH11312120A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 記憶装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1967955A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095836A (ja) * 2014-11-14 2016-05-26 廣達電腦股▲ふん▼有限公司 メモリ障害許容率を増加する方法

Also Published As

Publication number Publication date
EP1967955A1 (en) 2008-09-10
KR101011171B1 (ko) 2011-01-26
JPWO2007077595A1 (ja) 2009-06-04
US8219881B2 (en) 2012-07-10
JP4810542B2 (ja) 2011-11-09
US20080189493A1 (en) 2008-08-07
KR20080049824A (ko) 2008-06-04
EP1967955A4 (en) 2009-10-21
CN101292229A (zh) 2008-10-22
CN101292229B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
JP3950831B2 (ja) メモリインタリーブ方式
US5924111A (en) Method and system for interleaving data in multiple memory bank partitions
CN101187898A (zh) 管理非易失性存储器的设备和方法
WO2007077595A1 (ja) メモリ制御方法、プログラム及び装置
US20110093680A1 (en) Flexible memory controller for autonomous mapping of memory
US5627840A (en) Memory based interface
JP3166447B2 (ja) 画像処理装置及び画像処理方法
JPS621047A (ja) メモリ回路を有する半導体装置
KR101280181B1 (ko) 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법
JPH0562380B2 (ja)
JP2016139447A (ja) 半導体記憶装置およびデータ書き込み方法
JP4288421B2 (ja) Cpuとの対応を制御する主記憶システム及び主記憶装置
JP3704927B2 (ja) プログラマブルコントローラ
JP2837461B2 (ja) 外字メモリのアクセス方法
JP3704101B2 (ja) 画像処理装置
JPS5994283A (ja) バツフアメモリ制御装置
JPH0244445A (ja) データ処理装置
JPH066548A (ja) 頁メモリのアクセス制御装置
JPS6033628A (ja) 可変キュ−メモリ
JPH07312096A (ja) 不揮発性メモリ
JPS6156826B2 (ja)
JP2613963B2 (ja) データ入出力装置
JPH0477789A (ja) 文字パターン発生器
JPH0628869A (ja) メモリデバイス
JPH04274537A (ja) アドレス割振り装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200580051864.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007552819

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005822500

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020087008986

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2005822500

Country of ref document: EP