WO2014002222A1 - リードリクエスト処理装置 - Google Patents

リードリクエスト処理装置 Download PDF

Info

Publication number
WO2014002222A1
WO2014002222A1 PCT/JP2012/066494 JP2012066494W WO2014002222A1 WO 2014002222 A1 WO2014002222 A1 WO 2014002222A1 JP 2012066494 W JP2012066494 W JP 2012066494W WO 2014002222 A1 WO2014002222 A1 WO 2014002222A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
read
read request
address
request
Prior art date
Application number
PCT/JP2012/066494
Other languages
English (en)
French (fr)
Inventor
浩士 跡部
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2014522301A priority Critical patent/JP5623677B2/ja
Priority to PCT/JP2012/066494 priority patent/WO2014002222A1/ja
Priority to CN201280074337.6A priority patent/CN104471549B/zh
Priority to DE112012006587.5T priority patent/DE112012006587T5/de
Priority to US14/388,049 priority patent/US9465691B2/en
Priority to TW101125663A priority patent/TWI492237B/zh
Publication of WO2014002222A1 publication Critical patent/WO2014002222A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters

Definitions

  • the present invention relates to a technique for processing a read request for requesting reading of payload data from a memory.
  • ECC Error Correcting Code
  • a parity bit may be added to the payload data.
  • memory elements are added in the width direction exclusively for the added ECC and parity bits (horizontal ECC, horizontal parity).
  • horizontal ECC horizontal parity
  • a special x9-bit memory instead of a x8-bit memory.
  • the addition of a memory element and the use of a special memory are often disadvantageous in cost and difficult to obtain parts.
  • One solution is to employ vertical ECC and vertical parity, which do not require increasing the memory in the width direction by storing the ECC in the depth direction instead of the width direction.
  • the vertical ECC is taken as an example, but the following description is applicable to vertical parity.
  • the address data (first data) that is first read from the memory is used in the first and last two times when the ECC is included.
  • Wrapping read means that when reading for the line size by cache read fill operation etc., the address that needs to be accessed first is first, and when the address is monotonically increased from the start address and the wrapping boundary is reached, the lower address is reached. This is a method of returning data after wrapping around.
  • the unit of the wrapping lead is divided for each of four addresses (for example, four addresses of addresses 0000h, 0004h, 0008h, and 000Ch).
  • addresses 0000h, 0004h, 0008h, and 000Ch for example, four addresses of addresses 0000h, 0004h, 0008h, and 000Ch.
  • the unit of the wrapping read is divided for each of five addresses (for example, five addresses at addresses 0000h, 0004h, 0008h, 000Ch, and 0010h).
  • five addresses at addresses 0000h, 0004h, 0008h, 000Ch, and 0010h are read out.
  • data at the address 0004h ECC0 to D6
  • data at the address 0008h D7 to D9
  • data at the address 000Ch Da to Dc
  • address 0010h Data (Dd to ECC3) are read out. Since the wrapping boundary is reached at address 0010h, the data (D0 to D3) at address 0000h is read out by wrapping around to the lower address. Since the ECC of the data at address 0000h (D0 to D3) is “ECC0” at address 0004h, the data at address 0004h (ECC0 to D6) needs to be read again.
  • the wrapping read is performed to the memory adopting the vertical ECC
  • the data of the address to be read first from the memory is read twice at the first and last times when the ECC is included.
  • there is an overhead in memory access for example, in DRAM (Dynamic Random Access Memory), when the same bank is ACTed, an inaccessible period occurs).
  • DRAM Dynamic Random Access Memory
  • the first data is read twice, performance loss occurs and inefficiency occurs. It is. Further, since power is consumed every memory access, power consumption increases when the first data is read twice.
  • Patent Document 1 makes it possible to use vertical ECC and DRAM high-speed access technology of page mode and bank switching, but only increment access can be applied and wrapping read access cannot be supported.
  • the present invention has been made in view of the above circumstances, and mainly aims to avoid reading duplicate data, efficiently use a finite memory bandwidth, and suppress power consumption in memory access. Objective.
  • the read request processing apparatus includes: Each has n addresses where data of a predetermined data width is stored, and the n addresses are divided into m addresses which are units of wrapping reads (m is an integer of 2 or more, n is an integer that is an integer multiple of 2 or more of m), and payload data and error correction data that are in a corresponding relationship are stored over two adjacent addresses, and data is read out in units of addresses.
  • a read request processing device for processing a read request for requesting, A read request input section for inputting a read request; A read request determination unit that determines whether the read request input by the read request input unit is a request for a wrapping read; When the read request determination unit determines that the read request is a wrapping read request, an address storing the payload data requested by the read request is included from the n addresses. M addresses are extracted as wrapping read targets, the order of reading data from the m addresses is specified based on the order of the extracted m addresses, and the number of times of reading data from each address is set to 1.
  • An address extractor limited to When the read request determination unit determines that the read request is a request for a wrapping read, data is transferred from the head address in which the head reading order is designated among the m addresses extracted by the address extraction unit.
  • the head data read from the head address is input, the head data storage unit for storing the head data,
  • the read request determination unit determines that the read request is a wrapping read request, from the last address in which the last read order is designated among the m addresses extracted by the address extraction unit.
  • the tail data read from the tail address is input, and the head data is input from the head data storage unit, and the head data and the tail data are It has the data extraction part which extracts the payload data and error correction data which are related, It is characterized by the above-mentioned.
  • the number of times data is read from each address is limited to one, the head data is stored, and the stored head data is used for the tail data. Can be avoided, the limited memory bandwidth can be efficiently used, and the power consumption in memory access can be suppressed.
  • FIG. 6 is a diagram showing an example of data arrangement not including ECC according to the first embodiment.
  • FIG. 6 is a diagram showing an example of arrangement of data to which a vertical ECC according to the first embodiment is added.
  • FIG. 3 is a diagram illustrating a memory control device, a request request source, and a memory according to the first embodiment.
  • FIG. 3 is a diagram illustrating a memory control device, a request request source, and a request request destination according to the first embodiment.
  • FIG. 3 is a flowchart showing an operation example of the memory control device according to the first embodiment.
  • FIG. 4 is a diagram illustrating a memory control device, a request request source, and a memory according to the second embodiment.
  • FIG. 10 is a diagram illustrating an operation example of the memory control device according to the second embodiment.
  • FIG. 10 is a diagram illustrating a memory control device, a request request source, and a memory according to the third embodiment.
  • FIG. 9 is a flowchart showing an operation example of the memory control device according to the third embodiment.
  • FIG. 10 is a diagram illustrating a memory control device, a request request source, and a memory according to a fourth embodiment.
  • FIG. 9 is a flowchart showing an operation example of the memory control device according to the fourth embodiment.
  • FIG. 10 is a diagram illustrating a memory control device, a request request source, and a memory according to a fourth embodiment.
  • FIG. 3 shows the memory control device 100, the request request source 101, and the memory 105 according to the first embodiment.
  • a configuration that is a prerequisite for describing a configuration corresponding to a wrapping lead will be described.
  • a configuration corresponding to the wrapping lead will be described in a second embodiment.
  • the request request source 101 issues a read / write request to the memory 105.
  • the request request source 101 is, for example, a CPU (Central Processing Unit).
  • the request request source 101 recognizes the arrangement of payload data, for example, in the format shown in FIG. Further, the request request source 101 recognizes the unit of the wrapping read for every four addresses.
  • n addresses are set.
  • 1-byte ECC is added to 4-byte payload data by vertical ECC.
  • the vertical ECC is an ECC memory arrangement method in which ECC is arranged in the address depth direction and ECC and parity are realized without increasing the data width of the memory. Data is read from the memory 105 in units of addresses.
  • n addresses in the memory 105 are divided into m addresses that are units of wrapping reads (m is an integer of 2 or more, and n is an integer that is an integer multiple of 2 or more of m). Is).
  • the wrapping read unit of the memory 105 for example, 0000h address, 0004h address, 0008h address, 000Ch address, 0010h address
  • the wrapping read unit of the request request source 101 for example, 0000h address, 0004h address, 0008h address, 000Ch address
  • the wrapping read unit of the request request source 101 includes the same payload data (D0 to Df).
  • the ECC is arranged in the order in which the ECC is arranged after the payload data.
  • the arrangement method of the ECC arranges the payload data and the ECC which are in a correspondence relation between two adjacent addresses. It only has to be.
  • “EEC0” may be arranged before payload data “D0”.
  • the data assigned to the same address can be expanded. For example, D0 to D3, ECC0, D4 to D6 at address 0000h, D7, ECC1, D8 to Db, ECC2, and Dc at the next address 0008h. It may be expanded. Even in that case, part of the payload data and the ECC continue to be in a correspondence relationship between two adjacent addresses.
  • the memory 105 is a memory to be controlled by the memory control device 100.
  • the memory control device 100 includes a memory address conversion unit 106, a previous value holding unit 104, a data alignment unit 103, and an ECC correction unit 102.
  • Each component of the memory control device 100 is hardware such as an element, a device, or a circuit.
  • Each component of the memory control device 100 is, for example, a semiconductor circuit group in a chip set.
  • the memory address conversion unit 106, the data alignment unit 103, and the ECC correction unit 102 may be realized using a program. Note that the memory control device 100 corresponds to an example of a read request processing device.
  • the memory address conversion unit 106 receives a read request from the request request source 101. In addition, the memory address conversion unit 106 converts the address of the received read request into an address on the memory 105 in which the vertical ECC is arranged. That is, the memory address conversion unit 106 stores p pieces of payload data requested by a read request from the request request source 101 and ECCs corresponding to the payload data (p is 2 or more and n (The following integer) is extracted as a read target.
  • the memory address conversion unit 106 corresponds to an example of a read request input unit and an address extraction unit.
  • the previous value holding unit 104 is a register that holds the previous read data (4 bytes) received from the memory 105. That is, the previous value holding unit 104 inputs the read 4-byte data every time 4-byte data is read from each address designated by the memory address conversion unit 106, and the input data is input to the previous value ( As past data).
  • the previous value holding unit 104 corresponds to an example of a past data storage unit.
  • the data alignment unit 103 separates the current read data (4 bytes) received from the memory 105 and the data (4 bytes) of the previous value holding unit 104 into a payload data portion and an ECC corresponding thereto, and performs ECC correction. Arrange the data into an arrangement that can. That is, the data alignment unit 103 inputs the read 4-byte data every time 4-byte data is read from each address specified by the memory address conversion unit 106. Further, the data alignment unit 103 inputs the 4-byte data (previous value) read out immediately before the input 4-byte data from the previous value holding unit 104, and uses the data from the memory 105 and the previous value as the data. From certain data, payload data and ECC that are in a correspondence relationship are extracted.
  • the data alignment unit 103 corresponds to an example of a data extraction unit.
  • the ECC correction unit 102 performs ECC correction on the read data received from the data alignment unit 103 and returns the read data to the request request source 101. In other words, the ECC correction unit 102 performs error correction processing of the payload data in the correspondence relationship using the ECC extracted by the data alignment unit 103, and outputs the payload data after the error correction processing to the request request source 101. .
  • the ECC correction unit 102 corresponds to an example of an error correction processing unit.
  • FIG. 3 shows a configuration in which the memory control device 100 is directly connected to the memory 105, but the memory control device 100 may be connected to the request request destination 200 as shown in FIG. Although not shown in FIG. 4, the request request destination 200 is connected to the memory 105, reads data from the memory 105, and outputs the read data to the memory control device 100.
  • the memory address conversion unit 106 receives a read request from the request request source 101 (S201).
  • the memory address conversion unit 106 calculates an area on the memory 105 including 4-byte data (D0 to D3) and the corresponding ECC (ECC0).
  • the memory address conversion unit 106 converts the data into a request for reading 8 bytes from the address 0000h (S202).
  • the memory address conversion unit 106 instructs the memory 105 to read in the order of the data at address 0000h (D0 to D3) and the data at address 0004h (ECC0 to D6).
  • the memory 105 returns the data at address 0000h (D0 to D3) and the data at address 0004h (ECC0 to D6) in order.
  • the previous value holding unit 104 receives the data (D0 to D3) at the address 0000h and holds the received data (D0 to D3) at the address 0000h (S203).
  • the data aligning unit 103 also receives the data (D0 to D3) at the address 0000h. However, data alignment cannot be performed with only the data at the address 0000h (NO in S204), and the reception of data at the address 0004h is waited.
  • the data alignment unit 103 When the data alignment unit 103 receives the data at addresses 0004h (ECC0 to D6) from the memory 105, the data alignment unit 103 receives the data at addresses 0000h (D0 to D3) held by the previous value holding unit 104 and the memory 105. It is determined that data alignment is possible based on the data at addresses 0004h (ECC0 to D6) (YES in S204). That is, the data alignment unit 103 can extract the payload data (D0 to D3) and the ECC (ECC0) having the corresponding relationship from the data (D0 to D3) at the address 0000h and the data (ECC0 to D6) at the address 0004h. to decide. Next, the data alignment unit 103 cuts out ECC0 corresponding to the payload data portions D0 to D3 and aligns the data (S205).
  • the ECC correction unit 102 receives data (D0 to D3 and ECC0) in which payload data and ECC are aligned, performs ECC correction, and returns read data (D0 to D3) to the request request source 101 (S206). . Since all the data requested by the read request has been returned, the processing is completed (S207).
  • the memory control device including the following means has been described.
  • A Means for converting a request from a request request source into a memory request and bridging data
  • b Means for correcting ECC error of data
  • c Received data from a memory adopting vertical ECC, Relocation to data that can be ECC error corrected (separated into data and corresponding ECC)
  • d Convert address and length from request request source to address and length to memory using vertical ECC
  • E Means for holding the previous data received from the memory.
  • the memory control device provided with means for converting a request from the request request source into a request to the subsequent request request destination has been described.
  • Embodiment 2 a description will be given of a configuration that avoids reading the first data twice when performing lapping read on a memory that employs vertical ECC. More specifically, the memory control device 100 according to the present embodiment includes a buffer that holds the first data, and reads the first data only once. According to the memory control device 100 according to the present embodiment, it is possible to efficiently use a finite memory band and to suppress power consumption in memory access. Furthermore, the memory control device 100 according to the present embodiment can contribute to speeding up memory access.
  • the memory control device 100 returns the read data of 16 bytes in total in the order of 0004h ⁇ 0008h ⁇ 000Ch ⁇ 0000h to the request request source 101.
  • a total of 24 bytes of read data are read from the memory in the order of 0004h ⁇ 0008h ⁇ 000Ch ⁇ 0010h ⁇ 0000h ⁇ 0004h.
  • ECC0 is the ECC of the payload data “D0 to D3” at address 0000h, from address 0004h, so the first data (data at address 0004h) needs to be read again. There is.
  • FIG. 6 shows a memory control device 100 that solves the above-described problem in wrapping read.
  • a wrapping burst read determination unit 108 and a first data holding unit 109 are added to the configuration shown in FIG.
  • the wrapping burst read determination unit 108 receives a read request from the request source 101, determines whether the received read request is a wrapping burst read request, and notifies the memory address conversion unit 106 of the result.
  • the wrapping burst read determination unit 108 corresponds to an example of a read request input unit and a read request determination unit.
  • the first data holding unit 109 is a register that holds read data that is returned first from the memory 105 in response to a request converted by the memory address conversion unit 106. That is, when the wrapping burst read determination unit 108 determines that the read request is a wrapping burst read request, the first data holding unit 109 determines the start address that is the start reading order (address 0004h in the above example). When the data is read from (), the head data read from the head address is input and the head data is stored.
  • the first data holding unit 109 corresponds to an example of a head data storage unit.
  • the memory address conversion unit 106 stores the payload data requested by the read request when the wrapping burst read determination unit 108 determines that the read request is a read request for a wrapping burst. Five addresses including the address that has been set are extracted as wrapping read targets. Further, the memory address conversion unit 106 specifies the order of reading data from the five addresses based on the order of the extracted five addresses, and limits the number of times of reading data from each address to one. For example, it is assumed that a read request for a wrapping read is issued with address 0004h (D4 to D7) in FIG.
  • the memory address conversion unit 106 wraps and reads five addresses including addresses 0004h and 0008h (addresses 0004h, 0008h, 000Ch, and 0000h) including the payload data “D4 to D7” in FIG. Extract. Then, the memory address conversion unit 106 specifies the data reading order as 0004h ⁇ 0008h ⁇ 000Ch ⁇ 0000h. As described above, since the memory address conversion unit 106 according to the present embodiment limits the number of times data is read from each address to one, the data at address 0004h, which is the first data, is not read twice. . The operation of the memory address conversion unit 106 when a normal read request is received is as described in the first embodiment.
  • FIG. 8 illustrates how each unit of the memory control device 100 processes data.
  • the wrapping burst read determination unit 108 receives a read request from the request request source 101 (S201). The wrapping burst read determination unit 108 determines whether or not the read request is a wrapping burst read request (S301). If the request is a wrapping burst read request (YES in S301), the wrapping burst read determination unit 108 outputs the read request to the memory address conversion unit 106, and the memory address conversion unit 106 converts it into a memory address of the wrapping burst read. (S302).
  • the memory address conversion unit 106 calculates an area including 16-byte data (D4 to Df and D0 to D3) and the corresponding ECC (ECC1 to ECC3 and ECC0). Referring to FIG. 2, since the data is allocated from address 0004h to address 0010h and address 0000h, it is converted into a request for reading 16 bytes from address 0004h and 4 bytes from address 0000h (S302). Then, the memory address conversion unit 106 instructs the memory 105 to read data in the order of 0004h ⁇ 0008h ⁇ 000Ch ⁇ 0000h. The memory 105 returns the data from address 0004h (ECC0 to D6) in order.
  • the first data holding unit 109 receives the data at the address 0004h (ECC0 to D6) (first data A in FIG. 8) as the first data, and the received data at the address 0004h is the first data (the first data in FIG. 8). 1 data E) is held (S303).
  • the data alignment unit 103 also receives the data (ECC0 to D6) at address 0004h (first data A in FIG. 8). However, data alignment cannot be performed only with the data at address 0004h (NO in S305), so the data reception at address 0008h is received. Wait for.
  • the previous value holding unit 104 also receives the data (ECC0 to D6) at address 0004h (first data A in FIG. 8), and the received data at address 0004h is the previous value (first data in FIG. 8). B) is held (S203). The operation until the data at address 0000h is received is the same as in the first embodiment.
  • the previous value holding unit 104 sets the data at address 0008h as the previous value (second data in FIG. 8).
  • the data alignment unit 103 also receives the data (D7 to D9) at the address 0008h (second data A in FIG. 8). As shown in FIG. 8, the data alignment unit 103 extracts “D4 to D7” and “ECC1” from the received data at the address 0008h (second data A) and the previous value (first data B), First data C is generated (S305, S205). Then, the ECC correction unit 102 performs ECC correction and transmits the first data D to the request request source 101 (S206). At this point, since all the read data has not been returned, S207 is NO.
  • the previous value holding unit 104 sets the data at address 000Ch as the previous value (first data in FIG. 8).
  • data B data (S203)
  • the data alignment unit 103 also receives the data (Da to Dc) at address 000Ch (third data A in FIG. 8).
  • the data alignment unit 103 extracts “D8 to Db” and “ECC2” from the received data at the 000Ch address (third data A) and the previous value (second data B), Second data C is generated (S305, S205).
  • the ECC correction unit 102 performs ECC correction and transmits the second data D to the request request source 101 (S206). At this point, since all the read data has not been returned, S207 is NO.
  • the previous value holding unit 104 sets the data at address 0010h as the previous value (first data in FIG. 8). 4 data B) (S203), and the data alignment unit 103 also receives the data (Dd to ECC3) at address 0010h (fourth data A in FIG. 8). As shown in FIG. 8, the data alignment unit 103 extracts “Dc to Df” and “ECC3” from the received data at the address 0010h (fourth data A) and the previous value (third data B), Third data C is generated (S305, S205). Then, the ECC correction unit 102 performs ECC correction and transmits the third data D to the request request source 101 (S206). At this point, since all the read data has not been returned, S207 is NO.
  • the previous value holding unit 104 sets the data at the address 0000h as the previous value (the first value in FIG. 8).
  • the data alignment unit 103 also receives the data (D0 to D3) at address 0000h (fifth data A in FIG. 8).
  • the data alignment unit 103 receives the data at address 0000h (D0 to D3) (fifth data A in FIG. 8), but cannot be aligned with the data at address 0010h (fourth data B) (NO in S305). , Wait for data at address 0000h (fifth data B). As shown in FIG.
  • the data alignment unit 103 generates “D0 to D3” from the received data at the address 0000h (fifth data B) and the first data (first data E) in the first data holding unit 109. And “ECC0” are extracted to generate the fourth data C (S305, S205). Then, the ECC correction unit 102 performs ECC correction, and transmits the fourth data D to the request request source 101 (S206). At this time, all the read data has been returned, so S207 is YES.
  • the previous value holding unit 104 stores the fourth data B and the fifth data B.
  • the fourth data B and the fifth data B are not used in the data alignment unit 103.
  • the previous value holding unit 104 may not store the fourth data B and the fifth data B.
  • the number of times of reading data from each address is limited to one, the first data is stored, and the stored first data is compared with the last data. Therefore, it is possible to avoid reading duplicate data, efficiently use a finite memory bandwidth, and suppress power consumption in memory access.
  • the memory control device including the following means in addition to the configuration shown in the first embodiment has been described.
  • Embodiment 3 In the first embodiment, one read request from the request request source 101 is accepted, and the next read request cannot be accepted until the read data is returned. For example, in DRAM, the period from when a read request is issued to when the read data is returned (read latency) is long, but before the read data that issued the read request is returned, the next read request is continued. Can be issued. This pipeline processing is indispensable for improving the throughput.
  • FIG. 9 shows a memory control device 100 that performs pipeline processing based on the configuration of the first embodiment.
  • a FIFO (First-In First-Out) 110 is added to the configuration shown in FIG.
  • the FIFO 110 stores the issued request in the memory 105, and passes the information to the data alignment unit 103 at the timing when the read data is returned from the memory 105.
  • the processing until the memory address conversion unit 106 converts the address requested by the read request into the memory address in FIG. 2 (S202) is the same as that in the first embodiment.
  • the command information converted into the memory address is held in the FIFO 110 (S401).
  • the command information is continuously held in the FIFO 110.
  • the data alignment unit 103 and the previous value holding unit 104 accept read data from the memory 105 (S203).
  • the data alignment unit 103 and the previous value holding unit 104 read the read data for the next request from the memory 105. Accept (S203). If the command information does not exist in the FIFO 110 (NO in S402), the processing is completed because all the request data has been returned (S207).
  • the memory control device including means for storing requests from the request request source has been described.
  • Embodiment 4 Even in the configuration described in the second embodiment, pipeline processing is possible as in the third embodiment. However, simply adding the FIFO 110 to the configuration shown in FIG.
  • the next Data read in response to the read request may be output from the memory 105 to the data alignment unit 103.
  • the wrapping read after the data at the last address is output from the memory 105 to the data alignment unit 103, the first data from the first data holding unit 109 and the last address stored in the previous value holding unit 104 are output. Data alignment using the data is performed by the data alignment unit 103.
  • the pipeline processing is realized by providing the FIFO 110 and means for controlling data collision in the configuration shown in FIG.
  • FIG. 11 shows a memory control apparatus 100 that performs pipeline processing based on the configuration of the second embodiment.
  • a FIFO 110 and a data collision control unit 111 are added to the configuration shown in FIG.
  • the data collision control unit 111 sends data read from the memory 105 to the data alignment unit 103 in response to a subsequent read request at a timing when the data alignment unit 103 uses the first data from the first data holding unit 109.
  • Prevent input That is, in the data collision control unit 111, the data alignment unit 103 inputs the first data from the first data holding unit 109, and the payload data and the ECC that are in a correspondence relationship are obtained from the first data and the data at the last address.
  • the timing control of the data read from the memory 105 is performed so that the data read from the memory 105 is input to the data alignment unit 103 in response to a subsequent read request.
  • the data collision control unit 111 is arranged between the memory 105 and the data alignment unit 103, and the data read from the memory 105 in response to a subsequent read request by the data collision control unit 111. It is conceivable to control collision by buffering. Further, as shown in FIG. 13, a data collision control unit 111 is arranged between the memory 105 and the memory address conversion unit 106, and the data collision control unit 111 issues a request to the memory 105 for a read request subsequent to the wrapping read. It is conceivable to control the collision by leaving an interval.
  • FIG. 12 shows an operation example in the configuration of FIG.
  • the processing up to the process of storing command information in the FIFO 110 is the same as in the second and third embodiments.
  • the processing in the case where the head command information held in the FIFO 110 is not wrapping read command information is the same as in the third embodiment.
  • If the first command information held in the FIFO 110 is wrapping read command information (YES in S501), the process until the data alignment unit 103 performs data alignment using the first data is the same as in the second embodiment. It is.
  • the data collision control unit 111 determines whether data read from the memory 105 is received before the data alignment unit 103 completes data alignment using the first data (S502).
  • the data collision control unit 111 delays the timing at which the data alignment unit 103 receives the read data from the memory 105 (S503). Specifically, the data collision control unit 111 buffers read data from the memory 105. Subsequent operations are the same as those in the third embodiment.
  • the memory control device including the following means in addition to the configuration shown in the second embodiment has been described.
  • 100 memory controller 101 request request source, 102 ECC correction unit, 103 data alignment unit, 104 previous value holding unit, 105 memory, 106 memory address conversion unit, 108 wrapping burst read determination unit, 109 first data holding unit, 110 FIFO, 111 data collision control unit, 200 request request destination.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 ラッピングバーストリード判定部108が、リードリクエストがラッピングリードのリクエストであるかを判定する。ラッピングリードのリクエストである場合に、メモリアドレス変換部106が、リードリクエストで要求されているペイロードデータが格納されているアドレスが含まれる複数個のアドレスを抽出し、抽出した複数個のアドレスからのデータの読み出し順序を指定する。ラッピングリードのリクエストである場合に、第1データ保持部109が、前記複数個のアドレスのうち先頭の読み出し順序が指定されたアドレスから読み出された第1データを入力し、第1データを記憶する。ラッピングリードのリクエストである場合に、データ整列部103が、最後尾の読み出し順序が指定されたアドレスから読み出された最後尾データを入力するとともに、第1データと最後尾データから、対応関係にあるペイロードデータとECCを抽出する。

Description

リードリクエスト処理装置
 本発明は、メモリからのペイロードデータの読み出しを要求するリードリクエストを処理する技術に関する。
 メモリの信頼性を向上するためにペイロードデータにECC(Error Correcting Code)やパリティビットを付加することがある。
 通常は、付加したECC、パリティビット専用に幅方向にメモリ素子を追加する(水平ECC、水平パリティ)。
 例えば×8ビット構成のメモリではなく、特殊な×9ビット構成のメモリを使用することが考えられる。
 しかし、メモリ素子の追加や特殊メモリの採用は、コスト的に不利であったり、部品の入手性に難がある場合が多い。
 その解決策の一つとして、ECCを幅方向ではなく深さ方向へECCを保存することで幅方向にメモリを増やす必要のない、垂直ECC、垂直パリティを採用することがある。
 以下では、垂直ECCを例にして説明を進めるが、垂直パリティに対しても以下の説明は適用可能である。
 例えば、図1に示すようなメモリ構成に垂直ECC方式により、ECCを付加する場合を考える。
 図1では、1つのアドレスに、各々のデータ幅が1バイトのペイロードデータが4つ格納されている。
 図1のメモリ構成において、垂直ECCにより、4バイトのペイロードデータにつき1バイトのECCを付加すると、図2に示すようなデータの配置となる。
 垂直ECCを採用したメモリへラッピングリードを行うと、メモリから最初にリードするアドレスのデータ(第1データ)は、ECCを含めると最初と最後の2回で利用される。
 ラッピングリードとは、キャッシュのリードフィル動作などでラインサイズ分リードする場合に、最初にアクセスが必要なアドレスを先頭にするとともに、先頭アドレスからアドレスを単調に増加させてラッピング境界に達すると低位アドレスへラップ・アラウンドしてデータを返送する方法である。
 図1の例では、4つのアドレス(例えば、0000h番地、0004h番地、0008h番地、000Ch番地の4つのアドレス)ごとにラッピングリードの単位が区切られている。
 図2の例では、5つのアドレス(例えば、0000h番地、0004h番地、0008h番地、000Ch番地、0010h番地の5つのアドレス)ごとにラッピングリードの単位が区切られている。
 図2の例において、例えば、0004h番地を先頭アドレスにする場合は、0004h番地のデータ(ECC0~D6)、0008h番地のデータ(D7~D9)、000Ch番地のデータ(Da~Dc)、0010h番地のデータ(Dd~ECC3)が読み出される。
 そして、0010h番地でラッピング境界に達するので、低位アドレスにラップ・アラウンドして、0000h番地のデータ(D0~D3)が読み出される。
 0000h番地のデータ(D0~D3)のECCは、「ECC0」として0004h番地にあるので、再度、0004h番地のデータ(ECC0~D6)を読み出す必要がある。
 このように、垂直ECCを採用したメモリへラッピングリードを行うと、メモリから最初にリードするアドレスのデータ(第1データ)は、ECCを含めると最初と最後の2回読み出されることになる。
 メモリアクセスにはオーバーヘッドがある場合が多く(例えば、DRAM(Dynamic Random Access Memory)では同一バンクをACTするとアクセスできない期間が発生する)、第1データを2回リードすると、性能ロスが生じ、非効率である。
 また、メモリアクセスごとに電力が消費されるため、第1データを2回リードすると、電力消費が多くなる。
 垂直ECCを実現する際、メモリの特徴に応じて、ペイロードデータとECCのメモリ上の配置を工夫することで、ペイロードデータとECCに高速にアクセスする手法がある(例えば、特許文献1)。
特開平11-098462号公報
 特許文献1の方式は、垂直ECCと、ページモードおよびバンク切り替えのDRAM高速アクセス技術を利用できるようにしているが、インクリメントアクセスのみ適応可能でラッピングリードアクセスには対応できない。
 本発明は、上記のような事情に鑑みたものであり、重複したデータの読み出しを回避し、有限なメモリ帯域を効率的に利用し、また、メモリアクセスにおける電力消費を抑制することを主な目的とする。
 本発明に係るリードリクエスト処理装置は、
 各々に所定のデータ幅分のデータが格納されるn個のアドレスを有し、前記n個のアドレスが、ラッピングリードの単位であるm個のアドレスごとに区分され(mは2以上の整数、nはmの2以上の整数倍の整数)、対応関係にあるペイロードデータと誤り訂正データが、隣接する2つのアドレスにわたって格納され、アドレス単位でデータの読み出しが行われるメモリ
からのペイロードデータの読み出しを要求するリードリクエストを処理するリードリクエスト処理装置であって、
 リードリクエストを入力するリードリクエスト入力部と、
 前記リードリクエスト入力部により入力されたリードリクエストが、ラッピングリードのリクエストであるか否かを判定するリードリクエスト判定部と、
 前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記n個のアドレスの中から、前記リードリクエストで要求されているペイロードデータが格納されているアドレスが含まれるm個のアドレスをラッピングリードの対象として抽出し、抽出したm個のアドレスの順序に基づいてm個のアドレスからのデータの読み出し順序を指定するとともに、各アドレスからのデータの読み出し回数を1回に限定するアドレス抽出部と、
 前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち先頭の読み出し順序が指定された先頭アドレスからデータが読み出された際に、前記先頭アドレスから読み出された先頭データを入力し、前記先頭データを記憶する先頭データ記憶部と、
 前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち最後尾の読み出し順序が指定された最後尾アドレスからデータが読み出された際に、前記最後尾アドレスから読み出された最後尾データを入力するとともに、前記先頭データ記憶部から前記先頭データを入力し、前記先頭データと前記最後尾データから、対応関係にあるペイロードデータと誤り訂正データを抽出するデータ抽出部とを有することを特徴とする。
 本発明によれば、各アドレスからのデータの読出し回数を1回に限定するとともに先頭データを記憶し、最後尾データに対して、記憶している先頭データを利用するため、重複したデータの読み出しを回避し、有限なメモリ帯域を効率的に利用し、また、メモリアクセスにおける電力消費を抑制することができる。
実施の形態1に係るECCが含まれないデータの配置例を示す図。 実施の形態1に係る垂直ECCを付加されたデータの配置例を示す図。 実施の形態1に係るメモリ制御装置とリクエスト要求元とメモリとを示す図。 実施の形態1に係るメモリ制御装置とリクエスト要求元とリクエスト要求先とを示す図。 実施の形態1に係るメモリ制御装置の動作例を示すフローチャート図。 実施の形態2に係るメモリ制御装置とリクエスト要求元とメモリとを示す図。 実施の形態2に係るメモリ制御装置の動作例を示すフローチャート図。 実施の形態2に係るメモリ制御装置の動作例を示す図。 実施の形態3に係るメモリ制御装置とリクエスト要求元とメモリとを示す図。 実施の形態3に係るメモリ制御装置の動作例を示すフローチャート図。 実施の形態4に係るメモリ制御装置とリクエスト要求元とメモリとを示す図。 実施の形態4に係るメモリ制御装置の動作例を示すフローチャート図。 実施の形態4に係るメモリ制御装置とリクエスト要求元とメモリとを示す図。
 実施の形態1.
 図3は、実施の形態1に係るメモリ制御装置100とリクエスト要求元101とメモリ105とを示す。
 本実施の形態では、ラッピングリードに対応する構成を説明するにあたって前提となる構成を説明する。
 ラッピングリードに対応する構成は、実施の形態2で説明する。
 図3において、リクエスト要求元101は、メモリ105へのリード・ライトリクエストを発行する。
 以下では、リクエスト要求元101は、メモリ105からのペイロードデータの読み出しを要求するリードリクエストを発行する場合に限って説明を進める。
 リクエスト要求元101は、例えば、CPU(Central Processing Unit)である。
 なお、リクエスト要求元101では、例えば図1に示す形式で、ペイロードデータの配置を認識している。
 また、リクエスト要求元101では、4つのアドレスごとにラッピングリードの単位を認識している。
 また、メモリ105では、例えば図2に示す形式で、ペイロードデータと、誤り訂正データであるECCが配置されている。
 メモリ105には、n個のアドレスが設定されている。
 図2では、一例として、メモリ105に、20個のアドレスが設定されている(n=20)。
 前述したように、図2では、垂直ECCにより、4バイトのペイロードデータにつき1バイトのECCが付加されている。
 垂直ECCとは、前述したように、アドレスの深さ方向へECCを配置し、メモリのデータ幅を増やすことなくECC、パリティを実現する、ECCのメモリ配置方法である。
 メモリ105からは、アドレス単位でデータの読み出しが行われる。
 また、メモリ105のn個のアドレスが、ラッピングリードの単位であるm個のアドレスごとに区分されている(なお、mは2以上の整数であり、nはmの2以上の整数倍の整数である)。
 図2では、一例として、5つのアドレスごとにラッピングリードの単位が設けられている(m=5)。
 なお、メモリ105のラッピングリードの単位(例えば、0000h番地、0004h番地、0008h番地、000Ch番地、0010h番地)と、リクエスト要求元101のラッピングリードの単位(例えば、0000h番地、0004h番地、0008h番地、000Ch番地)には、同じペイロードデータ(D0~Df)が含まれている。
 また、図2では、ペイロードデータに続けてECCを配置する順になっているが、これは一例であり、ECCの配置方法は、隣接する2つのアドレスにわたって対応関係にあるペイロードデータとECCが配置されていればよい。
 例えば、「EEC0」がペイロードデータ「D0」の前に配置されていてもよい。
 また、同じアドレスに割り当たったデータは拡張可能であり、例えば0000h番地にD0~D3、ECC0、D4~D6、次の0008h番地にD7、ECC1、D8~Db、ECC2、Dcと、データ幅を拡張しても良い。その場合においても、一部のペイロードデータとECCは隣接する2つのアドレスにわたって対応関係にあり続けるためである。
 なお、メモリ105は、メモリ制御装置100の制御対象のメモリである。
 メモリ制御装置100は、メモリアドレス変換部106、前回値保持部104、データ整列部103及びECC訂正部102で構成される。
 メモリ制御装置100の各構成要素は、例えば素子、デバイス、回路といったハードウェアである。
 メモリ制御装置100の各構成要素は、例えば、チップセット内の半導体回路群である。
 また、例えば、メモリアドレス変換部106、データ整列部103及びECC訂正部102は、プログラムを用いて実現されていてもよい。
 なお、メモリ制御装置100は、リードリクエスト処理装置の例に相当する。
 メモリアドレス変換部106は、リクエスト要求元101からのリードリクエストを受信する。
 また、メモリアドレス変換部106は、受信したリードリクエストのアドレスを垂直ECCを配置したメモリ105上のアドレスへ変換する。
 つまり、メモリアドレス変換部106は、リクエスト要求元101からのリードリクエストで要求されているペイロードデータと当該ペイロードデータと対応関係にあるECCが格納されているp個(pは2以上であってn以下の整数である)のアドレスを読み出しの対象として抽出する。
 メモリアドレス変換部106は、リードリクエスト入力部とアドレス抽出部の例に相当する。
 前回値保持部104は、メモリ105から受信した前回のリードデータ(4バイト)を保持するレジスタである。
 つまり、前回値保持部104は、メモリアドレス変換部106によって指定された各アドレスから4バイトのデータが読み出される度に、読み出された4バイトのデータを入力し、入力したデータを前回値(過去データ)として記憶する。
 前回値保持部104は、過去データ記憶部の例に相当する。
 データ整列部103は、メモリ105から受信した今回のリードデータ(4バイト)と前回値保持部104のデータ(4バイト)を、ペイロードデータ部分とそれに対応するECCに分離し、ECC訂正を行うことができる配置へデータを整列する。
 つまり、データ整列部103は、メモリアドレス変換部106によって指定された各アドレスから4バイトのデータが読み出される度に、読み出された4バイトのデータを入力する。
 また、データ整列部103は、入力した4バイトのデータの1つ前に読み出された4バイトのデータ(前回値)を前回値保持部104から入力し、メモリ105からのデータと前回値であるデータから、対応関係にあるペイロードデータとECCとを抽出する。
 データ整列部103は、データ抽出部の例に相当する。
 ECC訂正部102は、データ整列部103から受信したリードデータにECC訂正を行いリクエスト要求元101にリードデータを返送する。
 つまり、ECC訂正部102は、データ整列部103により抽出されたECCを用いて、対応関係にあるペイロードデータの誤り訂正処理を行い、誤り訂正処理後のペイロードデータを、リクエスト要求元101に出力する。
 ECC訂正部102は、誤り訂正処理部の例に相当する。
 図3では、メモリ制御装置100が直接メモリ105に接続している構成を示しているが、図4に示す通り、メモリ制御装置100はリクエスト要求先200に接続していてもよい。
 図4では、図示を省略しているが、リクエスト要求先200は、メモリ105に接続しており、メモリ105のデータの読み出しを行って、読み出したデータをメモリ制御装置100に出力する。
 次に、本実施の形態に係るメモリ制御装置100の動作例を、図5を参照して説明する。
 ここでは、リクエスト要求元101が、図1の0000h番地の4バイト(D0~D3)のリードを要求する場合を説明する。
 まず、メモリアドレス変換部106が、リクエスト要求元101からのリードリクエストを受理する(S201)。
 メモリアドレス変換部106は、4バイトのデータ(D0~D3)とそれに対応するECC(ECC0)を含むメモリ105上の領域を計算する。
 図2を参照すると、上記データは0000h番地と、0004h番地に跨って配置されているため、メモリアドレス変換部106は、0000h番地から8バイトをリードするリクエストに変換する(S202)。
 そして、メモリアドレス変換部106は、0000h番地のデータ(D0~D3)、0004h番地のデータ(ECC0~D6)の順序での読み出しをメモリ105に指示する。
 メモリ105は、0000h番地のデータ(D0~D3)と0004h番地のデータ(ECC0~D6)を順に返す。
 前回値保持部104は、0000h番地のデータ(D0~D3)を受信し、受信した0000h番地のデータ(D0~D3)を保持する(S203)。
 データ整列部103も0000h番地のデータ(D0~D3)を受信するが、0000h番地のデータだけではデータ整列ができないので(S204でNO)、0004h番地のデータ受信を待つ。
 データ整列部103は、メモリ105から0004h番地のデータ(ECC0~D6)を受信したときに、前回値保持部104が保持している0000h番地のデータ(D0~D3)と、メモリ105から受信した0004h番地のデータ(ECC0~D6)とにより、データ整列ができると判断する(S204でYES)。
 つまり、データ整列部103は、0000h番地のデータ(D0~D3)と、0004h番地のデータ(ECC0~D6)から、対応関係にあるペイロードデータ(D0~D3)とECC(ECC0)を抽出できると判断する。
 次に、データ整列部103は、ペイロードデータ部分D0~D3と対応するECC0を切り出し、データを整列させる(S205)。
 ECC訂正部102は、ペイロードデータとECCが整列されたデータ(D0~D3とECC0)を受け取り、ECC訂正を行った後、リクエスト要求元101にリードデータ(D0~D3)を返送する(S206)。
 以上でリードリクエストで要求されたデータを全て返送し終えたので処理が完了する(S207)。
 上記の例では、0000h番地から4バイトをリードする場合を取り上げたが、0004h番地から8バイトのリードなど、アドレスを単調に増加させたリードアクセスであれば、メモリ制御装置100は図5に示す動作により、ECC訂正後のリードデータを適切に返送できる。
 以上、本実施の形態では、以下の手段を備えたメモリ制御装置を説明した。
 (a)リクエスト要求元からのリクエストを、メモリのリクエストに変換し、データの橋渡しをする手段
 (b)データのECCエラー訂正をする手段
 (c)垂直ECCを採用したメモリからの受信データを、ECCエラー訂正をすることができるデータ(データと対応するECCに分離したもの)に再配置する手段
 (d)リクエスト要求元からのアドレスとレングスを、垂直ECCを採用したメモリへアドレスとレングスに変換する手段
 (e)メモリから受信した前回のデータを保持するための手段。
 また、本実施の形態では、更に、リクエスト要求元からのリクエストを、後段のリクエスト要求先へのリクエストに変換する手段を備えたメモリ制御装置を説明した。
 実施の形態2.
 本実施の形態では、垂直ECCを採用したメモリにラッピングリードを行う際に、第1データを2回リードすることを回避する構成を説明する。
 より具体的には、本実施の形態に係るメモリ制御装置100は、第1データを保持しておくバッファを備え、第1データのリードを1回で済ませる。
 本実施の形態に係るメモリ制御装置100によれば、有限なメモリ帯域を効率的に利用することができ、メモリアクセスにおける電力消費を抑制することができる。
 更に、本実施の形態に係るメモリ制御装置100は、メモリアクセスの高速化に寄与することができる。
 ここで、垂直ECCを採用したメモリにラッピングリードを行う際に、第1データのリードが2回発生する理由を、再度説明する。
 例えば、図1の0004h番地から16バイトをラッピングリードする場合、メモリ制御装置100は、リクエスト要求元101に、0004h→0008h→000Ch→0000h番地の順で計16バイトのリードデータを返送することになる。
 このリード動作を図2に示す垂直ECCを付加したメモリ配置で行うと、0004h→0008h→000Ch→0010h→0000h→0004h番地の順で計24バイトのリードデータをメモリからリードすることになり、0004h番地に対して2回リードが発生している。
 つまり、図2のメモリ配置では、0000h番地のペイロードデータ「D0~D3」のECCである「ECC0」を0004h番地からリードする必要があるため、第1データ(0004h番地のデータ)を再度読み出す必要がある。
 以上のラッピングリードにおける課題を解決するメモリ制御装置100を図6に示す。
 図6のメモリ制御装置100は、図3に示した構成に、ラッピングバーストリード判定部108と第1データ保持部109が追加されている。
 ラッピングバーストリード判定部108は、リクエスト要求元101からリードリクエストを受信するとともに、受信したリードリクエストがラッピングバーストのリードリクエストであるかどうかを判定し、その結果をメモリアドレス変換部106に通知する。
 ラッピングバーストリード判定部108は、リードリクエスト入力部とリードリクエスト判定部の例に相当する。
 第1データ保持部109は、メモリアドレス変換部106によって変換したリクエストによって、メモリ105から最初に返ってくるリードデータを保持するレジスタである。
 つまり、第1データ保持部109は、ラッピングバーストリード判定部108によりリードリクエストがラッピングバーストのリードリクエストであると判定された場合に、先頭の読み出し順序である先頭アドレス(上記の例では、0004h番地)からデータが読み出された際に、先頭アドレスから読み出された先頭データを入力し、先頭データを記憶する。
 第1データ保持部109は、先頭データ記憶部の例に相当する。
 また、本実施の形態では、メモリアドレス変換部106は、ラッピングバーストリード判定部108によりリードリクエストがラッピングバーストのリードリクエストであると判定された場合に、リードリクエストで要求されているペイロードデータが格納されているアドレスが含まれる5個のアドレスをラッピングリードの対象として抽出する。
 また、メモリアドレス変換部106は、抽出した5個のアドレスの順序に基づいて5個のアドレスからのデータの読み出し順序を指定するとともに、各アドレスからのデータの読み出し回数を1回に限定する。
 例えば、図1の0004h番地(D4~D7)を先頭のアドレスとするラッピングリードのリードリクエストが発行された場合を想定する。
 メモリアドレス変換部106は、図2においてペイロードデータ「D4~D7」が含まれる0004h番地と0008h番地を含む5個のアドレス(0004h番地、0008h番地、000Ch番地、0000h番地)をラッピングリードの対象として抽出する。
 そして、メモリアドレス変換部106は、データ読み出し順序を0004h→0008h→000Ch→0000hと指定する。
 このように、本実施の形態に係るメモリアドレス変換部106は、各アドレスからのデータの読み出し回数を1回に限定するので、第1データである0004h番地のデータが2回読み出されることがない。
 なお、通常のリードリクエストが受信された場合のメモリアドレス変換部106の動作は実施の形態1に示した通りである。
 また、図6に示す他の要素の動作は、実施の形態1で説明した通りなので、説明を省略する。
 次に、本実施の形態に係るメモリ制御装置100の動作例を、図7を参照して説明する。
 ここでは、リクエスト要求元101が、図1の0004h番地(D4~D7)を先頭のアドレスとするラッピングリードを要求する場合を説明する。
 また、図8は、メモリ制御装置100の各部で、どのようにデータを処理するかを説明している。
 まず、ラッピングバーストリード判定部108が、リクエスト要求元101からのリードリクエストを受理する(S201)。
 ラッピングバーストリード判定部108は、リードリクエストがラッピングバーストリードのリクエストであるか否かを判定する(S301)。
 ラッピングバーストリードのリクエストである場合(S301でYES)は、ラッピングバーストリード判定部108は、リードリクエストをメモリアドレス変換部106に出力し、メモリアドレス変換部106がラッピングバーストリードのメモリアドレスに変換する(S302)。
 メモリアドレス変換部106は、16バイトのデータ(D4~DfとD0~D3)とそれに対応するECC(ECC1~ECC3とECC0)を含む領域を計算する。
 図2を参照すると、上記データは0004h番地から0010h番地と0000h番地に配置されているので、0004h番地から16バイト、0000h番地から4バイトをリードするリクエストに変換する(S302)。
 そして、メモリアドレス変換部106は、0004h→0008h→000Ch→0000hの順で、メモリ105にデータの読み出しを指示する。
 メモリ105は、0004h番地のデータ(ECC0~D6)から順に返す。
 第1データ保持部109は、先頭のデータである0004h番地のデータ(ECC0~D6)(図8の第1データA)を受信し、受信した0004h番地のデータを第1データ(図8の第1データE)として保持する(S303)。
 データ整列部103も0004h番地のデータ(ECC0~D6)(図8の第1データA)を受信するが、0004h番地のデータだけではデータ整列ができないので(S305でNO)、0008h番地のデータ受信を待つ。
 また、このとき、前回値保持部104も、0004h番地のデータ(ECC0~D6)(図8の第1データA)を受信し、受信した0004h番地のデータを前回値(図8の第1データB)として保持する(S203)。
 なお、0000h番地のデータを受信するまでの動作は、実施の形態1と同様である。
 つまり、メモリ105から0008h番地のデータ(D7~D9)(図8の第2データA)が読み出された際に、前回値保持部104が0008h番地のデータを前回値(図8の第2データB)として保持し(S203)、データ整列部103も、0008h番地のデータ(D7~D9)(図8の第2データA)を受信する。
 データ整列部103は、図8に示すように、受信した0008h番地のデータ(第2データA)と前回値(第1データB)から、「D4~D7」と「ECC1」を抽出して、第1データCを生成する(S305、S205)。
 そして、ECC訂正部102がECC訂正を行い、第1データDをリクエスト要求元101に送信する(S206)。
 なお、この時点では、全てのリードデータが返送されていないので、S207はNOとなる。
 次に、メモリ105から000Ch番地のデータ(Da~Dc)(図8の第3データA)が読み出された際に、前回値保持部104が000Ch番地のデータを前回値(図8の第3データB)として保持し(S203)、データ整列部103も、000Ch番地のデータ(Da~Dc)(図8の第3データA)を受信する。
 データ整列部103は、図8に示すように、受信した000Ch番地のデータ(第3データA)と前回値(第2データB)から、「D8~Db」と「ECC2」を抽出して、第2データCを生成する(S305、S205)。
 そして、ECC訂正部102がECC訂正を行い、第2データDをリクエスト要求元101に送信する(S206)。
 なお、この時点では、全てのリードデータが返送されていないので、S207はNOとなる。
 次に、メモリ105から0010h番地のデータ(Dd~ECC3)(図8の第4データA)が読み出された際に、前回値保持部104が0010h番地のデータを前回値(図8の第4データB)として保持し(S203)、データ整列部103も、0010h番地のデータ(Dd~ECC3)(図8の第4データA)を受信する。
 データ整列部103は、図8に示すように、受信した0010h番地のデータ(第4データA)と前回値(第3データB)から、「Dc~Df」と「ECC3」を抽出して、第3データCを生成する(S305、S205)。
 そして、ECC訂正部102がECC訂正を行い、第3データDをリクエスト要求元101に送信する(S206)。
 なお、この時点では、全てのリードデータが返送されていないので、S207はNOとなる。
 次に、メモリ105から0000h番地のデータ(D0~D3)(図8の第5データA)が読み出された際に、前回値保持部104が0000h番地のデータを前回値(図8の第5データB)として保持し(S203)、データ整列部103も、0000h番地のデータ(D0~D3)(図8の第5データA)を受信する。
 データ整列部103は0000h番地のデータ(D0~D3)(図8の第5データA)を受信するが、0010h番地のデータ(第4データB)とではデータ整列ができないので(S305でNO)、0000h番地のデータ(第5データB)を待つ。
 データ整列部103は、図8に示すように、受信した0000h番地のデータ(第5データB)と第1データ保持部109内の第1データ(第1データE)から、「D0~D3」と「ECC0」を抽出して、第4データCを生成する(S305、S205)。
 そして、ECC訂正部102がECC訂正を行い、第4データDをリクエスト要求元101に送信する(S206)。
 この時点で、全てのリードデータが返送されたので、S207はYESとなる。
 なお、上記の例では、前回値保持部104は、第4データB及び第5データBを記憶することとしたが、この第4データB及び第5データBはデータ整列部103において利用されないので、前回値保持部104は第4データB及び第5データBを記憶しなくてもよい。
 このように、本実施の形態によれば、各アドレスからのデータの読出し回数を1回に限定するとともに第1データを記憶し、最後尾のデータに対して、記憶している第1データを利用するため、重複したデータの読み出しを回避し、有限なメモリ帯域を効率的に利用し、また、メモリアクセスにおける電力消費を抑制することができる。
 以上、本実施の形態では、実施の形態1で示した構成に加えて、以下の手段を備えたメモリ制御装置を説明した。
 (a)リクエスト要求元からのリクエストによる、最初の受信データを保持する手段
 (b)ラッピングリードを判定する手段。
 実施の形態3.
 実施の形態1では、リクエスト要求元101からのリードリクエストを1つ受け付け、そのリードデータを返送し終えるまで、次のリードリクエストを受け付けることができない。
 例えばDRAMでは、リードリクエストを発行してから、リードデータが返ってくるまでの期間(リードレイテンシ)は長いが、リードリクエストを発行したリードデータが返ってくる前に、次のリードリクエストを連続して発行することができる。
 スループットを向上させるには、このパイプライン処理は不可欠である。
 実施の形態1の構成をベースにして、パイプライン処理を行うメモリ制御装置100を図9に示す。
 図9に示すメモリ制御装置100では、図3に示す構成にFIFO(First-In First-Out)110を追加している。
 FIFO110は、メモリ105に発行したリクエストを記憶しておき、メモリ105からリードデータが返ってきたタイミングでデータ整列部103にその情報を渡す。
 また、図9に示す他の要素の動作は、実施の形態1で説明した通りなので、説明を省略する。
 次に、本実施の形態に係るメモリ制御装置100の動作例を、図10を参照して説明する。
 メモリアドレス変換部106が、リードリクエストで要求されたアドレスを、図2のメモリアドレスに変換する処理(S202)までは、実施の形態1と同様である。
 次に、メモリアドレスに変換したコマンド情報をFIFO110で保持する(S401)。
 ECC訂正をしたリードデータの返送が完了する前に、リクエスト要求元101から新たなリードリクエストを受け付ける場合は、連続してFIFO110でコマンド情報を保持する。
 ここで、FIFO110にはコマンド情報が保持されており空でないため(S402でYES)、データ整列部103及び前回値保持部104は、メモリ105からのリードデータを受け付ける(S203)。
 ECC訂正をしたリードデータの返送が完了した後、FIFO110にコマンド情報が存在する場合(S402でYES)は、データ整列部103及び前回値保持部104は、次のリクエストに対するリードデータをメモリ105から受け付ける(S203)。
 FIFO110にコマンド情報が存在しない場合(S402でNO)には、リクエストのデータを全て返送し終えたので処理が完了する(S207)。
 以上、本実施の形態では、実施の形態1で示した構成に加えて、リクエスト要求元からのリクエストを蓄える手段を備えたメモリ制御装置を説明した。
 実施の形態4.
 実施の形態2で説明した構成においても、実施の形態3と同様にパイプライン処理が可能である。
 しかし、図6に示す構成に単純にFIFO110を追加しただけでは、不都合が生じる。
 ラッピングリードの次のリードリクエストに対してパイプライン処理により連続してメモリリードが行われると、ラッピングリードの最後尾のアドレスのデータがメモリ105からデータ整列部103に出力された直後に、次のリードリクエストに対して読み出されたデータがメモリ105からデータ整列部103に出力される場合がある。
 ラッピングリードでは、最後尾のアドレスのデータがメモリ105からデータ整列部103に出力された後に、第1データ保持部109からの第1データと前回値保持部104に格納された最後尾のアドレスのデータとを用いたデータ整列がデータ整列部103で行われる。
 このデータ整列が完了する前に、次のリードリクエストに対してメモリ105から読み出されたデータがデータ整列部103に入力されると、データ整列部103においてデータの衝突が生じる。
 このため、本実施の形態では、図6に示す構成に、FIFO110と、データの衝突を制御する手段を設けて、パイプライン処理を実現する。
 実施の形態2の構成をベースにして、パイプライン処理を行うメモリ制御装置100を図11に示す。
 図9に示すメモリ制御装置100では、図6に示す構成にFIFO110と、データ衝突制御部111を追加している。
 データ衝突制御部111は、データ整列部103が第1データ保持部109からの第1データを利用するタイミングで、後続するリードリクエストに対してメモリ105から読み出されたデータがデータ整列部103に入力されないようにする。
 つまり、データ衝突制御部111は、データ整列部103が第1データ保持部109からの第1データを入力し、第1データと最後尾のアドレスのデータから、対応関係にあるペイロードデータとECCを抽出した後に、後続するリードリクエストに対してメモリ105から読み出されたデータがデータ整列部103に入力されるように、メモリ105から読み出されたデータのタイミング制御を行う。
 例えば、図11に示すように、データ衝突制御部111をメモリ105とデータ整列部103との間に配置し、データ衝突制御部111が後続するリードリクエストに対してメモリ105から読み出されたデータをバッファリングして、衝突制御することが考えられる。
 また、図13に示すように、データ衝突制御部111をメモリ105とメモリアドレス変換部106との間に配置し、データ衝突制御部111がラッピングリードに後続するリードリクエストのメモリ105へのリクエスト発行間隔を空けることで衝突制御することが考えられる。
 次に、本実施の形態に係るメモリ制御装置100の動作例を、図12を参照して説明する。
 なお、図12は、図11の構成における動作例を示している。
 コマンド情報をFIFO110で保持する処理(S401)までは、実施の形態2及び実施の形態3と同様である。
 FIFO110に保持されている先頭のコマンド情報がラッピングリードのコマンド情報でない場合(S501でNO)の処理は、実施の形態3と同様である。
 FIFO110に保持されている先頭のコマンド情報がラッピングリードのコマンド情報である場合は(S501でYES)、データ整列部103が第1データを使ってデータ整列をする処理までは実施の形態2と同様である。
 次に、データ衝突制御部111が、データ整列部103が第1データを使ったデータ整列を完了するまでにメモリ105から読み出されたデータが受信されているか否かを判断する(S502)。
 データ整列を完了するまでにメモリ105からのデータ受信があった場合(S502でYES)は、データ衝突制御部111は、データ整列部103がメモリ105からのリードデータを受信するタイミングを遅らせる(S503)。
 具体的には、データ衝突制御部111は、メモリ105からのリードデータをバッファリングする。
 以降の動作は、実施の形態3と同様である。
 以上、本実施の形態では、実施の形態2で示した構成に加えて、以下の手段を備えたメモリ制御装置を説明した。
(a)リクエスト要求元からのリクエストを蓄える手段
(b)実施の形態2に記載の最初の受信データと、メモリからの受信データの、衝突制御を実現する手段。
 100 メモリ制御装置、101 リクエスト要求元、102 ECC訂正部、103 データ整列部、104 前回値保持部、105 メモリ、106 メモリアドレス変換部、108 ラッピングバーストリード判定部、109 第1データ保持部、110 FIFO、111 データ衝突制御部、200 リクエスト要求先。

Claims (13)

  1.  各々に所定のデータ幅分のデータが格納されるn個のアドレスを有し、前記n個のアドレスが、ラッピングリードの単位であるm個のアドレスごとに区分され(mは2以上の整数、nはmの2以上の整数倍の整数)、対応関係にあるペイロードデータと誤り訂正データが、隣接する2つのアドレスにわたって格納され、アドレス単位でデータの読み出しが行われるメモリ
    からのペイロードデータの読み出しを要求するリードリクエストを処理するリードリクエスト処理装置であって、
     リードリクエストを入力するリードリクエスト入力部と、
     前記リードリクエスト入力部により入力されたリードリクエストが、ラッピングリードのリクエストであるか否かを判定するリードリクエスト判定部と、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記n個のアドレスの中から、前記リードリクエストで要求されているペイロードデータが格納されているアドレスが含まれるm個のアドレスをラッピングリードの対象として抽出し、抽出したm個のアドレスの順序に基づいてm個のアドレスからのデータの読み出し順序を指定するとともに、各アドレスからのデータの読み出し回数を1回に限定するアドレス抽出部と、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち先頭の読み出し順序が指定された先頭アドレスからデータが読み出された際に、前記先頭アドレスから読み出された先頭データを入力し、前記先頭データを記憶する先頭データ記憶部と、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち最後尾の読み出し順序が指定された最後尾アドレスからデータが読み出された際に、前記最後尾アドレスから読み出された最後尾データを入力するとともに、前記先頭データ記憶部から前記先頭データを入力し、前記先頭データと前記最後尾データから、対応関係にあるペイロードデータと誤り訂正データを抽出するデータ抽出部とを有することを特徴とするリードリクエスト処理装置。
  2.  前記リードリクエスト処理装置は、更に、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により指定された読み出し順序に従って前記m個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力し、入力したデータを過去データとして記憶する過去データ記憶部を有し、
     前記データ抽出部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記最後尾アドレスからデータが読み出されるまでは、前記アドレス抽出部により指定された読み出し順序に従って前記m個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力するとともに、入力した入力データの1つ前に読み出された過去データを前記過去データ記憶部から入力し、前記入力データと前記過去データから、対応関係にあるペイロードデータと誤り訂正データとを抽出することを特徴とする請求項1に記載のリードリクエスト処理装置。
  3.  前記リードリクエスト処理装置は、更に、
     前記データ抽出部により抽出された誤り訂正データを用いて、対応関係にあるペイロードデータの誤り訂正処理を行い、誤り訂正処理後のペイロードデータを、前記リードリクエストの出力元に出力する誤り訂正処理部を有することを特徴とする請求項1又は2に記載のリードリクエスト処理装置。
  4.  前記アドレス抽出部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、
     前記リードリクエストで要求されているペイロードデータが格納されているアドレスである要求先アドレスに、先頭の読み出し順序を指定し、
     前記要求先アドレスの1つ前のアドレスに、最後尾の読み出し順序を指定することを特徴とする請求項1~3のいずれかに記載のリードリクエスト処理装置。
  5.  前記リードリクエスト判定部、前記アドレス抽出部、前記先頭データ記憶部及び前記データ抽出部は、
     複数のリードリクエストをパイプライン処理することを特徴とする請求項1~4のいずれかに記載のリクエスト処理装置。
  6.  前記リードリクエスト処理装置は、更に、
     前記データ抽出部が前記先頭データ記憶部から前記先頭データを入力し、前記先頭データと前記最後尾データから、対応関係にあるペイロードデータと誤り訂正データを抽出した後に、ラッピングリードのリクエストに後続するリードリクエストに対して前記メモリから読み出されたデータが前記データ抽出部に入力されるように、前記メモリから読み出されたデータのタイミング制御を行うデータ衝突制御部を有することを特徴とする請求項5に記載のリクエスト処理装置。
  7.  各々に所定のデータ幅分のデータが格納されるn個のアドレスを有し(nは2以上の整数)、対応関係にあるペイロードデータと誤り訂正データが、隣接する2つのアドレスにわたって格納され、アドレス単位でデータの読み出しが行われるメモリ
    からのペイロードデータの読み出しを要求するリードリクエストを処理するリードリクエスト処理装置であって、
     リードリクエストを入力するリードリクエスト入力部と、
     前記n個のアドレスの中から、前記リードリクエスト入力部により入力されたリードリクエストで要求されているペイロードデータと当該ペイロードデータと対応関係にある誤り訂正データが格納されているp個(pは2以上であってn以下の整数)のアドレスを読み出しの対象として抽出し、抽出したp個のアドレスの順序に基づいてp個のアドレスからのデータの読み出し順序を指定するアドレス抽出部と、
     前記アドレス抽出部により指定された読み出し順序に従って前記p個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力し、入力したデータを過去データとして記憶する過去データ記憶部と、
     前記アドレス抽出部により指定された読み出し順序に従って前記p個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力するとともに、入力した入力データの1つ前に読み出された過去データを前記過去データ記憶部から入力し、前記入力データと前記過去データから、対応関係にあるペイロードデータと誤り訂正データとを抽出するデータ抽出部とを有することを特徴とするリードリクエスト処理装置。
  8.  前記リードリクエスト処理装置は、
     前記n個のアドレスがラッピングリードの単位であるm個のアドレスごとに区分されている(mは2以上の整数、nはmの2以上の整数倍の整数)メモリ
    からのペイロードデータの読み出しを要求するリードリクエストを処理し、
     前記リードリクエスト処理装置は、更に、
     前記リードリクエスト入力部により入力されたリードリクエストが、ラッピングリードのリクエストであるか否かを判定するリードリクエスト判定部を有し、
     前記アドレス抽出部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記n個のアドレスの中から、前記リードリクエストで要求されているペイロードデータが格納されているアドレスが含まれるm個のアドレスをラッピングリードの対象として抽出し、抽出したm個のアドレスの順序に基づいてm個のアドレスからのデータの読み出し順序を指定するとともに、各アドレスからのデータの読み出し回数を1回に限定し、
     前記リードリクエスト処理装置は、更に、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち先頭の読み出し順序が指定された先頭アドレスからデータが読み出された際に、前記先頭アドレスから読み出された先頭データを入力し、前記先頭データを記憶する先頭データ記憶部を有し、
     前記データ抽出部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により抽出されたm個のアドレスのうち最後尾の読み出し順序が指定された最後尾アドレスからデータが読み出された際に、前記最後尾アドレスから読み出された最後尾データを入力するとともに、前記先頭データ記憶部から前記先頭データを入力し、前記先頭データと前記最後尾データから、対応関係にあるペイロードデータと誤り訂正データを抽出することを特徴とする請求項7に記載のリードリクエスト処理装置。
  9.  前記過去データ記憶部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記アドレス抽出部により指定された読み出し順序に従って前記m個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力し、入力したデータを過去データとして記憶し、
     前記データ抽出部は、
     前記リードリクエスト判定部により前記リードリクエストがラッピングリードのリクエストであると判定された場合に、前記最後尾アドレスからデータが読み出されるまでは、前記アドレス抽出部により指定された読み出し順序に従って前記m個のアドレスの各アドレスからデータが読み出される度に、読み出されたデータを入力するとともに、入力した入力データの1つ前に読み出された過去データを前記過去データ記憶部から入力し、前記入力データと前記過去データから、対応関係にあるペイロードデータと誤り訂正データとを抽出することを特徴とする請求項8に記載のリードリクエスト処理装置。
  10.  前記リードリクエスト処理装置は、更に、
     前記データ抽出部により抽出された誤り訂正データを用いて、対応関係にあるペイロードデータの誤り訂正処理を行い、誤り訂正処理後のペイロードデータを、前記リードリクエストの出力元に出力する誤り訂正処理部を有することを特徴とする請求項7~9のいずれかに記載のリードリクエスト処理装置。
  11.  前記アドレス抽出部、前記過去データ記憶部及び前記データ抽出部は、
     複数のリードリクエストをパイプライン処理することを特徴とする請求項7に記載のリクエスト処理装置。
  12.  前記リードリクエスト判定部、前記アドレス抽出部、前記過去データ記憶部、前記先頭データ記憶部及び前記データ抽出部は、
     複数のリードリクエストをパイプライン処理することを特徴とする請求項8に記載のリクエスト処理装置。
  13.  前記リードリクエスト処理装置は、更に、
     前記データ抽出部が前記先頭データ記憶部から前記先頭データを入力し、前記先頭データと前記最後尾データから、対応関係にあるペイロードデータと誤り訂正データを抽出した後に、ラッピングリードのリクエストに後続するリードリクエストに対して前記メモリから読み出されたデータが前記データ抽出部に入力されるように、前記メモリから読み出されたデータのタイミング制御を行うデータ衝突制御部を有することを特徴とする請求項12に記載のリクエスト処理装置。
PCT/JP2012/066494 2012-06-28 2012-06-28 リードリクエスト処理装置 WO2014002222A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2014522301A JP5623677B2 (ja) 2012-06-28 2012-06-28 リードリクエスト処理装置
PCT/JP2012/066494 WO2014002222A1 (ja) 2012-06-28 2012-06-28 リードリクエスト処理装置
CN201280074337.6A CN104471549B (zh) 2012-06-28 2012-06-28 读取请求处理装置
DE112012006587.5T DE112012006587T5 (de) 2012-06-28 2012-06-28 Leseanforderungs-Verarbeitungsvorrichtung
US14/388,049 US9465691B2 (en) 2012-06-28 2012-06-28 Read request processing apparatus
TW101125663A TWI492237B (zh) 2012-06-28 2012-07-17 Read request processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/066494 WO2014002222A1 (ja) 2012-06-28 2012-06-28 リードリクエスト処理装置

Publications (1)

Publication Number Publication Date
WO2014002222A1 true WO2014002222A1 (ja) 2014-01-03

Family

ID=49782453

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/066494 WO2014002222A1 (ja) 2012-06-28 2012-06-28 リードリクエスト処理装置

Country Status (6)

Country Link
US (1) US9465691B2 (ja)
JP (1) JP5623677B2 (ja)
CN (1) CN104471549B (ja)
DE (1) DE112012006587T5 (ja)
TW (1) TWI492237B (ja)
WO (1) WO2014002222A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866432A (zh) * 2014-02-24 2015-08-26 斯班逊有限公司 具有绕回-至-连续读取的存储器子系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715427B2 (en) 2012-11-05 2017-07-25 Mitsubishi Electric Corporation Memory control apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119255A (ja) * 1992-10-02 1994-04-28 Oki Electric Ind Co Ltd データ記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JP2003050748A (ja) * 2001-08-03 2003-02-21 Nec Corp バッファメモリ回路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223264B1 (en) * 1991-10-24 2001-04-24 Texas Instruments Incorporated Synchronous dynamic random access memory and data processing system using an address select signal
US5265218A (en) * 1992-05-19 1993-11-23 Sun Microsystems, Inc. Bus architecture for integrated data and video memory
US5608896A (en) * 1992-05-28 1997-03-04 Texas Instruments Incorporated Time skewing arrangement for operating memory devices in synchronism with a data processor
US5574880A (en) * 1994-03-11 1996-11-12 Intel Corporation Mechanism for performing wrap-around reads during split-wordline reads
JP3643601B2 (ja) 1996-07-03 2005-04-27 株式会社日立製作所 情報処理装置
JPH1198462A (ja) 1997-09-19 1999-04-09 Hitachi Ltd データ再生装置
JP4234863B2 (ja) * 1998-12-11 2009-03-04 株式会社アドバンテスト フェイル情報取り込み装置、半導体メモリ試験装置及び半導体メモリ解析方法
JP2004038705A (ja) 2002-07-05 2004-02-05 Toshiba Corp メモリ制御装置およびメモリアクセス方法
US7899957B1 (en) * 2003-12-30 2011-03-01 Altera Corporation Memory controller having a buffer for providing beginning and end data
ITMI20041910A1 (it) * 2004-10-08 2005-01-08 Atmel Corp Architettura di decodifica a colonne migliorata per memorie flash
ITMI20050063A1 (it) * 2005-01-20 2006-07-21 Atmel Corp Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash
US7307635B1 (en) * 2005-02-02 2007-12-11 Neomagic Corp. Display rotation using a small line buffer and optimized memory access
US7376762B2 (en) * 2005-10-31 2008-05-20 Sigmatel, Inc. Systems and methods for direct memory access
JP4912718B2 (ja) * 2006-03-30 2012-04-11 富士通セミコンダクター株式会社 ダイナミック型半導体メモリ
JP2008059565A (ja) 2006-08-01 2008-03-13 Nec Electronics Corp バーストメモリアクセスを制御するメモリインターフェース装置及びその制御方法
US20080034132A1 (en) 2006-08-01 2008-02-07 Nec Electronics Corporation Memory interface for controlling burst memory access, and method for controlling the same
CN102508635B (zh) * 2011-10-19 2014-10-08 中国科学院声学研究所 一种处理器装置及其循环处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119255A (ja) * 1992-10-02 1994-04-28 Oki Electric Ind Co Ltd データ記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JP2003050748A (ja) * 2001-08-03 2003-02-21 Nec Corp バッファメモリ回路

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866432A (zh) * 2014-02-24 2015-08-26 斯班逊有限公司 具有绕回-至-连续读取的存储器子系统
KR20150100565A (ko) * 2014-02-24 2015-09-02 스펜션 엘엘씨 랩핑된 판독 대 연속적인 판독을 갖는 메모리 서브 시스템
US10331359B2 (en) 2014-02-24 2019-06-25 Cypress Semiconductor Corporation Memory subsystem with wrapped-to-continuous read
KR102180975B1 (ko) * 2014-02-24 2020-11-19 사이프레스 세미컨덕터 코포레이션 랩핑된 판독 대 연속적인 판독을 갖는 메모리 서브 시스템

Also Published As

Publication number Publication date
TW201401289A (zh) 2014-01-01
US9465691B2 (en) 2016-10-11
CN104471549B (zh) 2017-06-16
CN104471549A (zh) 2015-03-25
DE112012006587T5 (de) 2015-04-02
TWI492237B (zh) 2015-07-11
JP5623677B2 (ja) 2014-11-12
JPWO2014002222A1 (ja) 2016-05-26
US20150046773A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
JP4936506B2 (ja) メモリ制御回路及びメモリ制御方法
CN110265071B (zh) 具有内部读取-修改-写入操作的存储部件
US10990322B2 (en) Memory buffer chip, memory system and method of controlling the memory buffer chip
JP6287571B2 (ja) 演算処理装置、情報処理装置、及び、演算処理装置の制御方法
US20170160952A1 (en) Memory controller, memory system, and information processing system
US8856479B2 (en) Implementing storage adapter performance optimization with hardware operations completion coalescence
US7698475B2 (en) DMA transfer control apparatus for performing direct memory access transfer from a transfer source to a transfer destination
CN110781107B (zh) 基于dram接口的低延迟融合io控制方法和装置
JP6785629B2 (ja) 通信メカニズムを含むコンピューティングシステム及びその動作方法
JP5623677B2 (ja) リードリクエスト処理装置
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
CN116685943A (zh) 可编程原子单元中的自调度线程
US9715427B2 (en) Memory control apparatus
KR20120110450A (ko) 에러 정정 디코더 및 그것의 에러 정정 방법
US20190391840A1 (en) Memory module
JP5982148B2 (ja) 半導体記憶装置
US10719440B2 (en) Semiconductor device and memory access method
JP2007140858A (ja) メモリアクセス方法及びメモリアクセス装置
JP2012137944A (ja) メモリアクセス装置
JP5803000B2 (ja) Dma装置、情報処理装置、及びデータ転送方法
US20160004655A1 (en) Computing system and operating method of the same
US8533565B2 (en) Cache controller and cache controlling method
JP5852090B2 (ja) 命令処理装置およびその命令処理方法
US20090248919A1 (en) Method for external fifo acceleration
JP2019200592A (ja) メモリ制御回路、出力回路、メモリ制御回路の制御方法および出力回路の制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12879649

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014522301

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14388049

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112012006587

Country of ref document: DE

Ref document number: 1120120065875

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12879649

Country of ref document: EP

Kind code of ref document: A1