WO2016063716A1 - メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 - Google Patents

メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 Download PDF

Info

Publication number
WO2016063716A1
WO2016063716A1 PCT/JP2015/078266 JP2015078266W WO2016063716A1 WO 2016063716 A1 WO2016063716 A1 WO 2016063716A1 JP 2015078266 W JP2015078266 W JP 2015078266W WO 2016063716 A1 WO2016063716 A1 WO 2016063716A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
recording
recorded
block
Prior art date
Application number
PCT/JP2015/078266
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 US15/519,465 priority Critical patent/US20170242589A1/en
Priority to JP2016555162A priority patent/JP6750502B2/ja
Publication of WO2016063716A1 publication Critical patent/WO2016063716A1/ja

Links

Images

Classifications

    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Definitions

  • This technology relates to a memory controller.
  • the present invention relates to a memory controller, a storage device, an information processing system, a processing method in these, and a program for causing a computer to execute the method, which handle a memory that transfers data in units of blocks at the time of writing and reading.
  • a large-capacity and wide-band SDRAM (Synchronous Dynamic Random Access Memory) is used as a memory used for an image memory of an imaging device or the like.
  • SDRAM Serial Dynamic Random Access Memory
  • Data transfer accompanying access is performed by burst transfer.
  • This is a method of sequentially transferring a plurality of data having consecutive column addresses, and a method of transferring data of a preset number of words (burst length) by inputting a column address once. Since a plurality of data can be transferred by inputting a column address once, the data transfer rate can be increased.
  • the recording area is divided into blocks each having a size corresponding to the burst length, and data is transferred in units of these blocks.
  • a memory controller that processes a read request from a master generates byte combination information from a read destination address and performs reading based on the read address in a system including a master, a memory controller, and a memory.
  • This byte combination information is information indicating the range of data to be read.
  • information indicating that data in an area whose address is shifted by 4 words with respect to the column address # 0x0 is a read target corresponds to the byte combination information and is generated by the memory controller.
  • the generated byte combination information is interpreted by the memory, and data in the range of addresses # 0x4 to # 0xB is output as read data for the input column address # 0x0.
  • the above-described prior art has a problem that a special memory having a function of reading and outputting data recorded in different blocks by interpreting byte combination information generated by the memory controller is required.
  • This technology has been created in view of such a situation, and aims to shorten the data read time in the memory without using a special memory.
  • the present technology has been made to solve the above-described problems.
  • the first aspect of the present technology is that recording is started by accessing a block, which is a recording area divided by a block size composed of a plurality of data, as a unit.
  • the first memory in which a plurality of recording data is recorded from the head of the block and the second memory in which a plurality of the recording data is recorded from the middle of the recording start block accessed in units of the block.
  • One of the first memory and the second memory is read based on the number of blocks required for reading the data included in the recorded data recorded in the memory or the second memory
  • Teeth is a memory controller comprising a read control unit that performs. Accordingly, there is an effect that either one of the first memory or the second memory is selected as a reading target based on the number of the blocks necessary for reading data.
  • a plurality of recording data is written from the beginning of the recording start block of the first memory, and predetermined data is added to the beginning and end of the plurality of recording data.
  • a write control unit for generating new recording data and writing the new recording data from the head of the recording start block of the second memory.
  • the first memory and the second memory are memories that perform burst transfer at the time of writing and reading
  • the data is word data
  • the block size is: It may be a burst length in the burst transfer. Accordingly, the first memory or the second memory can be stored based on the number of blocks required for reading data in the first memory and the second memory having the recording areas divided by the burst length. One of them is selected as a reading target.
  • the data may be bit data
  • the block size may be a word size including a plurality of bit data
  • the block may be a word.
  • the first memory or the second memory can be used based on the number of blocks required for reading data in the first memory and the second memory having the recording areas divided by the word size. One of them is selected as a reading target.
  • a plurality of recording data is recorded from the beginning of a recording start block by being accessed in units of blocks that are recording areas divided by a block size including a plurality of data.
  • a memory, a second memory that is accessed in units of the block and records a plurality of the recording data from the middle of the recording start block, and the recording recorded in the first memory or the second memory A selection unit that selects one of the first memory and the second memory as a reading target based on the number of blocks required for reading data included in the data, and a result of the selection And a read control unit that reads from either the first memory or the second memory. Accordingly, there is an effect that either one of the first memory or the second memory is selected as a reading target based on the number of the blocks necessary for reading data.
  • a plurality of pieces of recording data are recorded from the beginning of a recording start block by being accessed in units of blocks that are recording areas divided by a block size including a plurality of data.
  • a selection unit that selects one of the first memory and the second memory as a reading target based on the number of blocks required for reading data included in the data, and a result of the selection
  • a storage device including a read control unit for reading from either the first memory or the second memory, and the storage
  • An information processing system comprising a master to access the location of the data. Accordingly, there is an effect that either one of the first memory or the second memory is selected as a reading target based on the number of the blocks necessary for reading data.
  • a fourth aspect of the present technology there is provided a first aspect in which a plurality of recording data is recorded from the head of a recording start block by being accessed in units of blocks which are recording areas divided by a block size including a plurality of data
  • a memory control comprising: a read control procedure for reading from either the first memory or the second memory It is the law. Accordingly, there is an effect that either one of the first memory or the second memory is selected as a reading target based on the number of the blocks necessary for reading data.
  • FIG. 3 is a diagram illustrating a configuration example of a memory controller 210 in the first embodiment of the present technology.
  • FIG. It is a figure showing writing of data in a 1st embodiment of this art. It is a figure showing reading of data in a 1st embodiment of this art. It is a figure showing an example of a processing procedure of write-in processing in a 1st embodiment of this art. It is a figure showing an example of a processing procedure of read-out processing in a 1st embodiment of this art. It is a figure showing an example of a processing procedure of memory selection processing (Step S960) in a 1st embodiment of this art. It is a figure showing data writing in a 2nd embodiment of this art. It is a figure showing reading of data in a 2nd embodiment of this art. It is a figure showing an example of composition of an image memory in a 3rd embodiment of this art.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system according to an embodiment of the present technology.
  • the information processing system in FIG. 1 includes a master 100 and a storage device 200.
  • the master 100 performs processing such as image processing.
  • the master 100 accesses the storage device 200 by issuing a command such as writing or reading.
  • the storage device 200 records data necessary for processing in the master 100.
  • the signal line 101 is for electrically connecting the master 100 and the storage device 200.
  • the storage device 200 includes a memory controller 210, a memory # 1 (220), and a memory # 2 (230).
  • the memory controller 210 controls the memory # 1 (220) and the memory # 2 (230).
  • the memory controller 210 interprets write and read commands issued from the master 100 and requests the memory # 1 (220) and the memory # 2 (230) for write and read requests based on the commands.
  • Memory # 1 (220) and memory # 2 (230) are for recording data. This data is accessed based on a request requested from the memory controller 210. At this time, data is transferred between the memory # 1 (220) and the memory # 2 (230) and the memory controller 210.
  • the memory area of the memory # 1 (220) and the memory # 2 (230) is divided by a block size composed of a plurality of data, and is accessed by the memory controller 210 in units of blocks that are the divided recording areas. .
  • a memory constituted by an SDRAM can be used as the memory # 1 (220) and the memory # 2 (230).
  • the memory # 1 (220) is an example of the first memory described in the claims.
  • Memory # 2 (230) is an example of the second memory described in the claims.
  • the signal line 201 electrically connects the memory controller 210 and the memory # 1 (220).
  • the signal line 202 is for electrically connecting the memory controller 210 and the memory # 2 (230).
  • the master 100 When the master 100 performs writing, the master 100 issues a write command, accompanying write data, a write destination address, and the number of write data to the storage device 200.
  • This write command is processed by the memory controller 210 of the storage device 200.
  • the memory controller 210 interprets the issued write command, and issues a write request to the memory # 1 (220) and the memory # 2 (230) based on the accompanying write data, the write destination address, and the number of write data. Request.
  • the memory # 1 (220) and the memory # 2 (230) perform writing based on this request.
  • the master 100 issues a read command, a read destination address associated with the read command, and the number of read data to the storage device 200.
  • the memory controller 210 interprets this command and requests a read request from the memory # 1 (220) and the memory # 2 (230) based on the read destination address and the number of read data associated therewith.
  • the memory # 1 (220) and the memory # 2 (230) read based on this request and output the read data to the memory controller 210.
  • the memory controller 210 outputs the output data to the master 100.
  • the size of the write and read data is a multiple of the burst length. Details of control of writing and reading to the memory # 1 (220) and the memory # 2 (230) will be described later.
  • FIG. 2 is a diagram illustrating a configuration example of the memory controller 210 according to the first embodiment of the present technology.
  • the memory controller 210 includes a master interface 211, a write control unit 212, a read control unit 213, a buffer 214, a selection unit 215, a memory interface 216, and a bus 219.
  • the master interface 211 exchanges data with the master 100.
  • the memory interface 216 exchanges data with the memory # 1 (220) and the memory # 2 (230).
  • the buffer 214 temporarily holds write and read data.
  • the bus 219 connects each part in the memory controller 210 to each other.
  • the write control unit 212 controls data writing to the memory # 1 (220) and the memory # 2 (230). Based on the write command from the master 100, the write control unit 212 transfers the write data output from the master 100 and held in the buffer 214 to the memory # 1 (220) and the memory # 2 (230). To do. Details of the data writing will be described later.
  • the selection unit 215 selects either the memory # 1 (220) or the memory # 2 (230) when reading data. Details of this selection method will be described later.
  • Read control unit 213 reads data.
  • the read control unit 213 reads data from the memory # 1 (220) or the memory # 2 (230) based on a read command from the master 100.
  • the read data is once held in the buffer 214 and then sent to the master 100. Note that the reading control unit 213 performs this reading from either the memory # 1 (220) or the memory # 2 (230) based on the selection result of the selection unit 215.
  • FIG. 3 is a diagram illustrating data writing according to the first embodiment of the present technology.
  • a represents the relationship between the blocks and recording areas in the memory # 1 (220) and the memory # 2 (230).
  • the area delimited by the rectangle a in the figure represents an area of one word, and the characters described in this rectangular part are the addresses of each area (16-bit notation. However, “0x” is omitted due to space limitations. ).
  • the burst length of the memory # 1 (220) and the memory # 2 (230) is assumed to be 8 words. In this case, the block size is 8 words.
  • One word can be, for example, 8-bit data.
  • Data is recorded in such memory # 1 (220) and memory # 2 (230). This recorded data is referred to as recorded data.
  • B in the figure represents a state in which 4-burst data 301 as recording data is recorded in the memory # 1 (220).
  • This data 301 is recorded in a 4-block area in which the block # 1 of the memory # 1 (220) is a recording start block and the block # 4 is a recording end block.
  • the data 301 is recorded from the area of address 0x0 belonging to block # 1. That is, it is recorded from the beginning of the recording start block.
  • “c” in the figure represents a state in which the 4-burst data 302 as the recording data is recorded in the memory # 2 (230).
  • This data 302 is data having the same contents as the data 301, and is recorded in a 5-block area where the block # 1 of the memory # 2 (230) is a recording start block and the block # 5 is a recording end block.
  • the data 302 is recorded from the area of address 0x4 belonging to block # 1. That is, recording is performed from the middle of the recording start block.
  • the recording data is recorded in the memory # 1 (220) from the top of the recording start block, and the same content is recorded in the memory # 2 (230).
  • Data is recorded from the middle of the recording start block. That is, redundant data is recorded and the data is multiplexed, and in the memory # 2 (230), the data is recorded in an area shifted from the block alignment start position.
  • Such data recording is executed by writing data in the write control unit 212.
  • the write control unit 212 writes the write data to a specified address in the memory # 1 (220). Thereafter, the same data is also written into the memory # 2 (230).
  • This writing can be performed by the following procedure, for example.
  • the write control unit 212 transfers write data to the buffer 214 to hold it.
  • the write control unit 212 writes the data held in the buffer 214 to the memory # 1 (220).
  • the data 301 as the recording data is recorded from the head of the recording start block.
  • the write control unit 212 processes the write data held in the buffer 214 so that the written recording data is recorded from the middle of the recording start block. This can be done by adding data to the beginning and end of the write data.
  • the write control unit 212 writes the write data, which has been added to the data and has a size of 5 bursts, into an area in the range from block # 1 to block # 5 of the memory # 2 (230).
  • the data 302 as the recording data can be recorded in the memory # 2 (230) from the middle of the block # 1 as the recording start block.
  • FIG. 4 is a diagram illustrating data reading in the first embodiment of the present technology.
  • “a” represents a case where a part of the data 301 written in the memory # 1 (220) is read.
  • This data is data of 10 words recorded in the area of addresses 0x7 to 0x10, and is data recorded in a range that does not match the range divided by blocks.
  • b in the figure represents a case where data having the same content as the above-mentioned data is read from the data 302 written in the memory # 2 (230).
  • Data having the same contents as the data recorded in the area of addresses 0x7 to 0x10 of the memory # 1 (220) is recorded in the area of addresses 0xB to 0x14 of the memory # 2 (230).
  • this data In order to read out this data from the memory # 2 (230), it is only necessary to read out data of two blocks, block # 2 and block # 3. In this case, reading time from the memory # 2 (230) can be shortened compared to reading from the memory # 1 (220).
  • the selection unit 215 selects a memory at the time of reading. This selection method will be described next.
  • the top and end physical addresses of an area in which data related to reading in the memory # 1 (220) is recorded are calculated. These are hereinafter referred to as SAAddr1 and EAddr1 as represented by a in FIG.
  • SAAddr1 and EAddr1 are hereinafter referred to as SAAddr1 and EAddr1 as represented by a in FIG.
  • the data 302 is recorded from the middle of the block. That is, the address of the data related to reading and the physical address of the area where the data is recorded are different values.
  • the head physical address SAAddr2 and the tail physical address EAddr2 are 0xB and 0x14, respectively. .
  • floor represents the operation which truncates the one's place.
  • the values of SBAddr1, EBAddr1, SBAddr2, and EBAddr2 are “1”, “3”, “2”, and “3”, respectively.
  • the number of read blocks in memory # 1 (220) and memory # 2 (230) is calculated from SBAddr1, EBAddr1, SBAddr2, and EBAddr2.
  • the number of read blocks in the memory # 1 (220) and the number of read blocks in the memory # 2 (230) are referred to as RB1 and RB2, respectively.
  • RB1 EBADDr1-SBADdr1 + 1
  • RB2 EBADDr2-SBADDr2 + 1
  • a memory having a smaller value out of the number of read blocks RB1 of the memory # 1 (220) and the number of read blocks RB2 of the memory # 2 (230) is set as a memory to be read.
  • the read block number RB1 of the memory # 1 (220) has a value “3”
  • the read block number RB2 of the memory # 2 (230) has a value “2”. Since RB2 is smaller than RB1, memory # 2 (230) is selected as the read target memory. In this way, the memory for reading is selected.
  • Read control unit 213 reads data from the selected memory and transfers it to buffer 214. Next, when the data transferred to the buffer 214 includes extra data, the read control unit 213 removes it. This extra data corresponds to, for example, 4-word data from the beginning of the read data when reading from block # 1) of memory # 2 (230). This is the data added to the write data at the time of writing described with reference to b in FIG. The read control unit 213 removes this extra data. Thereafter, read data from which excess data is removed is sent to the master 100. Even if the above-described extra data is included in the read data, this processing may be omitted if there is no problem in the processing of the master 100. As described above, by selecting and reading the memory having the smaller number of blocks at the time of reading, the time required for reading the data can be shortened, and the memory bandwidth can be reduced.
  • FIG. 5 is a diagram illustrating an example of a processing procedure of a writing process according to the first embodiment of the present technology.
  • the memory controller 210 starts this processing. First, the memory controller 210 holds the write data related to the write command in the buffer 214 (step S901). Next, the memory controller 210 transfers the write data held in the buffer 214 to the memory # 1 (220) to perform writing (step S902). Next, as described above with reference to FIG. 3, the memory controller 210 adds data to the beginning and end of the write data held in the buffer 214 (step S903). Next, the memory controller 210 transfers the write data with the added data from the buffer 214 to the memory # 2 (230) to perform writing (step S904), and ends the writing process.
  • FIG. 6 is a diagram illustrating an example of a processing procedure of a reading process according to the first embodiment of the present technology.
  • the memory controller 210 starts this processing. First, the memory controller 210 selects a memory based on the read destination address of the read command (step S960). Next, the memory controller 210 performs reading based on the memory selection result.
  • the memory controller 210 reads data from the memory # 1 (220) (step S952), and holds the read data in the buffer 214. (Step S953). Thereafter, the process proceeds to step S956.
  • step S951 when the memory # 2 (230) is selected (step S951: No), the memory controller 210 reads data from the memory # 2 (230) (step S954) and stores the read data in the buffer 214. (Step S955). Thereafter, the process proceeds to step S956. In step S956, the memory controller 210 removes excess data from the data held in the buffer 214 (step S956), and sends it to the master 100 (step S957). Thereafter, the memory controller 210 ends the reading process.
  • FIG. 7 is a diagram illustrating an example of a processing procedure of the memory selection process (step S960) according to the first embodiment of the present technology.
  • the memory controller 210 calculates the first physical address SBAddr1 and the last physical address EBAddr1 of the area in which data related to reading in the memory # 1 (220) is recorded (step S961). Similarly, the memory controller 210 calculates the first physical address SBAddr2 and the last physical address EBAddr2 of the area in which data related to reading in the memory # 2 (230) is recorded (step S962). Next, the memory controller 210 calculates the number of read blocks RB1 in the memory # 1 (220) (step S963). Similarly, the memory controller 210 calculates the number of read blocks RB2 in the memory # 2 (230) (step S964).
  • the memory controller 210 compares the read block number RB1 in the memory # 1 (220) with the read block number RB2 in the memory # 2 (230) (step S965). As a result, when the number of read blocks RB2 in the memory # 2 (230) is smaller (step S965: Yes), the memory controller 210 selects the memory # 2 (230) (step S966) and ends the selection process. To do. On the other hand, when the read block number RB2 of the memory # 2 (230) is not smaller (step S965: No), the memory controller 210 selects the memory # 1 (220) (step S967) and ends the selection process. To do.
  • the same data is recorded in the two memories configured by the SDRAM. At that time, data is recorded from the beginning of the recording start block in one memory, and data is recorded from the middle of the recording start block in the other memory. Then, by selecting and reading a memory having a smaller number of blocks required for reading, it is possible to shorten a data reading time in a system using the SDRAM.
  • Second Embodiment> In the first embodiment described above, an SDRAM is assumed in which the block size is the burst length and burst transfer is performed. On the other hand, in the second embodiment of the present technology, application to an SRAM is assumed. In this case, the block size corresponds to the word size that is the data length in the SRAM. As a result, the data read time can be shortened even in a storage device using an SRAM.
  • the storage device 200 employs a configuration in which the memory # 1 (220) and the memory # 2 (230) in the storage device 200 described with reference to FIG. 1 are replaced with a memory configured by SRAM. be able to.
  • SRAM for example, an SRAM that does not perform burst transfer can be used.
  • the word size in this SRAM is assumed to be 16 bits. As described above, the block size in this case is the word size.
  • the other configuration of the storage device 200 and the configuration of the memory controller 210 are the same as those in the first embodiment described above, and a description thereof will be omitted.
  • FIG. 8 is a diagram illustrating data writing according to the second embodiment of the present technology.
  • a represents the relationship between the block (word) and the recording area in the memory # 1 (220) and the memory # 2 (230).
  • the area delimited by the rectangle a in the figure represents a 1-bit area, and the character written in this rectangular portion is a bit address of each bit (16-bit notation. However, “0x” is described because of space. Omitted).
  • B in the figure represents a state in which 4-word data 303, which is recording data, is recorded in the memory # 1 (220).
  • This data 303 is recorded in a 4-word area in which the word # 1 of the memory # 1 (220) is a recording start word and the word # 4 is a recording end word.
  • the data 303 is recorded from the first bit (bit address 0x0) of the word # 1. That is, it is recorded from the beginning of the recording start word.
  • c in the figure represents a state in which the 4-word data 304, which is the recording data, is recorded in the memory # 2 (230).
  • This data 304 has the same contents as the data 303 and is recorded from the area of the bit address 0x8 belonging to the word # 1 of the memory # 2 (230). That is, it is recorded from the middle of the recording start word.
  • the recording data is recorded in the memory # 1 (220) from the top of the recording start word, and the same content is recorded in the memory # 2 (230). Data is recorded from the middle of the recording start word.
  • This is executed by writing data in the write control unit 212, and this writing can be performed, for example, by the following procedure similar to the procedure described in FIG.
  • the write control unit 212 transfers write data to the buffer 214 to hold it.
  • the write control unit 212 writes the data held in the buffer 214 to the memory # 1 (220).
  • the data 303 which is recording data, is recorded from the beginning of the recording start word.
  • the write control unit 212 adds bit data to the beginning and end of the write data so that the written record data is recorded from the middle of the recording start word.
  • bit address # 0x8 which is a recording area shifted by 8 bits from the beginning of the recording start word as shown in FIG.
  • the write control unit 212 adds bit data recorded in the area of address: # 0x0, bit address: # 0x0 to # 0x7 shown in c in the figure to the beginning of the write data held in the buffer 214. to add.
  • the write control unit 212 adds bit data recorded in the area of address: 0x4, bit address: # 0x8 to # 0xF shown in c in the figure at the end of the write data held in the buffer 214. to add.
  • These additional bit data need to be read from the memory # 2 (230) in advance.
  • the write control unit 212 writes the write data, which has a size of 5 words as a result of the addition of data, to the area in the range of words # 1 to # 5 in the memory # 2 (230).
  • the data 302 as the recording data can be recorded in the memory # 2 (230) from the middle of the word # 1 as the recording start word.
  • FIG. 9 is a diagram illustrating data reading in the second embodiment of the present technology.
  • “a” represents a case where a part of the data 303 written in the memory # 1 (220) is read.
  • the master 100 processes data in units of 8 bits, and the necessary data is recorded in an area across the word boundary in the memory # 1 (220). This is the case.
  • bit address: 0x8 to address: 0x2 bit address: 0x7 from the memory # 1 (220)
  • the data of two words of the word # 2 and the word # 3 are read. There is a need.
  • b in the figure represents a case where the same data as the above-mentioned data is read from the data 304 written in the memory # 2 (230).
  • the above-described data in the memory # 1 (220) is recorded in the area of the bit address 0x0 to the bit address 0xF of the word # 3 in the memory # 2 (230).
  • the reading time can be shortened compared with the case of reading out from the memory # 1 (220).
  • the selection unit 215 selects a memory at the time of reading. For this selection, a method similar to the method described in the first embodiment of the present technology can be used. First, the physical addresses (word address + bit address) at the beginning and end of the area where the data related to reading in the memory # 1 (220) and the memory # 2 (230) are recorded are calculated, Calculate the position. Next, the number of read words in the memory # 1 (220) and the memory # 2 (230) is calculated from the calculated position of these words. Finally, the memory with the smaller number of read words calculated is selected.
  • Read control unit 213 reads data from the selected memory and transfers it to buffer 214. Next, when excess data is included in the data transferred to the buffer 214, it is removed. Thereafter, read data from which excess data is removed is sent to the master 100.
  • the same data is recorded in the two memories configured by the SRAM. At that time, data is recorded from the beginning of the recording start block in one memory, and data is recorded from the middle of the recording start block in the other memory. Then, by selecting and reading the memory having the smaller number of words required for reading, it is possible to shorten the data reading time in the system using the SRAM.
  • the information processing system according to the third embodiment of the present technology can adopt the same configuration as the information processing system described with reference to FIG.
  • the memory # 1 (220) and the memory # 2 (230) are image memories for recording image data, and are configured by SDRAM.
  • FIG. 10 is a diagram illustrating a configuration example of the image memory according to the third embodiment of the present technology.
  • the image memory shown in FIG. 2 is composed of a memory # 1 (220) and a memory # 2 (230) which are SDRAMs.
  • a and b in the figure schematically represent the memory # 1 (220) and the memory # 2 (230), respectively.
  • An area indicated by a rectangle in these drawings represents a recording area of one word.
  • the memory # 1 (220) and the memory # 2 (230) are configured by two-dimensionally arranging the recording areas. In the two-dimensional arrangement, the horizontal direction represents an arrangement in the column address order in the SDRAM, and the vertical direction represents an arrangement in the row address order in the SDRAM.
  • the recording area 221 disposed at the upper left of the memory # 1 (220) corresponds to a recording area having a value “0” for both the column address and the row address.
  • the other recording areas start from the recording area 221 and are arranged in the order of column addresses in the right direction toward the drawing, and are arranged in the order of row addresses in the downward direction toward the drawing.
  • these memories all assume 8 words as the burst length.
  • data 305 (shaded area) is recorded from the head of the block of the memory # 1 (220).
  • data 306 (shaded area) having the same content as the data 305 is recorded with a shift of 4 words from the top of the block of the memory # 2 (230).
  • the configuration of the memory controller is the same as that of the memory controller 210 described with reference to FIG.
  • the data corresponds to data in the range of column addresses 0x8 to 0x17 as shown in b in FIG. .
  • the method for selecting the memory # 1 (220) and the memory # 2 (230) is the same as the method described in the first embodiment of the present technology, and thus the description thereof is omitted.
  • the data read time can be shortened.
  • two memories are used: a memory that records data from the beginning of the recording start block and a memory that records data from the middle of the recording start block.
  • the memory with the smaller number of blocks required for reading is selected for reading.
  • the data read time can be shortened in a system using an SDRAM or the like.
  • the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute these series of procedures or a recording medium storing the program. You may catch it.
  • a recording medium for example, a CD (Compact Disc), an MD (MiniDisc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc), or the like can be used.
  • this technique can also take the following structures.
  • a first memory in which a plurality of recording data is recorded from the top of a recording start block and accessed in units of blocks, which are accessed in units of blocks which are recording areas divided by a block size composed of a plurality of data.
  • a selection unit that selects one of the first memory and the second memory as a reading target based on the number of the required blocks;
  • a memory controller comprising: a read control unit that reads from either the first memory or the second memory based on the selection result.
  • a plurality of recording data is written from the beginning of the recording start block of the first memory, and new recording data is generated by adding predetermined data to the beginning and end of the plurality of recording data.
  • the memory controller according to (1) further including a write control unit that writes the new recording data from the top of the recording start block of the second memory.
  • the first memory and the second memory are memories that perform burst transfer at the time of writing and reading,
  • the data is word data,
  • the data is bit data,
  • the block size is a word size composed of a plurality of bit data,
  • a first memory that is accessed in units of blocks, which are recording areas divided by a block size composed of a plurality of data, and records a plurality of recording data from the beginning of the recording start block;
  • a second memory that is accessed in units of the block and records a plurality of the recording data from the middle of the recording start block; Either the first memory or the second memory based on the number of blocks required to read data included in the recorded data recorded in the first memory or the second memory
  • a storage device comprising: a read control unit that reads from either the first memory or the second memory based on the selection result.
  • a first memory that is accessed in units of blocks that are recording areas divided by a block size composed of a plurality of data and records a plurality of recording data from the beginning of the recording start block;
  • a second memory that is accessed in units of the block and records a plurality of the recording data from the middle of the recording start block;
  • a storage device comprising: a read control unit that reads from either the first memory or the second memory based on the selection result;
  • An information processing system comprising: a master that accesses the data in the storage device.
  • a selection procedure for selecting either the first memory or the second memory as a reading target based on the number of blocks required A memory control method comprising: a read control procedure for reading from either the first memory or the second memory based on the selection result.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Dram (AREA)

Abstract

 メモリにおけるデータの読出し時間を短縮する。 選択部は、複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリとブロックを単位としてアクセスされて記録開始ブロックの途中から複数の記録データが記録される第2のメモリとについて第1のメモリまたは第2のメモリに記録された記録データに含まれるデータを読み出す際に必要となるブロックの数に基づいて第1のメモリまたは第2のメモリのいずれか一方を読出し対象として選択する。読出し制御部は、選択の結果に基づいて第1のメモリまたは第2のメモリのいずれか一方から読出しを行う。

Description

メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
 本技術は、メモリコントローラに関する。詳しくは、書込みおよび読出しの際にブロックを単位としてデータの転送を行うメモリを扱うメモリコントローラ、記憶装置、情報処理システムおよびこれらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
 従来、撮像装置等の画像メモリに使用されるメモリとして大容量かつ広帯域のSDRAM(Synchronous Dynamic Random Access Memory)が使用されている。このSDRAMにアクセスする際には、SDRAMにローアドレスを入力した後でカラムアドレスを入力する必要がある。そして、アクセスに伴うデータの転送は、バースト転送により行われる。これは、カラムアドレスが連続する複数のデータを順次転送する方式であり、1度のカラムアドレスの入力により、予め設定されたワード数(バースト長)のデータが転送される方式である。1度のカラムアドレスの入力により複数のデータの転送が可能なため、データ転送レートを高めることができる。このようなSDRAMは、記録領域がバースト長に相当するサイズのブロックにより分割されており、このブロックを単位としてデータが転送される。
 バースト長が8ワードに設定されたSDRAMからデータを読み出す場合を例に挙げて説明する。このSDRAMに対して、カラムアドレスとして#0x0を入力して1バーストのデータの読出しを行うと、SDRAMからは、カラムアドレス#0x0乃至#0x7に対応する読出しデータが順に出力される。すなわち、入力されたカラムアドレスの下位3ビットで表される範囲(8ワード)のデータが出力される。カラムアドレスとして#0x8を入力した場合には、カラムアドレス#0x8乃至#0xFに対応するデータが出力される。このようなSDRAMを画像メモリとして使用するマスタは、このバースト長の倍数のサイズのデータをSDRAMとの間でやり取りする。
 しかし、マスタの読出しを要求するデータの範囲がブロックによって分割された範囲とは整合しない場合が存在する。例えば、マスタが、カラムアドレス#0x4乃至#0xBの8ワードのデータの読出しを必要とする場合である。MPEG(Moving Picture Experts Group)形式のエンコードを行う場合等において画像データに設定される矩形領域であるマクロブロックに対応する画像データを画像メモリから読み出す際、このような読出しが必要となる。この場合、カラムアドレスとして、#0x4を入力しても、SDRAMからはカラムアドレス#0x0乃至#0x7に対応するデータが出力され、所望のデータを全て読み出すことができない。上述のデータを読み出すためには、カラムアドレスの入力を#0x0および#0x8とする2度の読出しが必要となり、読出し時間の増大を招くこととなる。
 このような、ブロックによって分割された範囲と整合しない範囲のデータの読出し時間を短縮する方法として、次のようなシステムが提案されている(例えば、特許文献1参照。)。これは、マスタとメモリコントローラとメモリとからなるシステムにおいて、マスタからの読出しの要求を処理するメモリコントローラが、読出し先のアドレスからバイト組合せ情報を生成し、これに基づいて読出しを行うものである。このバイト組合せ情報とは、読出し対象のデータの範囲を示す情報である。上述の例を適用すると、カラムアドレス#0x0に対して4ワード分アドレスがずれた領域のデータが読出し対象であることを示す情報がバイト組合せ情報に該当し、メモリコントローラにより生成される。この生成されたバイト組合せ情報は、メモリにより解釈され、入力されたカラムアドレス#0x0に対する読出しデータとしてアドレス#0x4乃至#0xBの範囲のデータが出力される。
特開2008-159131号公報
 上述の従来技術では、メモリコントローラにより生成されたバイト組合せ情報を解釈して異なるブロックに記録されたデータを読み出して出力する機能を有する特殊なメモリを要するという問題があった。
 本技術はこのような状況に鑑みて生み出されたものであり、特殊なメモリを使用することなく、メモリにおけるデータの読出し時間を短縮することを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと上記ブロックを単位としてアクセスされて上記記録開始ブロックの途中から複数の上記記録データが記録される第2のメモリとについて上記第1のメモリまたは上記第2のメモリに記録された上記記録データに含まれるデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択する選択部と、上記選択の結果に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方から読出しを行う読出し制御部とを具備するメモリコントローラである。これにより、データを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 また、この第1の側面において、上記第1のメモリの上記記録開始ブロックの先頭から複数の記録データの書込みを行い、複数の上記記録データの先頭および末尾に所定のデータを追加することにより新たな記録データを生成して当該新たな記録データを上記第2のメモリの上記記録開始ブロックの先頭から書き込む書込み制御部をさらに具備してもよい。これにより、上記第1のメモリの上記記録開始ブロックの先頭から複数のデータが書き込まれるとともに上記第2のメモリの上記記録開始ブロックの途中から複数のデータが書き込まれるという作用をもたらす。
 また、この第1の側面において、上記第1のメモリおよび上記第2のメモリは、書込みおよび読出しの際にバースト転送を行うメモリであり、上記データは、ワードデータであり、上記ブロックサイズは、上記バースト転送におけるバースト長であってもよい。これにより、バースト長により分割された記録領域を有する第1のメモリおよび第2のメモリにおいてデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 また、この第1の側面において、上記データは、ビットデータであり、上記ブロックサイズは、複数のビットデータからなるワードサイズであり、上記ブロックは、ワードであってもよい。これにより、ワードサイズにより分割された記録領域を有する第1のメモリおよび第2のメモリにおいてデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 また、本技術の第2の側面は、複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、上記ブロックを単位としてアクセスされて上記記録開始ブロックの途中から複数の上記記録データが記録される第2のメモリと、上記第1のメモリまたは上記第2のメモリに記録された上記記録データに含まれるデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択する選択部と、上記選択の結果に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方から読出しを行う読出し制御部とを具備する記憶装置である。これにより、データを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 また、本技術の第3の側面は、複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、上記ブロックを単位としてアクセスされて上記記録開始ブロックの途中から複数の上記記録データが記録される第2のメモリと、上記第1のメモリまたは上記第2のメモリに記録された上記記録データに含まれるデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択する選択部と、上記選択の結果に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方から読出しを行う読出し制御部とを備える記憶装置と、上記記憶装置の上記データにアクセスするマスタとを具備する情報処理システムである。これにより、データを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 また、本技術の第4の側面は、複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと上記ブロックを単位としてアクセスされて上記記録開始ブロックの途中から複数の上記記録データが記録される第2のメモリとについて上記第1のメモリまたは上記第2のメモリに記録された上記記録データに含まれるデータを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択する選択手順と、上記選択の結果に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方から読出しを行う読出し制御手順とを具備するメモリ制御方法である。これにより、データを読み出す際に必要となる上記ブロックの数に基づいて上記第1のメモリまたは上記第2のメモリのいずれか一方を読出し対象として選択するという作用をもたらす。
 本技術によれば、ブロックによって分割された範囲と整合しない範囲のデータを読み出す場合であっても、特殊なメモリを使用することなく、データの読出し時間を短縮するという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラ210の構成例を示す図である。 本技術の第1の実施の形態におけるデータの書込みを示す図である。 本技術の第1の実施の形態におけるデータの読出しを示す図である。 本技術の第1の実施の形態における書込み処理の処理手順の一例を示す図である。 本技術の第1の実施の形態における読出し処理の処理手順の一例を示す図である。 本技術の第1の実施の形態におけるメモリ選択処理(ステップS960)の処理手順の一例を示す図である。 本技術の第2の実施の形態におけるデータの書込みを示す図である。 本技術の第2の実施の形態におけるデータの読出しを示す図である。 本技術の第3の実施の形態における画像メモリの構成例を示す図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(SDRAMに適用した場合の例)
 2.第2の実施の形態(SRAMに適用した場合の例)
 3.第3の実施の形態(画像メモリ装置に適用した場合の例)
 <1.第1の実施の形態>
 [情報処理システムの構成]
 図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、マスタ100と、記憶装置200とを備える。
 マスタ100は、画像処理等の処理を行うものである。このマスタ100は、記憶装置200に対して書込みまたは読出し等のコマンドを発行してアクセスを行う。記憶装置200は、マスタ100における処理に必要なデータの記録を行うものである。なお、信号線101は、マスタ100と記憶装置200とを電気的に接続するものである。
 記憶装置200は、メモリコントローラ210と、メモリ#1(220)と、メモリ#2(230)とを備える。
 メモリコントローラ210は、メモリ#1(220)およびメモリ#2(230)を制御するものである。このメモリコントローラ210は、マスタ100から発行された書込みおよび読出しコマンドを解釈し、これに基づく書込みおよび読出しリクエストをメモリ#1(220)およびメモリ#2(230)に対して要求する。
 メモリ#1(220)およびメモリ#2(230)は、データを記録するものである。メモリコントローラ210から要求されたリクエストに基づいて、このデータに対するアクセスが行われる。この際、メモリ#1(220)およびメモリ#2(230)とメモリコントローラ210との間でデータの転送が行われる。このメモリ#1(220)およびメモリ#2(230)は複数のデータからなるブロックサイズにより記録領域が分割されており、この分割された記録領域であるブロックを単位としてメモリコントローラ210によりアクセスされる。このメモリ#1(220)およびメモリ#2(230)として、例えばSDRAMにより構成されたメモリを使用することができる。なお、メモリ#1(220)は、特許請求の範囲に記載の第1のメモリの一例である。メモリ#2(230)は、特許請求の範囲に記載の第2のメモリの一例である。
 なお、信号線201は、メモリコントローラ210とメモリ#1(220)とを電気的に接続するものである。また、信号線202は、メモリコントローラ210とメモリ#2(230)とを電気的に接続するものである。
 マスタ100は、書込みを行う際に、書込みコマンドとこれに付随する書込みデータ、書込み先アドレスおよび書込みデータ数を記憶装置200に対して発行する。この書込みコマンドは、記憶装置200のメモリコントローラ210により処理される。メモリコントローラ210は、発行された書込みコマンドを解釈し、これに付随する書込みデータ、書込み先アドレスおよび書込みデータ数に基づいてメモリ#1(220)およびメモリ#2(230)に対して書込みリクエストを要求する。メモリ#1(220)およびメモリ#2(230)は、このリクエストに基づいて書込みを行う。
 一方、読出しの際には、マスタ100は、読出しコマンドとこれに付随する読出し先アドレスおよび読出しデータ数を記憶装置200に対して発行する。メモリコントローラ210がこのコマンドを解釈して、これに付随する読出し先アドレスおよび読出しデータ数に基づいてメモリ#1(220)およびメモリ#2(230)に対して読出しリクエストを要求する。メモリ#1(220)およびメモリ#2(230)は、このリクエストに基づいて読出しを行い、読み出したデータをメモリコントローラ210に対して出力する。メモリコントローラ210は、この出力されたデータをマスタ100に対して出力する。なお、書込みおよび読出しデータのサイズは、バースト長の倍数である。メモリ#1(220)およびメモリ#2(230)に対する書込みおよび読出しの制御の詳細については、後述する。
 [メモリコントローラの構成]
 図2は、本技術の第1の実施の形態におけるメモリコントローラ210の構成例を示す図である。このメモリコントローラ210は、マスタインターフェース211と、書込み制御部212と、読出し制御部213と、バッファ214と、選択部215と、メモリインターフェース216と、バス219とを備える。
 マスタインターフェース211は、マスタ100との間のやり取りを行うものである。メモリインターフェース216は、メモリ#1(220)およびメモリ#2(230)との間のやり取りを行うものである。
 バッファ214は、書込みおよび読出しデータを一時的に保持するものである。バス219は、メモリコントローラ210内の各部を相互に接続するものである。
 書込み制御部212は、メモリ#1(220)およびメモリ#2(230)に対するデータの書込みの制御を行うものである。この書込み制御部212は、マスタ100からの書込みコマンドに基づいて、マスタ100から出力されてバッファ214に保持された書込みデータをメモリ#1(220)およびメモリ#2(230)に転送して書込みを行わせる。このデータの書込みの詳細については、後述する。
 選択部215は、データの読出しの際にメモリ#1(220)またはメモリ#2(230)のいずれか一方を選択するものである。この選択の方法の詳細については、後述する。
 読出し制御部213は、データの読出しを行うものである。この読出し制御部213は、マスタ100からの読出しコマンドに基づいて、メモリ#1(220)またはメモリ#2(230)からデータの読出しを行う。この読み出されたデータは、一旦バッファ214に保持された後、マスタ100に送出される。なお、読出し制御部213は、選択部215の選択結果に基づいてメモリ#1(220)またはメモリ#2(230)のいずれか一方からこの読出しを行う。
 [データの書込み]
 図3は、本技術の第1の実施の形態におけるデータの書込みを示す図である。同図におけるaは、メモリ#1(220)およびメモリ#2(230)におけるブロックと記録領域との関係を表したものである。同図におけるaの矩形により区切られた領域は1ワードの領域を表し、この矩形部分に記載された文字は各領域のアドレス(16ビット表記。ただし、スペースの関係上「0x」の記載を省略した。)を表している。なお、メモリ#1(220)およびメモリ#2(230)のバースト長は、8ワードを想定する。この場合、ブロックサイズも8ワードとなる。また、1ワードは、例えば、8ビットのデータとすることができる。このようなメモリ#1(220)およびメモリ#2(230)に対してデータを記録する。この記録されるデータを記録データと称する。
 同図におけるbは、メモリ#1(220)に対して記録データである4バーストのデータ301を記録させた状態を表したものである。このデータ301は、メモリ#1(220)のブロック#1を記録開始ブロックとし、ブロック#4を記録終了ブロックとする4ブロックの領域に記録されている。また、このデータ301は、ブロック#1に属するアドレス0x0の領域から記録されている。すなわち、記録開始ブロックの先頭から記録されている。一方、同図におけるcは、メモリ#2(230)に対して記録データである4バーストのデータ302を記録させた状態を表したものである。このデータ302は、データ301と同一内容のデータであり、メモリ#2(230)のブロック#1を記録開始ブロックとし、ブロック#5を記録終了ブロックとする5ブロックの領域に記録されている。また、このデータ302は、ブロック#1に属するアドレス0x4の領域から記録されている。すなわち、記録開始ブロックの途中から記録されている。
 このように、本技術の第1の実施の形態においては、メモリ#1(220)には、記録データが記録開始ブロックの先頭から記録され、メモリ#2(230)には、同一内容の記録データが記録開始ブロックの途中から記録されている。すなわち、冗長なデータの記録が行われてデータが多重化されるとともに、メモリ#2(230)では、ブロックのアライン開始位置からずれた領域にデータが記録されている。このようなデータの記録は、書込み制御部212におけるデータの書込みにより実行される。この書込み制御部212は、書込みデータをメモリ#1(220)の指定アドレスに書き込む。その後、同一のデータをメモリ#2(230)にも書き込む。
 この書込みは、例えば、以下の手順により行うことができる。まず、書込み制御部212は、書込みデータをバッファ214に転送して保持させる。次に、書込み制御部212は、バッファ214に保持されたデータをメモリ#1(220)に対して書き込む。これにより、メモリ#1(220)には、記録データであるデータ301が記録開始ブロックの先頭から記録される。次に、書込み制御部212は、書き込まれた記録データが記録開始ブロックの途中から記録された状態になるように、バッファ214に保持されている書込みデータを加工する。これは、書込みデータの先頭および末尾にデータを追加することにより行うことができる。
 同図におけるcに表したように記録開始ブロックの先頭から4ワードずれた記録領域であるアドレス#0x4からデータ302を記録する場合を例に挙げて説明する。まず、書込み制御部212は、バッファ214に保持されている書込みデータの先頭に同図におけるcに表したアドレス:#0x0乃至#0x3の領域に記録されているデータを追加する。次に、書込み制御部212は、バッファ214に保持されている書込みデータの末尾に同図におけるcに表したアドレス:#0x24乃至#0x27の領域に記録されているデータを追加する。なお、これら追加するデータは、事前にメモリ#2(230)から読み出しておく必要がある。次に、書込み制御部212は、データが追加されて5バーストのサイズとなった書込みデータをメモリ#2(230)のブロック#1乃至ブロック#5の範囲の領域に書き込む。これにより、メモリ#2(230)に対して、記録データであるデータ302を記録開始ブロックであるブロック#1の途中から記録することができる。
 [データの読出し]
 図4は、本技術の第1の実施の形態におけるデータの読出しを示す図である。同図におけるaは、メモリ#1(220)に書き込まれたデータ301の一部のデータを読み出す場合を表している。このデータは、アドレス0x7乃至0x10の領域に記録された10ワードのデータであり、ブロックによって分割された範囲と整合しない範囲に記録されたデータである。メモリ#1(220)からこのデータを読み出す場合には、ブロック#1乃至ブロック#3の3ブロックのデータを読み出す必要がある。一方、同図におけるbは、メモリ#2(230)に書き込まれたデータ302から上述のデータと同一内容のデータを読み出す場合を表している。メモリ#1(220)のアドレス0x7乃至0x10の領域に記録されたデータと同一内容のデータは、メモリ#2(230)のアドレス0xB乃至0x14の領域に記録されている。メモリ#2(230)からこのデータを読み出すには、ブロック#2およびブロック#3の2ブロックのデータの読出しを行えばよい。この場合、メモリ#2(230)から読み出すほうがメモリ#1(220)から読み出すよりも読出し時間を短縮することができる。
 読出しの際のメモリの選択は、選択部215が行う。この選択の方法を次に説明する。まず、メモリ#1(220)における読出しに係るデータが記録されている領域の先頭および末尾の物理アドレスを算出する。同図におけるaに表したように、以下、これらをSAddr1およびEAddr1と称する。メモリ#1(220)の場合は、データ301は、ブロックの先頭の領域から記録されているため、所望の読出しデータの先頭のアドレスおよび末尾のアドレスと、先頭の物理アドレスSAddr1および末尾の物理アドレスEAddr1とは一致する。メモリ#2(230)においても同様に読出しに係るデータが記録されている領域の先頭および末尾の物理アドレスを算出する。以下、これらをSAddr2およびEAddr2と称する。
 メモリ#2(230)では、データ302は、ブロックの途中から記録されている。すなわち、読出しに係るデータのアドレスと当該データが記録されている領域の物理アドレスとは、異なる値となる。同図におけるbでは、データ302がブロックの先頭の領域のアドレス0x0から4ワード分ずらした領域から記録されているため、先頭の物理アドレスSAddr2および末尾の物理アドレスEAddr2は、それぞれ0xBおよび0x14となる。
 次に、SAddr1、EAddr1、SAddr2およびEAddr2が含まれるブロックの位置を算出する。同図に表したように、以下、これらをSBAddr1、EBAddr1、SBAddr2およびEBAddr2と称する。これらは、次式に基づいて算出することができる。
  SBAddr1=floor(SAddr1/8)+1
  EBAddr1=floor(EAddr1/8)+1
  SBAddr2=floor(SAddr2/8)+1
  EBAddr2=floor(EAddr2/8)+1
ただし、floorは、1の位を切り捨てる演算を表す。同図に挙げた例では、SBAddr1、EBAddr1、SBAddr2およびEBAddr2の値は、それぞれ「1」、「3」、「2」および「3」となる。
 次に、SBAddr1、EBAddr1、SBAddr2およびEBAddr2からメモリ#1(220)およびメモリ#2(230)における読出しブロック数を算出する。以下、メモリ#1(220)の読出しブロック数およびメモリ#2(230)の読出しブロック数をそれぞれRB1およびRB2と称する。これらは、次式に基づいて算出することができる。
  RB1=EBAddr1-SBAddr1+1
  RB2=EBAddr2-SBAddr2+1
このメモリ#1(220)の読出しブロック数RB1およびメモリ#2(230)の読出しブロック数RB2のうち値が小さい方のメモリを読出し対象のメモリとする。同図の例では、メモリ#1(220)の読出しブロック数RB1が値「3」となり、メモリ#2(230)の読出しブロック数RB2が値「2」となる。RB1よりRB2の方が小さいため、メモリ#2(230)が読出し対象メモリとして選択される。このようにして、読出し時のメモリが選択される。
 読出し制御部213は、選択されたメモリからデータを読み出して、バッファ214に転送する。次にバッファ214に転送されたデータに余分なデータが含まれている場合には、読出し制御部213は、これを除去する。この余分なデータとは、例えば、メモリ#2(230)のブロック#1)から読出しを行った際の、読み出したデータの先頭から4ワードのデータが該当する。これは、図3におけるbにおいて説明した、書込みの際に書込みデータに追加したデータである。読出し制御部213は、この余分なデータの除去を行う。その後、余分なデータが除去された読出しデータがマスタ100に送出される。なお、読出しデータに上述した余分なデータが含まれていた場合であってもマスタ100の処理において支障がない場合には、この処理を省略してもよい。このように、読出しを行う際のブロック数が少ない方のメモリを選択して読出しを行うことにより、データの読出しに要する時間を短縮することができ、メモリ帯域を削減することができる。
 [書込み処理]
 図5は、本技術の第1の実施の形態における書込み処理の処理手順の一例を示す図である。マスタから書込みコマンドが発行されると、メモリコントローラ210は、本処理を開始する。まず、メモリコントローラ210は、書込みコマンドに係る書込みデータをバッファ214に保持させる(ステップS901)。次に、メモリコントローラ210は、バッファ214に保持された書込みデータをメモリ#1(220)に転送して書込みを行わせる(ステップS902)。次に、メモリコントローラ210は、図3において前述したように、バッファ214に保持された書込みデータの先頭および末尾にデータを追加する(ステップS903)。次に、メモリコントローラ210は、データが追加された書込みデータをバッファ214からメモリ#2(230)に転送して書込みを行わせ(ステップS904)、書込み処理を終了する。
 [読出し処理]
 図6は、本技術の第1の実施の形態における読出し処理の処理手順の一例を示す図である。マスタから読出しコマンドが発行されると、メモリコントローラ210は、本処理を開始する。まず、メモリコントローラ210は、読出しコマンドの読出し先アドレスに基づいてメモリの選択を行う(ステップS960)。次に、メモリコントローラ210は、メモリ選択結果に基づいて、読出しを行う。メモリ#1(220)が選択された場合には(ステップS951:Yes)、メモリコントローラ210は、メモリ#1(220)からデータの読出しを行い(ステップS952)、読み出したデータをバッファ214に保持させる(ステップS953)。その後、ステップS956の処理に移行する。
 一方、メモリ#2(230)が選択された場合には(ステップS951:No)、メモリコントローラ210は、メモリ#2(230)からデータの読出しを行い(ステップS954)、読み出したデータをバッファ214に保持させる(ステップS955)。その後、ステップS956の処理に移行する。ステップS956において、メモリコントローラ210は、バッファ214に保持されたデータから余分なデータを除去し(ステップS956)、マスタ100に対して送出する(ステップS957)。その後、メモリコントローラ210は、読出し処理を終了する。
 [メモリ選択処理]
 図7は、本技術の第1の実施の形態におけるメモリ選択処理(ステップS960)の処理手順の一例を示す図である。メモリコントローラ210は、メモリ#1(220)における読出しに係るデータが記録されている領域の先頭の物理アドレスSBAddr1および末尾の物理アドレスEBAddr1を算出する(ステップS961)。同様に、メモリコントローラ210は、メモリ#2(230)における読出しに係るデータが記録されている領域の先頭の物理アドレスSBAddr2および末尾の物理アドレスEBAddr2を算出する(ステップS962)。次に、メモリコントローラ210は、メモリ#1(220)における読出しブロック数RB1を算出する(ステップS963)。同様に、メモリコントローラ210は、メモリ#2(230)における読出しブロック数RB2を算出する(ステップS964)。
 次に、メモリコントローラ210は、メモリ#1(220)における読出しブロック数RB1とメモリ#2(230)における読出しブロック数RB2とを比較する(ステップS965)。この結果、メモリ#2(230)における読出しブロック数RB2の方が小さい場合は(ステップS965:Yes)、メモリコントローラ210は、メモリ#2(230)を選択し(ステップS966)、選択処理を終了する。一方、メモリ#2(230)の読出しブロック数RB2の方が小さくない場合は(ステップS965:No)、メモリコントローラ210は、メモリ#1(220)を選択し(ステップS967)、選択処理を終了する。
 このように、本技術の第1の実施の形態によれば、同一のデータをSDRAMにより構成された2つのメモリに記録させる。その際、一方のメモリにおいては記録開始ブロックの先頭からデータを記録させ、他方のメモリにおいては記録開始ブロックの途中からデータを記録させる。そして、読出しに必要なブロックの数が少ない方のメモリを選択して読み出すことにより、SDRAMを使用するシステムにおいてデータの読出し時間を短縮させることができる。
 <2.第2の実施の形態>
 上述の第1の実施の形態では、ブロックサイズをバースト長とし、バースト転送を行うSDRAMを想定していた。これに対し本技術の第2の実施の形態では、SRAMへの適用を想定する。この場合、ブロックサイズには、SRAMにおけるデータ長であるワードサイズが該当する。これにより、SRAMを使用する記憶装置においてもデータの読出し時間を短縮させることができる。
 [記憶装置の構成]
 本技術の第2の実施の形態における記憶装置200は、図1において説明した記憶装置200におけるメモリ#1(220)およびメモリ#2(230)をSRAMにより構成されたメモリに置き換えた構成を採ることができる。このSRAMとしては、例えば、バースト転送を行わない形式のSRAMを使用することができる。このSRAMにおけるワードサイズを16ビットと想定する。上述のように、この場合のブロックサイズはワードサイズとなる。これ以外の記憶装置200の構成およびメモリコントローラ210の構成は、上述の第1の実施の形態と同様であるため、説明を省略する。
 [データの書込み]
 図8は、本技術の第2の実施の形態におけるデータの書込みを示す図である。同図におけるaは、メモリ#1(220)およびメモリ#2(230)におけるブロック(ワード)と記録領域との関係を表したものである。同図におけるaの矩形により区切られた領域は1ビットの領域を表し、この矩形部分に記載された文字は各ビットのビットアドレス(16ビット表記。ただし、スペースの関係上「0x」の記載を省略した。)を表している。
 同図におけるbは、メモリ#1(220)に対して記録データである4ワードのデータ303を記録させた状態を表したものである。このデータ303は、メモリ#1(220)のワード#1を記録開始ワードとし、ワード#4を記録終了ワードとする4ワードの領域に記録されている。また、このデータ303は、ワード#1の最初のビット(ビットアドレス0x0)から記録されている。すなわち、記録開始ワードの先頭から記録されている。一方、同図におけるcは、メモリ#2(230)に対して記録データである4ワードのデータ304を記録させた状態を表したものである。このデータ304は、データ303と同一内容のデータであり、メモリ#2(230)のワード#1に属するビットアドレス0x8の領域から記録されている。すなわち、記録開始ワードの途中から記録されている。
 このように、本技術の第2の実施の形態においても、メモリ#1(220)には、記録データが記録開始ワードの先頭から記録され、メモリ#2(230)には、同一内容の記録データが記録開始ワードの途中から記録されている。これは、書込み制御部212におけるデータの書込みにより実行され、この書込みは、例えば、図3において説明した手順と同様の以下の手順により行うことができる。まず、書込み制御部212は、書込みデータをバッファ214に転送して保持させる。次に、書込み制御部212は、バッファ214に保持されたデータをメモリ#1(220)に対して書き込む。これにより、メモリ#1(220)には、記録データであるデータ303が記録開始ワードの先頭から記録される。次に、書込み制御部212は、書き込まれた記録データが記録開始ワードの途中から記録された状態になるように、書込みデータの先頭および末尾にビットデータを追加する。
 同図におけるcに表したように記録開始ワードの先頭から8ビットずれた記録領域であるビットアドレス#0x8からデータ304を記録する場合を例に挙げて説明する。まず、書込み制御部212は、バッファ214に保持されている書込みデータの先頭に同図におけるcに表したアドレス:#0x0、ビットアドレス:#0x0乃至#0x7の領域に記録されているビットデータを追加する。次に、書込み制御部212は、バッファ214に保持されている書込みデータの末尾に同図におけるcに表したアドレス:0x4、ビットアドレス:#0x8乃至#0xFの領域に記録されているビットデータを追加する。なお、これら追加するビットデータは、事前にメモリ#2(230)から読み出しておく必要がある。次に、書込み制御部212は、データが追加されて5ワードのサイズとなった書込みデータをメモリ#2(230)のワード#1乃至ワード#5の範囲の領域に書き込む。これにより、メモリ#2(230)に対して、記録データであるデータ302を記録開始ワードであるワード#1の途中から記録することができる。
 [データの読出し]
 図9は、本技術の第2の実施の形態におけるデータの読出しを示す図である。同図におけるaは、メモリ#1(220)に書き込まれたデータ303の一部のデータを読み出す場合を表している。このような読出しが必要な場合としては、マスタ100が8ビット単位でデータの処理を行っており、必要となるデータが、メモリ#1(220)においては、ワードの境界をまたぐ領域に記録されている場合が該当する。メモリ#1(220)からアドレス:0x1、ビットアドレス:0x8乃至アドレス:0x2、ビットアドレス:0x7に記録されたデータを読み出す場合には、ワード#2およびワード#3の2ワード分のデータを読み出す必要がある。一方、同図におけるbは、メモリ#2(230)に書き込まれたデータ304から上述のデータと同一のデータを読み出す場合を表している。メモリ#1(220)における上述のデータは、メモリ#2(230)におけるワード#3のビットアドレス0x0乃至ビットアドレス0xFの領域に記録されている。メモリ#2(230)からこのデータを読み出す場合には、1ワード分のデータの読出しで足りるため、メモリ#1(220)から読み出す場合よりも読出し時間を短縮することができる。
 本技術の第2の実施の形態においても、選択部215が読出しの際のメモリの選択を行う。この選択には、本技術の第1の実施の形態において説明した方法と同様の方法を用いることができる。まず、メモリ#1(220)およびメモリ#2(230)における読出しに係るデータが記録されている領域の先頭および末尾の物理アドレス(ワードアドレス+ビットアドレス)を算出し、これらが含まれるワードの位置を算出する。次に算出されたこれらのワードの位置からメモリ#1(220)およびメモリ#2(230)における読出しワード数を算出する。最後に、算出された読出しワード数が少ない方のメモリを選択する。
 読出し制御部213は、選択されたメモリからデータを読み出して、バッファ214に転送する。次にバッファ214に転送されたデータに余分なデータが含まれている際には、これを除去する。その後、余分なデータが除去された読出しデータがマスタ100に送出される。
 このように、本技術の第2の実施の形態によれば、同一のデータをSRAMにより構成された2つのメモリに記録させる。その際、一方のメモリにおいては記録開始ブロックの先頭からデータを記録させ、他方のメモリにおいては記録開始ブロックの途中からデータを記録させる。そして、読出しに必要なワードの数が少ない方のメモリを選択して読み出すことにより、SRAMを使用するシステムにおいてデータの読出し時間を短縮させることができる。
 <3.第3の実施の形態>
 上述の第1の実施の形態では、SDRAMによる記憶装置を想定していた。これに対し本技術の第3の実施の形態では、画像メモリ装置への適用を想定する。これにより、画像メモリ装置においてもデータの読出し時間を短縮させることができる。
 [情報処理システムの構成]
 本技術の第3の実施の形態における情報処理システムは、図1において説明した情報処理システムと同様の構成を採ることができる。ただし、メモリ#1(220)およびメモリ#2(230)は、画像データを記録する画像メモリであり、SDRAMにより構成される。
 [画像メモリの構成]
 図10は、本技術の第3の実施の形態における画像メモリの構成例を示す図である。同図の画像メモリは、SDRAMであるメモリ#1(220)およびメモリ#2(230)により構成される。同図におけるaおよび同図におけるbは、それぞれメモリ#1(220)およびメモリ#2(230)を模式的に表したものである。これらの図における矩形で示された領域は、1ワードの記録領域を表している。メモリ#1(220)およびメモリ#2(230)は、この記録領域が2次元に配置されて構成されている。この2次元の配置のうち横方向はSDRAMにおけるカラムアドレス順の配列を表し、縦方向はSDRAMにおけるローアドレス順の配列を表している。メモリ#1(220)を例に挙げて説明すると、メモリ#1(220)の左上に配置されている記録領域221が、カラムアドレスおよびローアドレスともに値「0」の記録領域に該当する。他の記録領域は、記録領域221を起点として、図面に向かって右方向にカラムアドレスの順に配置され、図面に向かって下方向にローアドレスの順に配置されている。
 また、これらのメモリは、いずれもバースト長として8ワードを想定する。同図におけるaでは、メモリ#1(220)のブロックの先頭からデータ305(網掛けが施された領域)が記録されている。一方、同図におけるbでは、データ305と同一内容のデータ306(網掛けが施された領域)がメモリ#2(230)のブロックの先頭から4ワードずらして記録されている。なお、メモリコントローラの構成は、図1において説明したメモリコントローラ210と同様であるため、説明を省略する。
 [データの読出し]
 このようなメモリ#1(220)およびメモリ#2(230)に対して同図におけるcに表した画像データが記録された場合を想定する。画像処理においては、画像データに設定された矩形領域であるマクロブロックを単位として画像データを処理する場合が多い。例えば、動きベクトル補償を行う際には、同図におけるcに表したように、マクロブロック309を設定してこのマクロブロック309と近似する画像を含むマクロブロックを検索する場合がある。このような場合に、マクロブロック309に含まれる画像のデータを画像メモリから読み出す必要が生じる。ここで、同図におけるaおよび同図におけるbに表した1ワードの記録領域に1画素分の画像データが記録されるものと想定する。マクロブロックのサイズを16×16画素とした場合には、同一のローアドレスにおいて16ワードのデータの読出しを行い、さらにこれを16ローアドレス分繰り返す必要が生じる。同図におけるaに表したように、メモリ#1(220)におけるこの読出しデータの範囲がカラムアドレス0x4乃至0x13の場合には、ブロック#1乃至ブロック#3の3ブロックの読出しが必要となる。
 これに対して、メモリ#2(230)から上述のデータと同じ内容のデータを読み出す場合、当該データには、同図におけるbに表したようにカラムアドレス0x8乃至0x17の範囲のデータが該当する。これを読み出すには、ブロック#2およびブロック#3の2ブロックの読出しで済むため、メモリ#1(220)から読み出す場合と比べて短い読出し時間にすることができる。なお、メモリ#1(220)およびメモリ#2(230)の選択方法等は本技術の第1の実施の形態において説明した方法等と同様であるため、説明を省略する。
 このように、本技術の第3の実施の形態によれば、本技術を画像メモリ装置に適用した場合であってもデータの読出し時間を短縮することができる。
 以上のように、本技術の実施の形態によれば、記録開始ブロックの先頭からデータを記録するメモリと記録開始ブロックの途中からデータを記録するメモリの2つのメモリを使用する。これらのうち読出しの際に必要なブロックの数が少ない方のメモリを選択して読出しを行う。これにより、ブロックによって分割された範囲と整合しない範囲のデータを読み出す場合であっても、SDRAM等を使用したシステムにおいて、データの読出し時間を短縮することができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリとについて前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
 前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
を具備するメモリコントローラ。
(2)前記第1のメモリの前記記録開始ブロックの先頭から複数の記録データの書込みを行い、複数の前記記録データの先頭および末尾に所定のデータを追加することにより新たな記録データを生成して当該新たな記録データを前記第2のメモリの前記記録開始ブロックの先頭から書き込む書込み制御部をさらに具備する前記(1)に記載のメモリコントローラ。
(3)前記第1のメモリおよび前記第2のメモリは、書込みおよび読出しの際にバースト転送を行うメモリであり、
 前記データは、ワードデータであり、
 前記ブロックサイズは、前記バースト転送におけるバースト長である
前記(1)または(2)に記載のメモリコントローラ。
(4)前記データは、ビットデータであり、
 前記ブロックサイズは、複数のビットデータからなるワードサイズであり、
 前記ブロックは、ワードである
前記(1)または(2)に記載のメモリコントローラ。
(5)複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、
 前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリと、
 前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
 前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
を具備する記憶装置。
(6)複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、
 前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリと、
 前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
 前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
を備える記憶装置と、
 前記記憶装置の前記データにアクセスするマスタと
を具備する情報処理システム。
(7)複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリとについて前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択手順と、
 前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御手順と
を具備するメモリの制御方法。
 100 マスタ
 200 記憶装置
 210 メモリコントローラ
 211 マスタインターフェース
 212 書込み制御部
 213 読出し制御部
 214 バッファ
 215 選択部
 216 メモリインターフェース
 220 メモリ#1
 230 メモリ#2
 309 マクロブロック

Claims (7)

  1.  複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリとについて前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
     前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
    を具備するメモリコントローラ。
  2.  前記第1のメモリの前記記録開始ブロックの先頭から複数の記録データの書込みを行い、複数の前記記録データの先頭および末尾に所定のデータを追加することにより新たな記録データを生成して当該新たな記録データを前記第2のメモリの前記記録開始ブロックの先頭から書き込む書込み制御部をさらに具備する請求項1記載のメモリコントローラ。
  3.  前記第1のメモリおよび前記第2のメモリは、書込みおよび読出しの際にバースト転送を行うメモリであり、
     前記データは、ワードデータであり、
     前記ブロックサイズは、前記バースト転送におけるバースト長である
    請求項1記載のメモリコントローラ。
  4.  前記データは、ビットデータであり、
     前記ブロックサイズは、複数のビットデータからなるワードサイズであり、
     前記ブロックは、ワードである
    請求項1記載のメモリコントローラ。
  5.  複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、
     前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリと、
     前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
     前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
    を具備する記憶装置。
  6.  複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと、
     前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリと、
     前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択部と、
     前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御部と
    を備える記憶装置と、
     前記記憶装置の前記データにアクセスするマスタと
    を具備する情報処理システム。
  7.  複数のデータからなるブロックサイズにより分割された記録領域であるブロックを単位としてアクセスされて記録開始ブロックの先頭から複数の記録データが記録される第1のメモリと前記ブロックを単位としてアクセスされて前記記録開始ブロックの途中から複数の前記記録データが記録される第2のメモリとについて前記第1のメモリまたは前記第2のメモリに記録された前記記録データに含まれるデータを読み出す際に必要となる前記ブロックの数に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方を読出し対象として選択する選択手順と、
     前記選択の結果に基づいて前記第1のメモリまたは前記第2のメモリのいずれか一方から読出しを行う読出し制御手順と
    を具備するメモリの制御方法。
PCT/JP2015/078266 2014-10-24 2015-10-06 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 WO2016063716A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/519,465 US20170242589A1 (en) 2014-10-24 2015-10-06 Memory controller, storage device, information processing system, and memory controlling method
JP2016555162A JP6750502B2 (ja) 2014-10-24 2015-10-06 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-216767 2014-10-24
JP2014216767 2014-10-24

Publications (1)

Publication Number Publication Date
WO2016063716A1 true WO2016063716A1 (ja) 2016-04-28

Family

ID=55760760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078266 WO2016063716A1 (ja) 2014-10-24 2015-10-06 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Country Status (3)

Country Link
US (1) US20170242589A1 (ja)
JP (1) JP6750502B2 (ja)
WO (1) WO2016063716A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223358A (ja) * 2002-01-31 2003-08-08 Sony Corp 記憶制御装置および記憶制御方法、並びにプログラムおよび記録媒体
JP2007272551A (ja) * 2006-03-31 2007-10-18 Nec Corp キャッシュメモリ制御装置、方法及びプログラム並びにディスクアレイ装置
WO2012124251A1 (ja) * 2011-03-16 2012-09-20 パナソニック株式会社 データ処理装置、データ処理方法及びデータ共有システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392689B1 (en) * 2010-05-24 2013-03-05 Western Digital Technologies, Inc. Address optimized buffer transfer requests
US8990518B2 (en) * 2011-08-04 2015-03-24 Arm Limited Methods of and apparatus for storing data in memory in data processing systems
GB2512899B (en) * 2013-04-10 2015-06-03 Openwave Mobility Inc A method, apparatus and computer program for adding content to a data container

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223358A (ja) * 2002-01-31 2003-08-08 Sony Corp 記憶制御装置および記憶制御方法、並びにプログラムおよび記録媒体
JP2007272551A (ja) * 2006-03-31 2007-10-18 Nec Corp キャッシュメモリ制御装置、方法及びプログラム並びにディスクアレイ装置
WO2012124251A1 (ja) * 2011-03-16 2012-09-20 パナソニック株式会社 データ処理装置、データ処理方法及びデータ共有システム

Also Published As

Publication number Publication date
JPWO2016063716A1 (ja) 2017-08-03
US20170242589A1 (en) 2017-08-24
JP6750502B2 (ja) 2020-09-02

Similar Documents

Publication Publication Date Title
JP5351145B2 (ja) メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法
JP2013142947A (ja) 記憶制御装置、記憶装置および記憶制御装置の制御方法
JP5137374B2 (ja) メモリマッピング方法及び装置
JP6159478B2 (ja) データ書き込み方法及びメモリシステム
US9313358B2 (en) Image processing apparatus
JP5035412B2 (ja) メモリコントローラ及びそれを使用したメモリシステム
US8181075B2 (en) Error correction device and recording and reproducing device
JP6750502B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP5526641B2 (ja) メモリコントローラ
TWI540433B (zh) 用來存取記憶體的電路及相關的存取方法
US10380029B2 (en) Method and apparatus for managing memory
US20140181439A1 (en) Memory system
WO2017073127A1 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP2015053095A (ja) メモリ、メモリシステムおよびメモリの制御方法
JP2016095734A (ja) メモリコントローラ、記憶装置、情報処理システムおよびそれらにおける制御方法
KR101727407B1 (ko) 렌즈 왜곡 교정 장치 및 동작 방법
US10782886B2 (en) Semiconductor device, data processing system, data reading method, and data reading program
US10719440B2 (en) Semiconductor device and memory access method
JP5546356B2 (ja) メモリ装置及び信号処理装置
JP2019200592A (ja) メモリ制御回路、出力回路、メモリ制御回路の制御方法および出力回路の制御方法
CN105577569A (zh) 一种基于fc-av协议的提高ddr2带宽利用率的发送视频数据存储方法
JP2020077246A (ja) データ転送装置、撮像装置およびデータ転送方法
JP2012137944A (ja) メモリアクセス装置
JP4821410B2 (ja) メモリ制御方法、メモリ制御装置、画像処理装置およびプログラム
JPH08179894A (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: 15852828

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016555162

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15519465

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15852828

Country of ref document: EP

Kind code of ref document: A1