WO2012124251A1 - データ処理装置、データ処理方法及びデータ共有システム - Google Patents

データ処理装置、データ処理方法及びデータ共有システム Download PDF

Info

Publication number
WO2012124251A1
WO2012124251A1 PCT/JP2012/000898 JP2012000898W WO2012124251A1 WO 2012124251 A1 WO2012124251 A1 WO 2012124251A1 JP 2012000898 W JP2012000898 W JP 2012000898W WO 2012124251 A1 WO2012124251 A1 WO 2012124251A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
data
memory
access
arrangement
Prior art date
Application number
PCT/JP2012/000898
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 JP2012534484A priority Critical patent/JP5884037B2/ja
Priority to US13/522,397 priority patent/US9201781B2/en
Priority to CN201280000661.3A priority patent/CN102804150B/zh
Publication of WO2012124251A1 publication Critical patent/WO2012124251A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Definitions

  • the present invention relates to a data processing apparatus that processes data such as moving images and still images, and more particularly to improvement of memory access efficiency.
  • image processing application software generally performs processing such as storing image data in SDRAM (Synchronous DRAM), sequentially reading out and displaying each pixel data constituting the image.
  • SDRAM Synchronous DRAM
  • each bank constituting the SDRAM can be accessed by specifying a row address and a column address.
  • the burst transfer function With the burst transfer function, the same row address in the same bank can be specified and each data in the memory area specified by each column address can be accessed continuously.
  • the so-called precharge command and activate command that are required each time have an interval restriction that each command must be issued after waiting for a certain period, so that the memory access efficiency decreases.
  • an object of the present invention is to provide a data processing apparatus capable of realizing efficient memory access and a technique related to the apparatus.
  • a data processing apparatus is a data processing apparatus that accesses processing target data stored in a memory configured by a plurality of continuously accessible blocks.
  • Mapping means for determining addresses to be arranged in each of the plurality of areas of the memory using the first and second arrangement formats, and the portion based on each arrangement format when reading the partial data in the processing target data
  • a selection unit that selects an arrangement mode with better access efficiency to the partial data based on an address range related to the data, and access to the partial data by the mapping unit according to the first and second arrangement modes.
  • the processing target data are assumed to have the same contents in different memory areas corresponding to the respective addresses to be determined.
  • Access control means for controlling the memory area associated with the memory selected by the selecting means in the memory in which the data is recorded to access the memory area. Defines the address of the data to be processed at a position different from the address at which the data to be processed is arranged according to the first arrangement mode in terms of the relative position to the boundary address of the block in the address space. It is characterized by that.
  • the data processing apparatus selects a memory area in which the same data is arranged in two arrangement modes, and selects the one with higher access efficiency each time a part of the data is read. By accessing, it is possible to achieve an improvement in memory access efficiency as a whole.
  • Functional block diagram of the data sharing apparatus 100 Functional block diagram of the access management unit
  • positioning style with respect to the memory 1000 Diagram showing the configuration of the drawing block
  • a flowchart showing the operation of the computer of the data sharing apparatus 100 Flow chart showing the operation of a computer that has received an access request from another computer Flow chart showing the selection process Time chart of control signals to memory 2000 Time chart assuming access to memory 1000
  • the data sharing apparatus 100 is composed of a multiprocessor (here, two processors), and is an H.264 standard. This is an apparatus used for MPEG encoding processing of H.264 / MPEG AVC.
  • each frame image of an HD (High Definition) moving image obtained by imaging that is, two-dimensional image data composed of 1920 horizontal pixels and 1080 vertical pixels is sequentially stored in a memory, and the frame image to be processed
  • a so-called motion search motion compensation
  • motion compensation motion compensation
  • frame images are stored in memory areas at two different positions in relation to the address boundary of a drawing block (described in detail later) in an address space associated with a continuously accessible memory unit.
  • Each time address mapping is performed so that a partial image at an arbitrary position in a frame image needs to be read, memory access is performed based on two address-mapped address ranges according to the position of the partial image.
  • the memory area with the higher efficiency is selected and accessed.
  • the memory 1000 and the memory 2000 in the data sharing apparatus 100 are SDRAM (Synchronous DRAM) groups connected to the two processors 210 and 310, respectively, and are composed of two SDRAMs (memory 0 and memory 1). .
  • SDRAMs have a 4-bank configuration, a memory can be specified by a chip select signal, a bank can be specified by a bank address, and each bank can be accessed by specifying a row address and a column address. With the burst transfer function, the same row address can be specified and each 8-byte data specified by 512 column addresses can be accessed continuously. However, when access to different row addresses occurs, When issuing the precharge command and the activate command, each command must be issued after waiting for a certain period. Therefore, if access to different row addresses in the same bank occurs frequently, the memory access efficiency decreases.
  • the same frame image is stored in two memory areas by using two arrangement formats as address mapping used when storing a frame image of an HD moving image in a memory.
  • Both of the two arrangement modes are blocks determined by the same row address in the same bank of the memory in a two-dimensional address space (XY two-dimensional address space) determined by an X-direction address (X address) and a Y-direction address (Y address).
  • the drawing blocks associated with the two-dimensional image are arranged two-dimensionally, and when address mapping for storing a two-dimensional image (each pixel data constituting the image data) in a memory, each pixel in the two-dimensional image is mapped.
  • the X address and the Y address are determined based on the two-dimensional coordinates (the horizontal x coordinate and the vertical y coordinate).
  • the two arrangement modes are arrangement modes in which the relative positional relationship between the address serving as the boundary between the drawing blocks in the two-dimensional address space and the two-dimensional image is different from each other.
  • the address in the X direction is a column unit corresponding to 8 bytes
  • the address in the Y direction is a line unit indicating the number of columns in the X direction.
  • the boundary address in the X direction of each drawing block arranged two-dimensionally is represented by 16 ⁇ N (N is an integer of 0 or more), and the boundary address in the Y direction of each drawing block is 32 ⁇ M (M is 0 or more) (Integer).
  • image data for 8 horizontal pixels and 1 vertical pixel is represented in one column.
  • an address in the logical XY two-dimensional address space of data to be accessed is determined by associating one block of the SDRAM memory cell group determined by the same bank and the same row address as a physical address for each drawing block.
  • the physical address (memory, bank, row address, column address) when actually accessing the data is determined. Note that adjacent drawing blocks in the XY two-dimensional address space are associated with different banks.
  • the Y address of the pixel data address-mapped by the first arrangement style is Y0
  • the Y address of the same pixel data address-mapped by the second arrangement style is Y0 + 16. Note that pixel data groups address-mapped in one drawing block are associated with the same bank and same row address, and thus can be accessed continuously.
  • the data sharing apparatus 100 when sequentially reading out partial images at each position in the frame image in motion search processing or the like, two partial images are provided for each partial image according to the position of the partial image in the frame image.
  • One of the arrangement modes is selected according to a criterion for determining which one is more efficient in accessing the memory area to which the address mapping is performed, and access is made according to the selection result.
  • the criterion is that it is determined that the smaller the number of drawing blocks that the address range to which the partial images are mapped is, the more efficient.
  • the data sharing apparatus 100 that performs MPEG encoding processing in parallel by each processor, it is possible to reduce the number of access to the drawing block at the time of reading out a partial image at an arbitrary position in the frame image. This leads to an improvement, and overall, it is possible to prevent wasteful use of a memory bandwidth by suppressing the frequency of consecutive accesses to different row addresses in the same bank.
  • the data sharing apparatus 100 includes a computer 200 and a computer 300.
  • the computer 200 and the computer 300 are connected via an interface 270 and an interface 370, and the computer 200 is an SDRAM chip group.
  • the memory 1000 and the computer 300 are respectively connected to a memory 2000 that is an SDRAM chip group.
  • the computer 200 includes a processor 210 and various circuit groups. If the various circuit groups are distinguished from each other in terms of function, an access management unit 220, an arbitration unit 240, an arbitration unit 241, an input management unit 250, an output A management unit 260, an interface 270, a memory control unit 280, and an access replacement unit 290 are provided.
  • the processor 210 executes a program stored in the memory to control, for example, various stages of the MPEG encoding process, and requests the access to the memory 1000 or the memory 2000 in order to write or read the image data in the process.
  • Memory access That is, the processor 210 outputs an access request such as a data write request for each frame image and a data read request for a partial image for motion search processing for searching for a partial image corresponding to each macroblock. It has a function. After the read request is output, the processor 210 reads data from the memory that is determined to have good access efficiency.
  • the access request (write request or read request) is accompanied by an attribute for identifying whether it is a write request or a read request, and the upper left image address (x coordinate, y of the image data to be accessed). Coordinates) and size (width in x direction and width in y direction).
  • the access management unit 220 has a function of managing an access request from the processor 210, that is, a function of analyzing an access request, specifying a destination and sending an access request to the destination, as shown in FIG. Section 230, access control section 221, access replacement section 222, and address specifying section 223.
  • the address specifying unit 223 specifies an address in the XY two-dimensional address space according to the first arrangement format for the memory 1000 based on the image address (x coordinate, y coordinate) with respect to the two-dimensional image data, and the second address for the memory 2000. 2 has a function of specifying an address in the XY two-dimensional address space in accordance with two arrangement modes.
  • the upper left position of the image frame is set to an X address value 16 ⁇ N (N is an integer of 0 or more, for example, 0), a Y address value 32 ⁇ M (M is 0 or more) in the XY two-dimensional address space.
  • the X address value 16 ⁇ N and the Y address value 32 ⁇ M + 16 are associated with each other.
  • the access replacement unit 222 has a function of converting an address in the XY two-dimensional address space into a physical address in the memory 1000.
  • the address mapping by the access replacement unit 222 and the address specifying unit 223 will be described in more detail later.
  • the access analysis unit 230 has a function of analyzing an access request from the processor 210, and includes an access attribute determination unit 231, an access division unit 232, and a selection unit 233.
  • the access request input to the access analysis unit 230 is accompanied by image addresses (x coordinate, y coordinate) of the upper left and lower right of the rectangular image with respect to the two-dimensional image data, and is output from the access analysis unit 230.
  • the access request is accompanied by an address in a logical XY two-dimensional address space formed by two-dimensionally arranging drawing blocks corresponding to memory cells of the same bank and the same row address.
  • the direction in which the x coordinate increases is expressed as right, and the direction in which the y coordinate increases is expressed as down. Accordingly, the upper left corner of the rectangular image is indicated by the minimum x coordinate and y coordinate among the coordinates of each pixel constituting the rectangular image.
  • the access attribute determination unit 231 has a function of determining whether the access request is a write request or a read request.
  • the access dividing unit 232 divides and outputs an access request (write request) to the memory 1000 and an access request (write request) to the memory 2000 in order to write the same data to both the memory 1000 and the memory 2000 when writing data. It has the function to do.
  • the selection unit 233 has a function of determining which access efficiency is better when reading out the partial image data that is the target of the read request from the memory 1000 or the memory 2000, and selecting a better access efficiency. .
  • the address specifying unit 223 obtains an address range in the first arrangement format and an address range in the second arrangement format of the partial image, and each address range defines the drawing block boundary in the XY two-dimensional address space. The number of drawing blocks spanning each address range, that is, the number of drawing blocks is calculated, and the memory corresponding to the arrangement mode with the smaller number is selected as having good access efficiency.
  • the access control unit 221 has a function of selecting a memory to be accessed based on the analysis result of the access analysis unit 230 and controlling to access the selected memory.
  • the access request is a write request
  • the access request divided into two by the access division unit 232 to realize the writing of data to both the memory 1000 and the memory 2000.
  • the information is transmitted to the access replacement unit 222 and the output management unit 260, respectively. If the access request is a read request, based on the selection result of the selection unit 233, the access request is transmitted to the access replacement unit 222 when read from the memory 1000, and output when data is acquired from the memory 2000. Tell the management unit 260.
  • the access replacement unit 222 performs writing and reading with respect to the memory 1000 based on the logical addresses in the XY two-dimensional address space, as in the conventional case, adjacent drawing blocks are different from each other (including different SDRAM chips). It has a function of generating a physical address for designating to the SDRAM by an algorithm for associating with (refer to Patent Document 2).
  • the input management unit 250 has a function of managing access requests from the computer 300 to the memory 1000.
  • the input management unit 250 receives the access request sent via the interface 270 and sends it to the access replacement unit 290.
  • the access replacement unit 290 has the same function as the access replacement unit 222, and generates a physical address to be specified in the memory 1000 based on an access request accompanied by an XY two-dimensional address from the computer 300.
  • the output management unit 260 has a function of sending an access request from the computer 200 to the computer 300 to the computer 300 via the interface 270 for achieving interface matching between the computers.
  • the arbitrating unit 240 has a function of arbitrating contention between access to the memory 1000 from the processor 210 and access to the memory 1000 from the computer 300.
  • the arbitration unit 241 has a function of arbitrating a conflict between an access request input from the computer 300 via the interface 270 and an access request output via the interface 270 to the computer 300.
  • the memory control unit 280 outputs a control signal (command or the like) according to the distinction between writing and reading and a physical address in order to write data to the memory 1000 or read data from the memory 1000 in accordance with the access request.
  • the memory 1000 has a function of controlling.
  • the computer 300 includes a processor 310, an access management unit 320, an arbitration unit 340, an arbitration unit 341, an input management unit 350, an output management unit 360, an interface 370, a memory control unit 380, and an access replacement unit 390.
  • the elements have the same functions as the corresponding units in the computer 200 described above.
  • FIG. 3 is a diagram illustrating the association of the HD frame image with the XY two-dimensional address space and the association of the XY two-dimensional address space with the address designation of the SDRAM according to the first arrangement mode for the memory 1000.
  • the XY two-dimensional address space is a two-dimensional arrangement of drawing blocks associated with blocks (memory cell groups) designated by the same bank and the same row address in the same SDRAM.
  • FIG. 3 the boundary of the drawing block is indicated by a broken line, and only the range in which one frame image is allocated is shown.
  • the upper left of the HD frame image composed of horizontal 1920 pixels ⁇ vertical 1080 pixels is associated with a position where the X address of the XY two-dimensional address space is 0 and the Y address is 0.
  • the frame image is allocated to 15 drawing blocks in the X direction and 34 drawing blocks in the Y direction.
  • FIG. 4 shows the relationship between the drawing block and the pixels, taking the upper left of the drawing blocks indicated by broken lines in FIG. 3 as an example.
  • the drawing block has an X address width of 16 (that is, 128 bytes) and a Y address width of 32, and can be accessed by the same row address, that is, by a 512 column address. Since 8 bytes are stored per column address, one column corresponds to data for 8 pixels in a data configuration of 1 byte per pixel. Data for 128 horizontal pixels and 32 vertical pixels can be arranged in one drawing block.
  • FIG. 5 is a diagram showing the association of the HD frame image with the XY two-dimensional address space according to the second arrangement mode for the memory 2000, and the correspondence between the XY two-dimensional address space and SDRAM addressing. Also in FIG. 5, the boundary of the drawing block is indicated by a broken line, and only the range in which one frame image is allocated is shown.
  • the upper left of the HD frame image composed of horizontal 1920 pixels ⁇ vertical 1080 pixels is associated with the position where the X address in the XY two-dimensional address space is 0 and the Y address is 16. It is supposed to be.
  • the address range in the XY two-dimensional address space to which the frame image is allocated by the first arrangement mode is the same as the address range to which the frame image is allocated by the second arrangement mode in the Y direction. 16 is shifted by half of the drawing block.
  • 3 and 5 show the first arrangement mode and the second arrangement for the rectangle 0 and the rectangle 1, which are examples of rectangular images that are continuously accessed when the target is a motion search process. It shows that different addresses are associated with the arrangement style.
  • FIG. 3 and 5 also show which block in the memory each drawing block in the XY two-dimensional address space is associated with by the access replacement unit.
  • “Memory 0” and “Memory 1” in FIG. 3 and FIG. 5 distinguish the individual SDRAM chip groups constituting each of the memory 1000 and the memory 2000.
  • FIG. 6 is a flowchart showing an operation related to image data access by the processor 210 of the computer 200.
  • the access attribute determining unit 231 determines whether it is a write request or a read request based on the attribute of the access request (step S1, S2).
  • the access request is a write request
  • the address is specified based on the upper left image address (x coordinate, y coordinate) and size (width in the x direction and width in the y direction) of the image data to be accessed according to the access request.
  • the unit 223 identifies each address range in the XY two-dimensional address space of the image data according to the first arrangement format and the second arrangement format, and the access division unit 232 determines the address range in the first arrangement format based on the result.
  • An access request addressed to the memory 1000 accompanied by the address range and an access request addressed to the memory 2000 (computer 300) accompanied by the address range defined in the second allocation mode are generated and sent to the access control unit 221. Transmit (step S3).
  • the access control unit 221 sends an access request to the memory 1000 to the access replacement unit 222, and the access replacement unit 222 sets a physical address for accessing the memory 1000 based on the address range of the XY two-dimensional address space related to the access request. Conversion is performed, and data writing control to the memory 1000 is controlled via the arbitration unit 240 and the memory control unit 280 (step S4).
  • the access control unit 221 sends an access request for the memory 2000 to the output management unit 260, and the output management unit 260 sends an access request (write request) to the computer 300 via the arbitration unit 241 and the interface 270. (Step S5).
  • the input management unit 350 of the computer 300 that has received the access request sent via the interface 370 and the arbitration unit 341 (step S21), XY2 determined based on the second arrangement format attached to the access request.
  • the address range in the dimensional address space is sent to the access substitution unit 390, and the access substitution unit 390 converts the address in the XY two-dimensional address space into a physical address for accessing the memory 2000, and passes through the arbitration unit 340 and the memory control unit 380.
  • data writing to the memory 2000 or data reading from the memory 2000 is controlled (step S22).
  • step S6 if the access attribute determination unit 231 determines that the access request is a read request, the selection unit 233 reads data to be accessed from either the memory 1000 or the memory 2000.
  • a selection process for determining whether the access efficiency is good and selecting the one with the good access efficiency is performed (step S6). This selection process will be described later in detail.
  • step S7 If it is selected that the memory 1000 connected to the own machine (computer 200) has the higher access efficiency in step S6, that is, the one arranged in the first arrangement mode (step S7), the access is made.
  • the analysis unit 230 transmits to the access control unit 221 an access request addressed to the memory 1000 accompanied by an address range defined in the first arrangement format.
  • the access control unit 221 sends an access request to the memory 1000 to the access replacement unit 222, and the access replacement unit 222 sets a physical address for accessing the memory 1000 based on the address range of the XY two-dimensional address space related to the access request.
  • the data is converted, and data read from the memory 1000 is controlled via the arbitration unit 240 and the memory control unit 280 (step S8).
  • step S6 if it is selected that the access efficiency is better in the memory 2000 connected to the other machine (computer 300), that is, the one arranged in the second arrangement mode (step S7). ),
  • the access analysis unit 230 transmits an access request addressed to the memory 2000 (computer 300) accompanied by the address range defined in the second arrangement format to the access control unit 221, and the access control unit 221 Is sent to the output management unit 260, and the output management unit 260 sends an access request (read request) to the computer 300 via the arbitration unit 241 and the interface 270 (step S9).
  • the selection unit 233 obtains the upper left image address (x coordinate, y coordinate) and size of image data (hereinafter referred to as “partial image”) to be accessed accompanying the access request (step S31), and After calculating the lower right image address based on the image address and size (step S32), the range of the X address and the Y address of the XY two-dimensional address space according to the first arrangement mode for the partial image is calculated. The number of drawing blocks spanned by the address range is calculated (step S33).
  • the X address in the upper left XY two-dimensional address space of the partial image according to the first arrangement mode corresponding to the memory 1000 is set as Xa
  • the upper left Y address is set as Ya
  • the lower right X address is set as Xb
  • the lower right If the Y address is set to Yb
  • the number Bn of drawing blocks (BXa, BYa) to which the upper left portion of the partial image belongs, drawing blocks (BXb, BYb) to which the lower right portion belongs, and drawing blocks that the partial image straddles are expressed by the following Equation 5.
  • Equation 5 Equation 5.
  • the range of the calculated X address and Y address differs from that of the first arrangement mode by 16 offsets in the Y direction.
  • the X address in the upper left XY two-dimensional address space of the partial image according to the calculated second arrangement mode is set as Xa
  • the upper left Y address is set as Ya
  • the lower right X address is set as Xb
  • the lower right If the Y address of Y is set to Yb, the number Bn of the drawing blocks (BXa, BYa) belonging to the upper left of the partial image, the drawing blocks (BXb, BYb) belonging to the lower right, and the drawing blocks straddling the partial images are the same. It can be specified by 5-9.
  • the selection unit 233 compares the number of drawing blocks calculated in step S33 and step S34, respectively, and when the number of drawing blocks according to the first arrangement style is larger (step S35: YES), the second When the memory 2000 corresponding to the arrangement style of the memory is selected as a memory with good access efficiency (step S37), and the number of drawing blocks according to the first arrangement style is not larger (step S35: NO), the first The memory 1000 corresponding to the arrangement mode is selected as a memory with good access efficiency (step S36).
  • FIG. 9 shows that when the rectangle 0 and the rectangle 1 are arranged in the XY two-dimensional address space determined by the second arrangement format corresponding to the memory 2000 as shown in FIG. 6 is a time chart showing a control signal for the memory 2000 and a data signal output from the memory 2000 by the memory control unit 380 of the computer 300 when trying to read data.
  • the memory control unit 380 of the computer 300 performs two blocks (memory cell group) included in the rectangle 0, that is, the block of the row address 1 of the bank 3 of the memory 0 and the block of the row address 1 of the bank 0 of the memory 1 Issue an activate command. Next, a read command is issued to the two blocks, and image data is read out.
  • FIG. 9 shows an example in which two data are read out by accessing two surfaces as the same block in two banks as a configuration of 4 bytes per column.
  • a precharge command is issued to the two blocks included in the rectangle 0, and the two blocks included in the rectangle 1, that is, the block at the row address 2 of the bank 2 of the memory 0 and the bank of the memory 1
  • the activate command and the read command are issued to the block of the row address 2 of 3. In this way, continuous access to the rectangle 0 and the rectangle 1 is realized.
  • FIG. 10 is a time chart showing a control signal that should be output to the memory 1000 and a data signal that should be output from the memory 1000 at that time.
  • the memory control unit 280 in the computer 200 includes four blocks (memory cell group) included in the rectangle 0, that is, the block at the row address 0 in the bank 2 of the memory 0, the block at the row address 0 in the bank 1 of the memory 1, and the memory An activate command is issued to the block of row address 1 in bank 3 of 0 and the block of row address 1 in bank 0 of memory 1.
  • a read command is issued to the four blocks, and image data is read out.
  • a precharge command is issued to the four blocks including the rectangle 0, and the four blocks included in the rectangle 1, that is, the block of the row address 1 of the bank 1 of the memory 0 and the row of the bank 0 of the memory 1 are included.
  • the number of computers may be three or more. Characters and other data may be shared. Further, for example, among the three computers A, B, and C each having a dedicated memory and connected by a bus, computer A and computer B share data D, and computer A and computer C share data E. In this case, when updating data shared with other computers, each computer transmits an identifier of the data and update data to the other computers through the bus, and the bus If the identifier of the data transmitted through is shared by the own computer, the updated data may be taken into the dedicated memory of the own computer.
  • the access management unit 400 has the same function as the access management unit 220 described above, and the arbitration unit 410 mediates contention of access requests output from the access management unit 220 and the access management unit 400. To do.
  • the computer can realize access to the image data in the memory in response to designation of an image address, for example, from another computer.
  • each computer may include a processing engine circuit such as a decoder that specializes in specific processing such as image processing, and the access management unit may select the processing engine circuit as a destination of access requests in addition to the memory. .
  • Each computer implements only the algorithm and processing mechanism related to only one arrangement mode for data arrangement in the dedicated memory of its own computer, and designates data from other computers or designation of its logical address, image coordinates, etc.
  • the number of blocks of memory to be accessed is returned when receiving and allocating to the memory in the allocation format in the own computer based on the designation, and the number of blocks returned from other computers and the allocation format in the own computer It may be possible to determine which computer's dedicated memory is more efficient when compared with the number of blocks. For this purpose, the arrangement format determined by each computer needs to be different for each computer in the amount of deviation from the memory block boundary.
  • a data sharing apparatus including two computers including a processor and connected to one memory has been described.
  • the number of processors and memories may be other than this. Good.
  • the data processing device only needs to have at least one processor and a plurality of memory areas.
  • a plurality of memory areas may be defined in which data is arranged in a plurality of arrangement styles such that the data is different between the arrangement styles.
  • one processor arranges data such as a frame image in a certain memory area, and arranges the same data such as the same frame image in a different memory area by changing the positional relationship with the memory block boundary.
  • some of the data to be read may be read from the memory area with the smaller number across the block boundary.
  • the values of the number of memories, the number of banks, the number of columns, the number of lines, etc. shown in the above embodiment are examples, and other values may be used.
  • the size of the drawing block is horizontal 16 columns (128 bytes) ⁇ vertical 32 lines, but may be changed according to the number of memory column addresses, the number of data signal lines, and the like.
  • one pixel data is one byte.
  • This one-pixel data may be a luminance (Y) component or a color difference (Cb, Cr) component.
  • one of the two different arrangement modes is used to access the partial image data of the frame image data.
  • accessing a memory area arranged on one side is more efficient, it is more efficient to access a memory area arranged on the other of the two different arrangement modes.
  • These arrangement modes need to be determined so that the above partial image data can also exist.
  • the offset in the Y direction is larger than that width. The same applies to the X direction.
  • a plurality of arrangement modes may be determined so that the number of blocks included in the address range of the data to be accessed is different from each other.
  • the difference in offset for each arrangement mode is in the horizontal direction (X direction). May appear only (see FIGS. 11A and 11B), or may appear both in the vertical direction (Y direction) and in the horizontal direction (X direction) (see FIGS. 11C and 11C). (See (d)).
  • the horizontal and vertical widths of the drawing blocks may be made different for each arrangement mode (see FIGS. 11E and 11F).
  • the horizontal 16 columns (128 bytes) ⁇ vertical 32 lines drawing block shown in FIG. 4 is used, and on the other side, the horizontal 8 columns (64 bytes) ⁇ vertical 64 lines are drawn.
  • a block may be used.
  • the memory access in the course of the MPEG encoding process has been described.
  • the processing content for the memory access is not limited to this.
  • H. Even H.264 / MPEG AVC processing may be other data encryption / decryption processing.
  • the address for mapping the frame image is a two-dimensional address space, but it may be a one-dimensional general address space. However, it is useful to use a two-dimensional address space for arrangement of two-dimensional images. If an address space determined by a one-dimensional address is used for the arrangement of character strings and other data or image data, data that can be stored in a memory cell group that can be accessed by the same row address in the same bank of the SDRAM The offset (relative position) from the boundary address for each unit in units of quantities may be made different between the first arrangement mode and the second arrangement mode.
  • the unit is 4 kilobytes
  • the first and second arrangement modes define the arrangement (logical address) of data in memory areas of different address ranges in the same logical address space
  • the difference between the top addresses of two areas where the same data is arranged may be other than a multiple of 4000H.
  • the portions assigned to the drawing blocks (0, 34) to (14, 34) in the lowest vertical direction in the frame image are Further, it may be assigned to the empty areas in the drawing blocks (0, 0) to (14, 0) in the uppermost vertical direction.
  • two different arrangement modes are used at the stage of determining the address of the two-dimensional address space determined in association with the memory block from the image address (image coordinate).
  • the two placement modes are different so that the relationship between the logical address and the row address is different between the placement modes. It may be determined.
  • One processor may realize all or part of the functions of the computer 200 by executing a control program.
  • This control program is composed of a program code in a machine language or a high-level language, and may be recorded on a recording medium or distributed and distributed via various communication paths.
  • a recording medium includes an IC card, a hard disk, an optical disk, a flexible disk, a ROM, a flash memory, and the like.
  • the distributed and distributed control program is used by being stored in a memory or the like that can be read by the processor, and the processor executes the control program to realize the functions shown in the above embodiment. Become so.
  • the processor may be compiled and executed or executed by an interpreter.
  • the data sharing apparatus 100 and a part of the computers shown in the above embodiment may be configured as an IC, LSI or other integrated circuit package.
  • a memory may also be included in the integrated circuit package. This package is incorporated into various devices for use, whereby the various devices realize each function as shown in the above embodiment.
  • a data processing apparatus is a data processing apparatus that accesses processing target data stored in a memory configured by a plurality of continuously accessible blocks.
  • mapping means for determining addresses for arranging the processing object data in each of a plurality of areas of the memory using the first and second arrangement modes, and when reading partial data in the processing object data, Based on the address range of the partial data based on each layout mode, selection means for selecting a layout mode with higher access efficiency to the partial data, and access to the partial data, the first and second It is assumed that each memory area has the same contents corresponding to each address to be determined by the mapping means according to the layout mode.
  • Access control means for performing control by accessing a memory area associated with the arrangement mode selected by the selection means in the memory in which processing target data is recorded; and
  • the allocation format is to determine the address of the processing target data at a position different from the address where the processing target data is allocated according to the first allocation mode in terms of the relative position to the boundary address of the block in the address space. It is characterized by being.
  • the continuously accessible block is, for example, a burst transfer function in a memory such as a memory cell group having the same row address in the same bank, which can be continuously accessed without waiting for a certain time due to command issue restrictions in the SDRAM. This is a unit area that can be accessed continuously.
  • the mapping unit 11 corresponds to, for example, the above-described address specifying unit 223, the selection unit 12 corresponds to, for example, the above-described selection unit 233, and the access control unit 13 includes, for example, the above-described access control unit 221 and access replacement unit 222.
  • the access control unit 13 includes, for example, the above-described access control unit 221 and access replacement unit 222.
  • the data processing apparatus may be configured as an LSI or other integrated circuit.
  • this data processing apparatus a process of sequentially reading and processing images, characters, and other data that are redundantly recorded based on a plurality of different address mappings, rather than being repeatedly recorded with the same address mapping
  • the data arranged by one address mapping with high access efficiency is selected and accessed, it is possible to realize efficient memory access as a whole.
  • the processing target data is two-dimensional image data represented by an x-coordinate and a y-coordinate
  • the first and second arrangement modes are such that the address space is an XY two-dimensional address space and each block in the memory is A plurality of drawing blocks associated with the XY two-dimensional address space are arranged two-dimensionally in the XY two-dimensional address space, and the second arrangement mode is the point of the relative position with respect to the drawing block boundary in the XY two-dimensional address space.
  • the X address and Y address in the XY two-dimensional address space are determined according to the x-coordinate and y-coordinate of the two-dimensional image data so that the position differs from the X address and Y address where the two-dimensional image data is arranged depending on the arrangement mode. It may be a thing. This makes it possible to increase the memory access efficiency when performing a so-called motion search process for searching a frame image group similar to a macroblock unit as a partial image, such as an MPEG encoding process.
  • the block in the memory corresponding to the drawing block may be a memory cell group having the same row address in the same bank. According to this data processing apparatus, continuous access to areas indicated by different row addresses in the same bank can be reduced.
  • the selection means selects one arrangement mode for determining an address so that the number of drawing blocks included in the address range related to the partial data is the smallest among the first and second arrangement formats. Also good. Thereby, the access efficiency can be determined with a simple configuration.
  • the data processing device performs a process of sequentially reading out partial images at a plurality of positions in a frame image and having a y-coordinate width of a predetermined size. Is to determine the Y address so that the difference from the Y address determined for the same partial data related to the same partial image in the first arrangement mode is larger than the width of the Y address corresponding to the width of the y coordinate. It may be there.
  • the sequential readout process of partial images if any layout is selected, the partial image is address-mapped without straddling the address boundary in the Y direction of the drawing block in the address space. Access efficiency can be improved by accessing according to the arrangement mode.
  • the data processing device performs a process of sequentially reading out partial images at each of a plurality of positions in a frame image and having a x-coordinate width of a predetermined size. Defines the X address so that the difference from the X address determined for the same partial data relating to the same partial image by the first arrangement mode is larger than the width of the X address corresponding to the width of the x coordinate. It may be there.
  • the sequential reading process of partial images if any layout is selected, the partial image is address-mapped without straddling the address boundary in the X direction of the drawing block in the address space. Access efficiency can be improved by accessing according to the arrangement mode.
  • the drawing blocks are associated one-to-one with all memory cell groups having the same row address in the same bank in the memory.
  • Both the width in the X direction and the width in the Y direction of the drawing block in the XY two-dimensional address space may be associated with each other so as to be different from the first arrangement form. Since the shape of the rectangular drawing block in the address space associated with the continuously accessible block in the memory is different, the memory arrangement of the two-dimensional image with respect to that block in the memory is different in each arrangement mode, and the access efficiency is good. Therefore, efficient memory access can be realized as a whole.
  • the data processing device is configured so that the memory and the processing target data are different memory areas in the memory corresponding to the addresses determined by the mapping unit according to the first and second arrangement modes. It is good also as providing further the recording means written in. With this configuration, both reading and writing of data are realized in the data processing apparatus.
  • the processing target data is a frame image, and the data processing device performs a process of sequentially reading a plurality of partial data existing at each of a plurality of positions in the frame image. According to the position of the partial data to be read, it is more preferable to read from the memory area corresponding to the address determined by the mapping means using the first arrangement mode out of the first and second arrangement modes.
  • the partial data with high access efficiency and the partial data with high access efficiency to be read out from the memory area corresponding to the address determined by the mapping means using the second arrangement mode are present. It is good also as the 1st and 2nd arrangement
  • the data sharing system includes a first memory and a second memory, and a first data processing apparatus that accesses processing target data stored in each memory. 31 and a second data processing device 41, each data processing device having an address for placing the processing object data in the first memory 35 in the first placement.
  • Mapping means 32 for determining addresses using the second layout format and addresses for placement in the second memory 45, and when the partial data in the processing target data is read out, Selection means 33 (43) for selecting an arrangement style with higher access efficiency to the partial data based on the address range of the partial data based on the style, and the part Access control means 34 (44) for controlling the access to the data area by accessing the memory area associated with the placement style selected by the selection means, and the second placement style.
  • the access control means when accessing a memory connected to a data processing device other than itself, controls to realize the access via the other data processing device. Efficient memory access can be realized in a data sharing system composed of multiprocessors each having a memory connected to each processor.
  • the data processing apparatus can realize efficient memory access, it is useful as an apparatus for processing data such as moving images and still images using SDRAM.
  • Second memory 100 Data Shared device 200, 300 Computer 210, 310 Processor 220, 320, 400 Access management unit 221 Access control unit 222 Access replacement unit 223 Address specifying unit 230 Access analysis unit 231 Access attribute determination unit 232 Access division unit 233 Selection unit 240, 241, 340, 341, 410 Arbitration unit 250, 350 Input management unit 260, 360 Output management unit 270, 370 Interface 280, 380 Memory control unit 290, 390 Access replacement unit

Abstract

 連続的なデータのアクセスが、メモリにおける同一バンクで互いに異なるロウアドレスで指定される領域に対するものとなる頻度を低減させて効率のよいメモリアクセスを実現すべく、データ処理装置(10)は、同一内容のデータ(21)及びデータ(22)をそれぞれ第1配置様式、第2配置様式を用いてマッピングしてメモリ(20)を構成する別のメモリ領域に格納し、データの一部を読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、アクセス効率のよい方の配置様式を選定手段(21)により選定してそれに対応するメモリ領域にアクセス制御手段(13)によりアクセスする。ここで、データ(21)は、同一バンク同一ロウアドレスに対応するブロックの境界アドレスに対する相対位置の点で、データ(22)と異なる位置に配置されている。

Description

データ処理装置、データ処理方法及びデータ共有システム
 本発明は、動画、静止画等のデータを処理するデータ処理装置に関し、特にメモリのアクセス効率の改善に関する。
 メモリの大容量化やプロセッサの処理性能の向上を背景として、近年、画像処理で扱われる画像は高解像度化しており、例えば水平1920画素×垂直1080画素のHD(High Definition)動画を扱うアプリケーションソフトウェアも増加しており、現在から将来にかけて、水平4000画素×垂直2000画素前後の所謂4K2Kの動画やそれ以上の画素数の動画が扱われるようになる。
 このような高解像度の画像処理は高負荷なため、マルチプロセッサシステムにおいて各プロセッサに並列処理させる手法を始めとして、画像処理性能の向上のために各種手法が利用及び開発されている。その手法には、メモリアクセス効率を高めることに注目したものもある。
 例えば、従来、マルチプロセッサシステムにおいて、各プロセッサがプロセッサ間で共有するデータのうち自プロセッサに必要なものを選択して自プロセッサ専用メモリに複製する方式により、メモリ利用効率の向上を実現する技術が知られている(例えば、特許文献1参照)。
 ところで、一般に画像処理アプリケーションソフトウェアは、画像データをSDRAM(Synchronous DRAM)に格納して、画像を構成する各画素データを順次読み出して表示する等の処理を行う。
 ここで、SDRAMを構成する各バンクにはロウアドレス及びカラムアドレスの指定によりアクセスできる。バースト転送機能により、同一バンクの同一ロウアドレスを指定して、各カラムアドレスで指定されるメモリ領域の各データに連続してアクセスすることができるが、連続して同一バンクの異なるロウアドレスへのアクセスが必要となる場合には、その都度必要となる所謂プリチャージコマンド及びアクティベートコマンドについて各コマンドには一定期間待って発行しなければならないというインターバル制約があるため、メモリアクセス効率が低下する。
 なお、上述の特許文献1記載の技術を用いても、データを複数のSDRAMそれぞれに複製するだけにすぎないため、個々のSDRAMに対する連続アクセスに由来する上述したようなメモリアクセス効率の低下は防ぐことができない。
 このメモリアクセス効率の低下を防ぐ技術として、複数のSDRAMに2次元配置された複数の描画ブロックからなるフレームバッファ領域を割り付け、特に、隣り合う描画ブロックに異なるSDRAMを割り付ける技術が知られている(例えば、特許文献2参照)。
国際公開第2009/116279号パンフレット 特開2005-196485号公報
 しかしながら、例えば画像処理であるH.264/MPEG AVCのMPEGエンコード処理の過程での所謂動き探索(動き補償)処理では、マクロブロック又はサブマクロブロック毎についてフレーム画像中の各位置の部分画像を逐次読み出して処理する必要があり、このような任意の位置の部分画像への連続的なアクセスは、必ずしも隣接する描画ブロックに対するものとはならないため、上述の特許文献2記載の技術では対応できず、同一バンクで異なるロウアドレスで指定されるメモリ領域に対してなされ得るので、メモリアクセス効率の低下を招き得る。なお、このようなメモリにおける同一バンクで異なるロウアドレスで指定される各メモリ領域に連続してアクセスすることで生じる問題は、必ずしも画像データに係る処理のみの問題ではない。
 そこで、本発明は上記問題に鑑みてなされたものであり、画像或いは文字その他のデータを処理する過程で、具体的には例えば画像における任意の各位置の各部分画像に逐次アクセスする、或いは文字列中における任意の各位置の各文字に逐次アクセスする過程等において、連続的なアクセスの対象となる各メモリ領域が、メモリにおける同一バンクで互いに異なるロウアドレスで指定される領域となる頻度を低減させるようにして、効率のよいメモリアクセスを実現し得るデータ処理装置、及び当該装置に関連する技術を提供することを目的とする。
 上記課題を解決するために本発明に係るデータ処理装置は、複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、 前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであることを特徴とする。
 上述の構成により、本発明に係るデータ処理装置は、同じデータが2つの配置様式によりそれぞれ配置された各メモリ領域のうち、データの一部の読み出しの都度、アクセス効率のよい方を選択してアクセスすることで、全体としてメモリアクセス効率の向上を達成し得る。
本発明の実施形態に係るデータ共有装置100の機能ブロック図 アクセス管理部の機能ブロック図 メモリ1000に対する第1の配置様式によるアドレスマッピングを示す図 描画ブロックの構成を示す図 メモリ2000に対する第2の配置様式によるアドレスマッピングを示す図 データ共有装置100の計算機の動作を示すフローチャート 他の計算機からアクセス要求を受けた計算機の動作を示すフローチャート 選定処理を示すフローチャート メモリ2000への制御信号等のタイムチャート メモリ1000へのアクセスを仮定した場合のタイムチャート 3台の計算機を有するデータ共有装置の機能ブロック図 配置様式のバリエーションを示す図 データ処理装置の機能ブロック図 データ共有システムの機能ブロック図
 <実施形態>
 以下、本発明の一実施形態に係るデータ共有装置100について説明する。
 <全体概要>
 データ共有装置100は、マルチプロセッサ(ここでは2つのプロセッサとする。)で構成されH.264/MPEG AVCのMPEGエンコード処理に用いられる装置である。
 MPEGエンコード処理の過程では、撮像により得られるHD(High Definition)動画の各フレーム画像、つまり水平1920画素、垂直1080画素からなる2次元画像のデータを、メモリに逐次格納し、処理対象のフレーム画像中の各部分画像(マクロブロック、サブマクロブロック等)毎について参照用のフレーム画像中における各位置の部分画像を読み出して類似内容の部分を探すための所謂動き探索(動き補償)が行われる。
 このデータ共有装置100では、連続アクセス可能なメモリ単位に対応付けたアドレス空間における描画ブロック(後に詳しく説明する。)についてのアドレス境界との関係において、互いに異なる2つの位置のメモリ領域にフレーム画像が配置されるようにアドレスマッピングを行い、フレーム画像中の任意の位置の部分画像が読み出される必要のある都度、その部分画像の位置に応じて、アドレスマッピングされた2つのアドレス範囲に基づいてメモリアクセス効率が良くなる方のメモリ領域を選択してアクセスする。
 <メモリアクセス制御>
 まず、データ共有装置100の特徴となるメモリアクセス制御について簡単に説明する。
 データ共有装置100(図1参照)におけるメモリ1000及びメモリ2000は、2つのプロセッサ210及び310それぞれに接続されたSDRAM(Synchronous DRAM)群であり、2つのSDRAM(メモリ0、メモリ1)で構成する。これらのSDRAMは、4バンク構成であり、チップセレクト信号でメモリを、バンクアドレスによりバンクを指定でき、各バンク内にはロウアドレス及びカラムアドレスの指定でアクセスできる。バースト転送機能により、同一ロウアドレスを指定して、512個のカラムアドレスで指定される各8バイトデータに連続してアクセスすることができるが、異なるロウアドレスへのアクセスが発生した場合には、プリチャージコマンド及びアクティベートコマンドの発行の際に各コマンドは一定期間待って発行しなければならなくなるため、同一バンクの異なるロウアドレスへのアクセスが頻発するとメモリアクセス効率が低下する。
 このデータ共有装置100では、HD動画のフレーム画像をメモリに格納する場合に用いるアドレスマッピングとして2つの配置様式を用いることで、同じフレーム画像を2つのメモリ領域へと格納する。
 2つの配置様式は、共に、X方向のアドレス(Xアドレス)とY方向のアドレス(Yアドレス)とで定まる2次元アドレス空間(XY2次元アドレス空間)に、メモリの同一バンク同一ロウアドレスで定まるブロックに対応付けた描画ブロックを、2次元的に配置するものであり、2次元画像(画像データを構成する各画素データ)をメモリに格納するためのアドレスマッピングに際して、その2次元画像における各画素の2次元座標(水平方向のx座標及び垂直方向のy座標)に基づいてXアドレスとYアドレスとを定める。但し2つの配置様式は、互いに、2次元アドレス空間における描画ブロック間の境界となるアドレスと2次元画像との相対位置関係を異ならせるような配置様式である。
 本実施形態では具体的には、論理的なXY2次元アドレス空間においてX方向のアドレスは8バイトに相当するカラム単位で、Y方向のアドレスは、X方向のカラムが何列となるかというライン単位で表す。2次元に配置された各描画ブロックのX方向の境界アドレスは16×N(Nは0以上の整数)で表され、各描画ブロックのY方向の境界アドレスは32×M(Mは0以上の整数)で表される。また、1カラムにおいて水平8画素分、垂直1画素分の画像データを表すものとする。各描画ブロック毎に、物理アドレスとして同一バンク同一ロウアドレスで定まるSDRAMのメモリセル群の1ブロックを対応付けることで、アクセスすべきデータの論理的なXY2次元アドレス空間におけるアドレスが定まれば、SDRAM中のデータに実際にアクセスする際の物理アドレス(メモリ、バンク、ロウアドレス、カラムアドレス)が定まるようにしている。なお、XY2次元アドレス空間における近接する描画ブロック同士は、互いに異なるバンクに対応付けている。
 また、第1の配置様式によりアドレスマッピングした画素データのYアドレスがY0であるとすれば、第2の配置様式によりアドレスマッピングした同じ画素データのYアドレスはY0+16となる。なお、1つの描画ブロック内にアドレスマッピングされた画素データ群は、同一バンク同一ロウアドレスに対応付けられているため、連続的にアクセスできる。
 そして、このデータ共有装置100では、動き探索処理等においてフレーム画像内の各位置の部分画像を逐次読み出す際において、部分画像毎に、フレーム画像内でのその部分画像の位置に応じて、2つの配置様式のうちどちらによりアドレスマッピングされたメモリ領域にアクセスした方が効率的かを判断するための判断基準に照らして一方を選択して、選択結果に従ってアクセスする。この判断基準は、部分画像がマッピングされたアドレス範囲が跨る描画ブロックの数が少ない方が効率的と判断するというものである。
 従って、各プロセッサによりMPEGエンコード処理を並列的に実行するデータ共有装置100において、フレーム画像中における任意位置の部分画像についての1回の読み出しに際して描画ブロックへのアクセス数を抑えることが、アクセス性能の向上に繋がり、また、総合的には、連続して同一バンクで異なるロウアドレスへのアクセスが生じる頻度を抑えることで無駄なメモリ帯域の浪費を防止できることに繋がるので、効率的となる。
 <構成>
 以下、本実施形態に係るデータ共有装置100について、特に画像データに係るアクセスに関連する構成を詳細に説明する。
 図1に示すように、データ共有装置100は、計算機200及び計算機300により構成され、計算機200及び計算機300は、インタフェース270及びインタフェース370を介して接続されており、計算機200はSDRAMチップ群であるメモリ1000と、計算機300はSDRAMチップ群であるメモリ2000とそれぞれ接続されている。
 以下、計算機200の構成について説明する。
 図1に示すように、計算機200はプロセッサ210及び各種回路群で構成され、各種回路群を機能面で区別すれば、アクセス管理部220、調停部240、調停部241、入力管理部250、出力管理部260、インタフェース270、メモリ制御部280及びアクセス置換部290となる。
 プロセッサ210は、メモリに格納されたプログラムを実行することにより例えばMPEGエンコーディング処理の各種段階の処理の制御を行い、その処理に際して画像データを書き込み又は読み出すため、メモリ1000又はメモリ2000へのアクセス要求を出し、メモリアクセスを行う。即ち、プロセッサ210は、各フレーム画像に係るデータの書き込み要求、及び各マクロブロックに対応する部分画像を探すための動き探索処理のための部分画像に係るデータの読み出し要求等のアクセス要求を出力する機能を有する。なお、読み出し要求出力後、プロセッサ210は、アクセス効率のよいと判断された方のメモリからデータを読み出すことになる。ここで、アクセス要求(書き込み要求或いは読み出し要求)は、書き込み要求か読み出し要求かを識別するための属性を伴うものであり、また、アクセス対象となる画像データの左上の画像アドレス(x座標、y座標)及びサイズ(x方向の幅及びy方向の幅)を伴うものである。
 アクセス管理部220は、プロセッサ210からのアクセス要求を管理する機能、即ちアクセス要求を解析して送り先を特定してその送り先にアクセス要求を送る機能を有し、図2に示すように、アクセス解析部230、アクセス制御部221、アクセス置換部222及びアドレス特定部223を含む。
 アドレス特定部223は、2次元画像データに関して画像アドレス(x座標、y座標)に基づいて、メモリ1000用の第1の配置様式に従ってXY2次元アドレス空間におけるアドレスを特定するとともに、メモリ2000用の第2の配置様式に従ってXY2次元アドレス空間におけるアドレスを特定する機能を有する。画像フレームの左上位置を、第1の配置様式では、XY2次元アドレス空間におけるXアドレスの値16×N(Nは0以上の整数、例えば0)、Yアドレスの値32×M(Mは0以上の整数、例えば0)に対応付け、第2の配置様式では、Xアドレスの値16×N、Yアドレスの値32×M+16に対応付ける。
 アクセス置換部222は、XY2次元アドレス空間におけるアドレスを、メモリ1000における物理アドレスに変換する機能を有する。なお、このアクセス置換部222及びアドレス特定部223によるアドレスマッピングについては、後に更に詳しく説明する。
 アクセス解析部230は、プロセッサ210からのアクセス要求を解析する機能を有し、アクセス属性判定部231、アクセス分割部232及び選定部233を含む。アクセス解析部230に入力されるアクセス要求は、2次元画像データに関しては矩形画像の左上及び右下の画像アドレス(x座標、y座標)を伴うものであり、またアクセス解析部230から出力されるアクセス要求は、同一バンク同一ロウアドレスのメモリセル群に対応する描画ブロックを2次元に配置してなる論理的なXY2次元アドレス空間におけるアドレスを伴うものである。ここでは、x座標及びy座標で各画素位置が指定されるxy2次元画像データにおいて、x座標の増加する方向を右、y座標の増加する方向を下と表現する。従って矩形画像の左上は、矩形画像を構成する各画素の座標のうち最小のx座標、y座標で示される。
 アクセス属性判定部231は、アクセス要求が書き込み要求か読み出し要求かを判定する機能を有する。
 アクセス分割部232は、データの書き込みに際してメモリ1000及びメモリ2000の両方に同じデータを書き込ませるために、メモリ1000に対するアクセス要求(書き込み要求)とメモリ2000に対するアクセス要求(書き込み要求)とに分けて出力する機能を有する。
 選定部233は、読み出し要求の対象となる部分画像データを、メモリ1000とメモリ2000とのいずれから読み出す方が、アクセス効率がよいかを判断して、アクセス効率のよい方を選定する機能を有する。この判断において、アドレス特定部223により、その部分画像の第1の配置様式におけるアドレス範囲と、第2の配置様式におけるアドレス範囲とを求め、各アドレス範囲がXY2次元アドレス空間における描画ブロック境界を何個跨いでいるか、即ち、各アドレス範囲が何個の描画ブロックに跨っているかを算定し、その個数が少ない方の配置様式に対応するメモリを、アクセス効率のよいものとして選定する。
 アクセス制御部221は、アクセス解析部230の解析結果に基づき、アクセスするメモリを選択し、選択したメモリにアクセスするように制御する機能を有する。アクセス解析部230が解析した結果、アクセス要求が書き込み要求であった場合は、メモリ1000及びメモリ2000の両方へのデータの書き込みを実現すべくアクセス分割部232により2つに分けられたアクセス要求をそれぞれアクセス置換部222と出力管理部260に伝える。また、アクセス要求が読み出し要求であった場合は、アクセス要求を選定部233の選定結果に基づき、メモリ1000から読み出す場合にはアクセス置換部222に伝え、メモリ2000からデータを取得する場合には出力管理部260に伝える。
 アクセス置換部222は、メモリ1000に対する書き込み及び読み出しを行うためにXY2次元アドレス空間の論理アドレスに基づいて、従来同様の、近接する描画ブロック同士を互いに異なるバンク(SDRAMチップを異ならせることも含む)に対応付けるためのアルゴリズムにより、SDRAMに対し指定するための物理アドレスを生成する機能を有する(特許文献2参照)。
 入力管理部250は、計算機300からメモリ1000へのアクセス要求を管理する機能を有する。入力管理部250は、インタフェース270を介して送られてきたアクセス要求を受け取り、アクセス置換部290に送る。なお、アクセス置換部290はアクセス置換部222と同一の機能を有し、計算機300からのXY2次元アドレスを伴うアクセス要求に基づいて、メモリ1000に指定するための物理アドレスを生成する。
 出力管理部260は、計算機200からの計算機300へのアクセス要求を、計算機間のインタフェース整合を図るためのインタフェース270を介して計算機300に送る機能を有する。
 調停部240は、プロセッサ210からのメモリ1000に対するアクセスと計算機300からのメモリ1000に対するアクセスとの競合を調停する機能を有する。また、調停部241は、計算機300からのインタフェース270を介するアクセス要求の入力と計算機300へのインタフェース270を介するアクセス要求の出力との競合を調停する機能を有する。
 メモリ制御部280は、アクセス要求に従ってメモリ1000へのデータの書き込み又はメモリ1000からのデータの読み出しを行うために、書き込みか読み出しかの区別や物理アドレスに応じた制御信号(コマンド等)を出力することで、メモリ1000を制御する機能を有する。
 また、計算機300は、プロセッサ310、アクセス管理部320、調停部340、調停部341、入力管理部350、出力管理部360、インタフェース370、メモリ制御部380及びアクセス置換部390を備え、これらの構成要素は、上述した計算機200における対応する各部と同様の機能を有する。
 <アドレスマッピング>
 図3は、メモリ1000用の第1の配置様式によるHDフレーム画像のXY2次元アドレス空間への対応付けと、XY2次元アドレス空間とSDRAMのアドレス指定との対応付けとを表した図である。
 XY2次元アドレス空間は、同一SDRAMにおける同一バンク同一ロウアドレスで指定されるブロック(メモリセル群)に対応付けた描画ブロックを2次元に配置したものである。図3では、描画ブロックの境界を破線で示しており、また、1つのフレーム画像が割りつけられた範囲だけを示している。ここでは、水平1920画素×垂直1080画素からなるHDフレーム画像の左上がXY2次元アドレス空間のXアドレスが0でYアドレスが0の位置に対応付けられたものとしている。このとき、フレーム画像は、X方向に15個の描画ブロック、Y方向に34個の描画ブロックに割り付けられている。
 図3に破線で示した描画ブロックのうち左上のものを例にして、描画ブロック内と画素との関係を図4に示す。
 図4に示すように描画ブロックは、Xアドレスの幅が16(つまり128バイト分)、Yアドレスの幅が32であり、同一ロウアドレスでアクセスできる範囲つまり512カラムアドレスでアクセスできるものである。1カラムアドレスあたり8バイト記憶されるため、1画素1バイトというデータ構成においては、1カラムが8画素分のデータに対応する。この1つの描画ブロックに、水平128画素分、垂直32画素分のデータを配置することができる。
 図5は、メモリ2000用の第2の配置様式によるHDフレーム画像のXY2次元アドレス空間への対応付けと、XY2次元アドレス空間とSDRAMのアドレス指定との対応付けとを表した図である。この図5でも、描画ブロックの境界を破線で示しており、また、1つのフレーム画像が割りつけられた範囲だけを示している。ここでは、Y方向に16ラインのオフセットを付けて、水平1920画素×垂直1080画素からなるHDフレーム画像の左上がXY2次元アドレス空間のXアドレスが0でYアドレスが16の位置に対応付けられたものとしている。
 図3及び図5から明らかなように、第1の配置様式によりフレーム画像が割り付けられたXY2次元アドレス空間におけるアドレス範囲は、第2の配置様式によりフレーム画像が割り付けられたアドレス範囲とY方向に16つまり描画ブロックの半分だけずれている。
 フレーム画像中のある画素のデータについて、第1の配置様式で定まるXアドレスをX1、YアドレスをY1とし、第2の配置様式で定まるXアドレスをX2、YアドレスをY2とした場合、それぞれの関係は以下の式で表される。
(数式1)X2=X1
(数式2)Y2=Y1+16
 なお、画素データの2次元座標を(x0,y0)とすると、第1の配置様式で定まるXアドレスの値X1、Yアドレスの値Y1は、以下の式で表される。
(数式3)X1=int(x0/8)
(数式4)Y1=y0
 ここで、数式中のintは小数部を切り捨てて整数化することを示す。
 なお、図3及び図5には、動き探索処理の対象としてあるときに連続的にアクセスすることとなる矩形画像の例である矩形0、矩形1に対して第1の配置様式と第2の配置様式とでは異なるアドレスが対応付けられていることが表れている。
 また、図3及び図5では、XY2次元アドレス空間における各描画ブロックがアクセス置換部によってメモリのどのブロックと対応付けられるかも表している。図3及び図5における「メモリ0」、「メモリ1」は、メモリ1000及びメモリ2000の各々を構成するSDRAMチップ群の個体を区別したものである。
 <動作>
 以下、上述の構成を備えるデータ共有装置100の動作について説明する。
 図6は、計算機200のプロセッサ210による画像データのアクセスに係る動作を示すフローチャートである。
 同図に示すように、計算機200のプロセッサ210からのアクセス要求を受けてアクセス属性判定部231は、アクセス要求の属性に基づいて書き込み要求であるか読み出し要求であるかを判定する(ステップS1、S2)。
 アクセス要求が書き込み要求であった場合は、アクセス要求に係るアクセス対象となる画像データの左上の画像アドレス(x座標、y座標)及びサイズ(x方向の幅及びy方向の幅)に基づきアドレス特定部223により、第1の配置様式及び第2の配置様式により画像データのXY2次元アドレス空間における各アドレス範囲を特定し、その結果に基づいてアクセス分割部232により、第1の配置様式で定められたアドレス範囲を伴わせたメモリ1000宛てのアクセス要求と、第2の配置様式で定められたアドレス範囲を伴わせたメモリ2000(計算機300)宛てのアクセス要求とを生成してアクセス制御部221に伝達する(ステップS3)。アクセス制御部221は、メモリ1000に対するアクセス要求を、アクセス置換部222に送り、アクセス置換部222は、アクセス要求に係るXY2次元アドレス空間のアドレス範囲に基づいてメモリ1000にアクセスするための物理アドレスに変換し、調停部240及びメモリ制御部280を介してメモリ1000へのデータ書き込みの制御を行う(ステップS4)。
 また、アクセス制御部221は、メモリ2000に対するアクセス要求を、出力管理部260に送り、出力管理部260は、調停部241、インタフェース270を経由させて、計算機300にアクセス要求(書き込み要求)を送る(ステップS5)。
 ここで、ステップS5により計算機200からアクセス要求を受け取った計算機300の動作を図7に即して説明する。
 インタフェース370、調停部341を経由して送られてきたアクセス要求を受け取った計算機300の入力管理部350は(ステップS21)、アクセス要求に付随する、第2の配置様式に基づいて定められたXY2次元アドレス空間におけるアドレス範囲をアクセス置換部390に送り、アクセス置換部390はXY2次元アドレス空間におけるアドレスをメモリ2000にアクセスするための物理アドレスに変換し、調停部340及びメモリ制御部380を介して、書き込み要求か読み出し要求かの属性に応じて、メモリ2000へのデータ書き込み又はメモリ2000からのデータ読み出しの制御を行う(ステップS22)。
 また、図6のステップS2において、アクセス属性判定部231により、アクセス要求が読み出し要求であると判定された場合には、選定部233がアクセス対象のデータをメモリ1000及びメモリ2000のいずれから読み出すとアクセス効率がよいかを判断してアクセス効率がよい方を選定する選定処理を行う(ステップS6)。この選定処理については後に詳細に説明する。
 ステップS6においてアクセス効率がよいのは自機(計算機200)に接続されたメモリ1000の方、つまり第1の配置様式で配置された方であると選定された場合には(ステップS7)、アクセス解析部230は、第1の配置様式で定められたアドレス範囲を伴わせたメモリ1000宛てのアクセス要求をアクセス制御部221に伝達する。アクセス制御部221は、メモリ1000に対するアクセス要求を、アクセス置換部222に送り、アクセス置換部222は、アクセス要求に係るXY2次元アドレス空間のアドレス範囲に基づいてメモリ1000にアクセスするための物理アドレスに変換し、調停部240及びメモリ制御部280を介してメモリ1000からのデータ読み出しの制御を行う(ステップS8)。また、ステップS6において、アクセス効率がよいのは他機(計算機300)に接続されたメモリ2000の方、つまり第2の配置様式で配置された方であると選定された場合には(ステップS7)、アクセス解析部230は、第2の配置様式で定められたアドレス範囲を伴わせたメモリ2000(計算機300)宛てのアクセス要求をアクセス制御部221に伝達し、アクセス制御部221は、メモリ2000に対するアクセス要求を、出力管理部260に送り、出力管理部260は、調停部241、インタフェース270を経由させて、計算機300にアクセス要求(読み出し要求)を送る(ステップS9)。
 以下、選定処理の詳細について、図8に即して説明する。
 選定部233は、アクセス要求に付随するアクセス対象となる画像データ(以下、「部分画像」という。)の左上の画像アドレス(x座標、y座標)及びサイズを得て(ステップS31)、左上の画像アドレスとサイズとに基づいて右下の画像アドレスを算定した上で(ステップS32)、部分画像についての第1の配置様式によるXY2次元アドレス空間のXアドレス及びYアドレスの範囲を算定し、そのアドレスの範囲が跨る描画ブロックの数を算定する(ステップS33)。
 メモリ1000に対応する第1の配置様式による部分画像の左上のXY2次元アドレス空間におけるXアドレスをXaと置き、左上のYアドレスをYaと置き、右下のXアドレスをXbと置き、右下のYアドレスをYbと置くと、部分画像の左上の属する描画ブロック(BXa,BYa)、右下の属する描画ブロック(BXb,BYb)、及び、部分画像が跨る描画ブロックの数Bnは以下の数式5~9により特定することができる。
(数式5)BXa=int(Xa/16)
(数式6)BYa=int(Ya/32)
(数式7)BXb=int(Xb/16)
(数式8)BYb=int(Yb/32)
(数式9)Bn=(BXb-BXa+1)×(BYb-BYa+1)
 次に、その部分画像についての第2の配置様式によるXY2次元アドレス空間のXアドレス及びYアドレスの範囲を算定し、そのアドレス範囲が跨る描画ブロックの数を算定する(ステップS34)。この算定されるXアドレス及びYアドレスの範囲はY方向の16のオフセットによって、第1の配置様式によるものとは異なる。但し、この算定された第2の配置様式による部分画像の左上のXY2次元アドレス空間におけるXアドレスをXaと置き、左上のYアドレスをYaと置き、右下のXアドレスをXbと置き、右下のYアドレスをYbと置くと、部分画像の左上の属する描画ブロック(BXa,BYa)、右下の属する描画ブロック(BXb,BYb)、及び、部分画像が跨る描画ブロックの数Bnは、同じ数式5~9により特定することができる。
 選定部233は、ステップS33及びステップS34でそれぞれ算定した描画ブロックの数を比較して、第1の配置様式に係る描画ブロックの数の方が多かった場合は(ステップS35:YES)、第2の配置様式に対応するメモリ2000をアクセス効率のよいメモリとして選定し(ステップS37)、第1の配置様式に係る描画ブロックの数の方が多くなかった場合は(ステップS35:NO)、第1の配置様式に対応するメモリ1000をアクセス効率のよいメモリとして選定する(ステップS36)。
 <メモリアクセス動作の考察>
 データ共有装置100においては、図3及び図5に示すようにフレーム画像が記録されている場合において、計算機200或いは計算機300が、矩形0や矩形1を読み出そうとするときには、矩形の跨る描画ブロックの数が小さい方である図5の第2の配置様式で配置されたメモリ2000の方から読み出す。
 図9は、メモリ2000に対応する第2の配置様式により定まるXY2次元アドレス空間に、図5に示すように矩形0及び矩形1が配置されていた場合において、矩形0と矩形1とを連続して読み出そうとするときの、計算機300のメモリ制御部380によるメモリ2000に対する制御信号及びメモリ2000から出力されるデータ信号を示すタイムチャートである。
 計算機300のメモリ制御部380は、矩形0が含む2つのブロック(メモリセル群)、即ちメモリ0のバンク3のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックとに対して、アクティベートコマンドを発行する。次に、その2つのブロックに対してリードコマンドを発行し、画像データの読み出しを行う。なお、図9では、1カラムあたり4バイトの構成として、2バンク一組で同じブロックとして2面にアクセスして、2倍のデータを読み出す例を示している。その後、続けて、矩形0の含む2つのブロックに対してプリチャージコマンドを発行し、また、矩形1が含む2つのブロック、即ちメモリ0のバンク2のロウアドレス2のブロックと、メモリ1のバンク3のロウアドレス2のブロックとに対して、アクティベートコマンド及びリードコマンドを発行する。このように矩形0と矩形1とへの連続的なアクセスが実現される。
 ここで、上述の例と対比するために、仮に、第1の配置様式により定まるXY2次元アドレス空間に図3に示すように配置された矩形0及び矩形1を連続して読み出そうとしたとき、つまりメモリ1000の方から矩形0及び矩形1を連続して読み出そうとしたときを想定する。図10は、そのときにメモリ1000に対して出されるはずの制御信号及びメモリ1000から出力されるはずのデータ信号を示すタイムチャートである。
 計算機200におけるメモリ制御部280は、矩形0が含む4つのブロック(メモリセル群)、即ちメモリ0のバンク2のロウアドレス0のブロックと、メモリ1のバンク1のロウアドレス0のブロックと、メモリ0のバンク3のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックとに対して、アクティベートコマンドを発行する。次に、その4つのブロックに対してリードコマンドを発行し、画像データの読み出しを行う。その後、矩形0の含む4つのブロックに対してプリチャージコマンドを発行し、また、矩形1が含む4つのブロック、即ちメモリ0のバンク1のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックと、メモリ0のバンク2のロウアドレス2のブロックと、メモリ1のバンク3のロウアドレス2のブロックに対して、アクティベートコマンドを発行したいが、このとき、矩形0は、メモリ0、バンク2、ロウ0のブロックを含んでおり、矩形1はメモリ0、バンク2、ロウ2のブロックを含んでいるため、同一バンク異なるロウアドレスの描画ブロックへのアクセスとなり、SDRAMの特性(インターバル制約)により一定期間待たなければコマンドを発行できない。そのため、一定期間経過後に、矩形0に係る各ブロックに対してプリチャージコマンド、矩形1に含まれる各ブロックに対してアクティベートコマンド及びリードコマンドを発行することになり、一定期間の間は、他のプロセッサからのアクセス要求であっても、メモリ0、バンク2のどのブロックにもアクセスできず、アクセス効率の悪い状態になる。
 データ共有装置100においては、仮定した図10に示す制御信号ではなく、図9に示すように制御信号を発行しているため、無駄なメモリ帯域が生じることが抑制され、アクセス効率を向上させることができる。
 <補足>
 以上、本発明に係るデータ処理装置の一例としてデータ共有装置の実施形態を説明したが、例示した装置を以下のように変形することも可能であり、本発明に係るデータ処理装置が上述の実施形態で示した通りのデータ共有装置に限られないことは勿論である。
 (1)上記実施形態では、データ共有装置が、計算機2台で構成され、画像データを共有している例を示したが、計算機の数は3台以上であってもよく、画像データ以外に文字その他のデータを共有してもよい。また、例えば、それぞれが専用メモリを有しバスで接続された3台の計算機A、B、Cのうち計算機Aと計算機BとはデータDを共有し、計算機Aと計算機CとはデータEを共有するような構成であってもよく、この場合、各計算機は他の計算機と共有しているデータを更新する場合にそのデータの識別子及び更新データをバスを通じて他の計算機に伝え、また、バスを通じて伝えられたデータの識別子が自計算機の共有するものであればその更新データを自計算機の専用メモリに取り込むようにしてもよい。なお、3台の計算機で構成されるデータ共有装置の例を図11に示す。図11中、アクセス管理部400は、上述したアクセス管理部220と同様の機能を有し、また調停部410は、アクセス管理部220とアクセス管理部400とから出力されるアクセス要求の競合を調停するものである。アクセス管理部400を有することで、計算機は、他の計算機から例えば画像アドレスの指定を受けて、メモリ中の画像データへのアクセスを実現することができる。更に、各計算機は、画像処理等の特定処理を専門に行うデコーダー等の処理エンジン回路を備え、アクセス管理部が、メモリの他にアクセス要求の送出先として処理エンジン回路を選択することとしてもよい。
 なお、各計算機は、自計算機の専用メモリにおけるデータの配置についての1つの配置様式のみに係るアリゴリズムや処理機構のみを実装し、他計算機からデータの指定或いはその論理アドレスや画像座標等の指定を受信して、その指定に基づいて自計算機における配置様式でメモリに配置した場合にアクセスすべきメモリのブロック数を返信することとし、また、他計算機から返信されたブロック数と自計算機における配置様式でのブロック数との比較からどちらの計算機の専用メモリにアクセスすると効率がよいかを判断することとしてもよい。なお、このためには、各計算機が定める配置様式は計算機毎に、メモリのブロック境界からのずれ量の点で異なる必要がある。
 (2)上記実施形態では、データ処理装置の一例として、プロセッサを含み1つのメモリと接続される計算機2台で構成されるデータ共有装置を示したが、プロセッサ及びメモリの数は、これ以外でもよい。データ処理装置は、少なくとも1つのプロセッサと複数のメモリ領域とがあればよく、同一データを配置する場合にメモリのブロック(同一バンク同一ロウアドレスに対応するメモリセル群)の境界との相対位置関係を配置様式間で相互に異ならせるような複数の配置様式でデータを配置する複数のメモリ領域を定めてもよい。例えば、1つのプロセッサが、フレーム画像等のデータを、あるメモリ領域に配置し、それと同一のフレーム画像等の同一のデータを、メモリのブロック境界との位置関係を変えて別のメモリ領域に配置し、読み出すべき一部のデータについてブロック境界を跨ぐ数の少ない方のメモリ領域から読み出すようにしてもよい。
 (3)上記実施形態で示したメモリ数、バンク数、カラム数、ライン数等の値は、例示であり、他の値であってもよい。また、上記実施形態では描画ブロックのサイズは水平16カラム(128バイト)×垂直32ラインとしたが、メモリのカラムアドレスの数、データ信号線の数等に応じて変更してよい。また、上記実施形態では、1画素データが1バイトであることとしたが、これに限られない。この1画素データは、輝度(Y)成分、或いは色差(Cb、Cr)成分それぞれであってもよい。
 (4)上記実施形態では、2つの互いに異なる配置様式として、2次元アドレス空間に一方はオフセットを付加せずデータを配置し、他方はY方向にオフセットを16付加してデータを配置したが、これに限らない。あるフレーム画像データの各部分への連続アクセスを効率的にする必要がある場合においては、そのフレーム画像データのうちの1つの部分的な画像データにアクセスするために2つの互いに異なる配置様式のうち一方で配置されたメモリ領域にアクセスすることが、より効率的であるときに、その2つの互いに異なる配置様式のうち他方で配置されたメモリ領域にアクセスすることがより効率的となるところの1以上の部分的な画像データも存在し得るように、これらの配置様式は定められる必要がある。なお、連続してアクセスする部分的な画像データのY方向の幅が定まっている場合にはその幅より大きいY方向オフセットであることが好ましい。X方向についても同様である。
 また、アクセス対象のデータのアドレス範囲が含むブロック数が互いに異なるように複数の配置様式を定めればよく、例えば、2次元アドレス空間において配置様式毎のオフセットの差が水平方向(X方向)にのみ現れるようにしてもよいし(図11(a)及び(b)参照)、垂直方向(Y方向)及び水平方向(X方向)の両方に現れるようにしてもよい(図11(c)及び(d)参照)。
 また、配置様式毎に、描画ブロックの水平方向及び垂直方向の幅を異ならせることとしてもよい(図11(e)及び(f)参照)。例えば、2つの配置様式における一方の配置様式において図4で示した水平16カラム(128バイト)×垂直32ラインの描画ブロックを用いて、他方では水平8カラム(64バイト)×垂直64ラインの描画ブロックを用いることとしてもよい。
 (5)上記実施形態では、MPEGエンコーディング処理の一過程におけるメモリアクセスについて説明したが、メモリアクセスのための処理内容はこれに限定されることはなく、エンコードであってもデコードであっても、H.264/MPEG AVCの処理であってもその他のデータ暗号化、復号等の処理であってもよい。
 (6)上記実施形態では、フレーム画像をマッピングするアドレスは2次元アドレス空間としたが、一次元の一般的なアドレス空間としてもよい。但し、2次元画像の配置に2次元アドレス空間を用いることは有用である。なお、文字列その他のデータ、或いは画像データの配置に、一次元のアドレスで定まるアドレス空間を用いることとした場合においては、SDRAMの同一バンクの同一ロウアドレスでアクセスできるメモリセル群に格納できるデータ量を単位としたその単位毎の境界アドレスからのオフセット(相対位置)が、第1の配置様式と第2の配置様式とで異なるようにすればよい。例えば、その単位が4キロバイトであり、第1の配置様式と第2の配置様式とが同じ論理アドレス空間の異なるアドレス範囲のメモリ領域へのデータの配置(論理アドレス)を定めるものとすれば、同じデータが配置される2つの領域の先頭アドレスの差が4000Hの倍数以外であればよい。
 なお、上記実施形態で示したメモリ1000及びメモリ2000に1つの論理アドレス空間における異なるアドレス範囲を対応付けることとしてもよい。
 (7)上記実施形態で図5により示した第2の配置様式によるアドレスマッピングにおいて、フレーム画像中で垂直方向最下段の描画ブロック(0,34)~(14,34)に割り付けられた部分は、垂直方向最上段の描画ブロック(0,0)~(14,0)における空き領域に割り付けることとしてもよい。
 (8)上記実施形態では、画像アドレス(画像座標)から、メモリのブロックと対応付けて定められたところの2次元アドレス空間のアドレスを定める段階で相互に異なる2つの配置様式を用いることとしたが、例えば、データの論理アドレスから、直接メモリのバンク、ロウアドレス、カラムアドレス等のアドレス指定を定める段階において、論理アドレスとロウアドレスとの関係が配置様式の相互で異なるように2つの配置様式を定めることとしてもよい。
 (9)1つのプロセッサが、計算機200の機能の全部又は一部を制御プログラムの実行により実現してもよい。この制御プログラムは、機械語或いは高級言語のプログラムコードからなり、記録媒体に記録され、又は各種通信路等を介して流通させ頒布されるものであってもよい。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより上記実施形態で示したような機能が実現されるようになる。なお、プロセッサは、制御プログラムを直接実行する他、コンパイルして実行或いはインタプリタにより実行してもよい。
 (10)上記実施形態で示したデータ共有装置100、その一部の計算機を、IC、LSIその他の集積回路のパッケージとして構成してもよい。また、メモリもこの集積回路のパッケージに含ませてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、上記実施形態で示したような各機能を実現するようになる。
 (11)上述の各変形例を組み合せて適用してもよい。
 以下、更に本発明の一実施形態としてのデータ処理装置の構成及びその変形例、並びにデータ処理システムと、これらの効果とについて説明する。
 (a)本発明の一実施形態に係るデータ処理装置は、図13に示すように、複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであることを特徴とする。ここで、連続アクセス可能なブロックは、例えばSDRAMにおいてコマンド発行制約によって一定時間待たされることなく連続的にアクセスできる、同一バンクの同一ロウアドレスを有するメモリセル群のような、メモリにおいてバースト転送機能等によって連続的にアクセスし得る単位領域である。アクセス効率については、例えば、各配置様式でアドレスマッピングされた結果として、連続してアクセスできる何個のメモリ領域に跨って配置されたかというメモリ領域数の少ない方が、アクセス効率のよい配置様式になる。また、マッピング手段11は例えば上述のアドレス特定部223等に相当し、選定手段12は例えば上述の選定部233等に相当し、アクセス制御手段13は例えば上述のアクセス制御部221、アクセス置換部222、メモリ制御部280等に相当する。なお、このデータ処理装置をLSIその他の集積回路として構成してもよい。
 このデータ処理装置によれば、同一のアドレスマッピングで重複的に記録されているのではなく、複数の異なるアドレスマッピングに基づき重複的に記録されている画像或いは文字その他のデータを逐次読出し処理する過程で、アクセス効率のよい1つのアドレスマッピングの方で配置されたデータの方を選択してアクセスするので、全体としても効率のよいメモリアクセスを実現し得るようになる。
 (b)前記処理対象データはx座標及びy座標で表される2次元画像データであり、前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものであるとしてもよい。これにより、MPEGエンコーディング処理のような、フレーム画像群について部分画像であるマクロブロック単位に類似するものを探索する所謂動き探索処理を行う場合におけるメモリアクセス効率を高めることができるようになる。
 (c)前記描画ブロックに対応するメモリにおける前記ブロックは、同一バンクで同一ロウアドレスを有するメモリセル群であるとしてもよい。このデータ処理装置によれば、同一バンクの異なるロウアドレスで示される領域への連続的なアクセスを低減することができる。
 (d)前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定するとしてもよい。これにより、簡単な構成でアクセス効率を判断することができる。
 (e)前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってy座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたYアドレスとの差が、前記y座標の幅に対応するYアドレスの幅より大きくなるようにYアドレスを定めるものであることとしてもよい。これにより、部分画像の逐次読出し処理に際して、いずれかの配置様式を選択すれば部分画像がアドレス空間における描画ブロックのY方向のアドレス境界を跨がないでアドレスマッピングされることになるため、その選択した配置様式によってアクセスすることで、アクセス効率を高めることができるようになる。
 (f)前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってx座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたXアドレスとの差が、前記x座標の幅に対応するXアドレスの幅より大きくなるようにXアドレスを定めるものであることとしてもよい。これにより、部分画像の逐次読出し処理に際して、いずれかの配置様式を選択すれば部分画像がアドレス空間における描画ブロックのX方向のアドレス境界を跨がないでアドレスマッピングされることになるため、その選択した配置様式によってアクセスすることで、アクセス効率を高めることができるようになる。
 (g)前記第1及び第2の配置様式は、メモリにおける同一バンクで同一ロウアドレスを有する全てのメモリセル群に1対1に前記描画ブロックを対応付けており、第2の配置様式は、XY2次元アドレス空間における描画ブロックのX方向の幅及びY方向の幅のいずれもが、第1の配置様式とは異なるように対応付けていることとしてもよい。メモリにおける連続アクセス可能なブロックに対応付けたアドレス空間における矩形の描画ブロックの形状が異なるため、メモリのそのブロックに対する2次元画像のメモリ配置がそれぞれの配置様式で異なるものとなり、アクセス効率がよい一方を選択できるため、全体として効率のよいメモリアクセスを実現できるようになる。
 (h)データ処理装置は、前記メモリと、前記処理対象データを、前記第1及び第2の配置様式により前記マッピング手段により定められた各アドレスに対応した、前記メモリ中の、別々のメモリ領域に書き込む記録手段とを、更に備えることとしてもよい。この構成により、データ処理装置内でデータの読み書きの両方が実現されるようになる。
 (i)前記処理対象データは、フレーム画像であり、前記データ処理装置は、前記フレーム画像中の複数の位置それぞれに存在する複数の部分データを逐次読み出す処理を行うものであり、前記フレーム画像における、読み出し対象となる部分データの位置に応じて、前記第1及び第2の配置様式のうち、前記第1の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データと、前記第2の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データとが存在することになるように、前記第1及び第2の配置様式が定められていることとしてもよい。これにより、例えば、所謂動き探索処理等によりフレーム画像中の様々な位置の部分画像(部分データ)に逐次アクセスする必要がある場合において、アクセス効率の良い方のメモリ領域にアクセスすることができる。なお、この結果として、同一内容のフレーム画像が記録された2つのメモリ領域のうち一方だけにしかアクセスがなされないのではなく、その2つのメモリ領域に対して逐次選択的にアクセスがなされることとなる。
 (j)本発明の一実施形態に係るデータ共有システムは、図14に示すように、第1メモリ及び第2メモリと、各メモリに格納された処理対象データにアクセスする第1のデータ処理装置31及び第2のデータ処理装置41とを含むデータ共有システム30であって、前記各データ処理装置は、前記処理対象データを、前記第1メモリ35に配置するためのアドレスを前記第1の配置様式を用いて定め、前記第2メモリ45に配置するためのアドレスを前記第2の配置様式を用いて定めるマッピング手段32(42)と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段33(43)と、前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段34(44)とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、前記アクセス制御手段は、自己以外の他のデータ処理装置に接続されたメモリにアクセスするときは当該他のデータ処理装置を介してそのアクセスを実現するよう制御することを特徴とする。プロセッサ毎にメモリが接続されたマルチプロセッサで構成されたデータ共有システムにおいて、効率のよいメモリアクセスが実現できるようになる。
 本発明に係るデータ処理装置は、効率のよいメモリアクセスを実現し得るので、SDRAMを用いて動画、静止画等のデータを処理する装置等として有用である。
 10、31、41 データ処理装置
 11、32、42 マッピング手段
 12、33、43 選定手段
 13、34、44 アクセス制御手段
 20、1000、2000 メモリ
 30 データ共有システム
 35 第1メモリ
 45 第2メモリ
 100 データ共有装置
 200、300 計算機
 210、310 プロセッサ
 220、320、400 アクセス管理部
 221 アクセス制御部
 222 アクセス置換部
 223 アドレス特定部
 230 アクセス解析部
 231 アクセス属性判定部
 232 アクセス分割部
 233 選定部
 240、241、340、341、410 調停部
 250、350 入力管理部
 260、360 出力管理部
 270、370 インタフェース
 280、380 メモリ制御部
 290、390 アクセス置換部

Claims (15)

  1.  複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、
     前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、
     処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、
     前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、
     前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものである
     ことを特徴とするデータ処理装置。
  2.  前記処理対象データはx座標及びy座標で表される2次元画像データであり、
     前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものである
     ことを特徴とする請求項1記載のデータ処理装置。
  3.  前記描画ブロックに対応するメモリにおける前記ブロックは、同一バンクで同一ロウアドレスを有するメモリセル群である
     ことを特徴とする請求項2記載のデータ処理装置。
  4.  前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定する
     ことを特徴とする請求項3記載のデータ処理装置。
  5.  前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってy座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、
     前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたYアドレスとの差が、前記y座標の幅に対応するYアドレスの幅より大きくなるようにYアドレスを定めるものである
     ことを特徴とする請求項4記載のデータ処理装置。
  6.  前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってx座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、
     前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたXアドレスとの差が、前記x座標の幅に対応するXアドレスの幅より大きくなるようにXアドレスを定めるものである
     ことを特徴とする請求項4記載のデータ処理装置。
  7.  前記第1及び第2の配置様式は、メモリにおける同一バンクで同一ロウアドレスを有する全てのメモリセル群に1対1に前記描画ブロックを対応付けており、第2の配置様式は、XY2次元アドレス空間における描画ブロックのX方向の幅及びY方向の幅のいずれもが、第1の配置様式とは異なるように対応付けている
     ことを特徴とする請求項4記載のデータ処理装置。
  8.  前記メモリと、
     前記処理対象データを、前記第1及び第2の配置様式により前記マッピング手段により定められた各アドレスに対応した、前記メモリ中の、別々のメモリ領域に書き込む記録手段とを、更に備える
     ことを特徴とする請求項4記載のデータ処理装置。
  9.  前記処理対象データは、フレーム画像であり、
     前記データ処理装置は、前記フレーム画像中の複数の位置それぞれに存在する複数の部分データを逐次読み出す処理を行うものであり、
     前記フレーム画像における、読み出し対象となる部分データの位置に応じて、前記第1及び第2の配置様式のうち、前記第1の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データと、前記第2の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データとが存在することになるように、前記第1及び第2の配置様式が定められている
     ことを特徴とする請求項1記載のデータ処理装置。
  10.  複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、
     前記処理対象データは、複数の配置様式それぞれにより、アドレス空間において当該処理対象データの配置されるアドレス範囲と前記ブロック各々の境界アドレスとの相対位置関係が配置様式毎に互い異なるようにアドレスマッピングされており、
     前記データ処理装置は、処理対象データ中の部分データを読み出すときに、アドレスマッピングされた当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段とを備える
     ことを特徴とするデータ処理装置。
  11.  第1メモリ及び第2メモリと、各メモリに格納された処理対象データにアクセスする第1及び第2のデータ処理装置とを含むデータ共有システムであって、
     前記各データ処理装置は、
     前記処理対象データを、前記第1メモリに配置するためのアドレスを前記第1の配置様式を用いて定め、前記第2メモリに配置するためのアドレスを前記第2の配置様式を用いて定めるマッピング手段と、
     処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、
     前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段とを備え、
     前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、
     前記アクセス制御手段は、自装置以外の他のデータ処理装置に接続されたメモリにアクセスするときは当該他のデータ処理装置を介してそのアクセスを実現するよう制御する
     ことを特徴とするデータ共有システム。
  12.  前記処理対象データはx座標及びy座標で表される2次元画像データであり、
     前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものである
     ことを特徴とする請求項11記載のデータ共有システム。
  13.  前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定する
     ことを特徴とする請求項12記載のデータ共有システム。
  14.  複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置におけるデータ処理方法であって、
     前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピングステップと、
     処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定ステップと、
     前記部分データへのアクセスを、前記選定ステップにより選定された配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御ステップとを含み、
     前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものである
     ことを特徴とするデータ処理方法。
  15.  複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスする機能を有する集積回路であって、
     前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング部と、
     処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定部と、
     前記部分データへのアクセスを、前記選定部の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御部とを含み、
     前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものである
     ことを特徴とする集積回路。
PCT/JP2012/000898 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム WO2012124251A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012534484A JP5884037B2 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム
US13/522,397 US9201781B2 (en) 2011-03-16 2012-02-10 Data processing apparatus, data processing method and data sharing system
CN201280000661.3A CN102804150B (zh) 2011-03-16 2012-02-10 数据处理装置、数据处理方法及数据共享系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011057643 2011-03-16
JP2011-057643 2011-03-16

Publications (1)

Publication Number Publication Date
WO2012124251A1 true WO2012124251A1 (ja) 2012-09-20

Family

ID=46830346

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/000898 WO2012124251A1 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム

Country Status (4)

Country Link
US (1) US9201781B2 (ja)
JP (1) JP5884037B2 (ja)
CN (1) CN102804150B (ja)
WO (1) WO2012124251A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016063716A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037835B1 (en) * 2013-10-24 2015-05-19 Arm Limited Data processing method and apparatus for prefetching
US10380969B2 (en) * 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
EP3693861B1 (en) * 2019-02-06 2022-08-24 Advanced Digital Broadcast S.A. System and method for reducing memory fragmentation in a device lacking graphics memory management unit
US11210221B2 (en) * 2019-12-10 2021-12-28 Pony Ai Inc. Memory architecture for efficient spatial-temporal data storage and access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128241A (ja) * 1991-11-05 1993-05-25 Matsushita Electric Ind Co Ltd 画像処理装置
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置
WO2007116612A1 (ja) * 2006-03-31 2007-10-18 Matsushita Electric Industrial Co., Ltd. コマンド出力制御装置
WO2010086919A1 (ja) * 2009-01-27 2010-08-05 パナソニック株式会社 メモリアクセス装置およびその関連技術
JP2011039660A (ja) * 2009-08-07 2011-02-24 Fujitsu Ltd メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965751A (en) * 1987-08-18 1990-10-23 Hewlett-Packard Company Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size
US6215507B1 (en) * 1998-06-01 2001-04-10 Texas Instruments Incorporated Display system with interleaved pixel address
US6674443B1 (en) * 1999-12-30 2004-01-06 Stmicroelectronics, Inc. Memory system for accelerating graphics operations within an electronic device
US6816165B1 (en) * 2000-12-13 2004-11-09 Micron Technology, Inc. Memory system having multiple address allocation formats and method for use thereof
US6956579B1 (en) * 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
JP4069078B2 (ja) 2004-01-07 2008-03-26 松下電器産業株式会社 Dram制御装置およびdram制御方法
WO2009116279A1 (ja) 2008-03-19 2009-09-24 パナソニック株式会社 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128241A (ja) * 1991-11-05 1993-05-25 Matsushita Electric Ind Co Ltd 画像処理装置
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置
WO2007116612A1 (ja) * 2006-03-31 2007-10-18 Matsushita Electric Industrial Co., Ltd. コマンド出力制御装置
WO2010086919A1 (ja) * 2009-01-27 2010-08-05 パナソニック株式会社 メモリアクセス装置およびその関連技術
JP2011039660A (ja) * 2009-08-07 2011-02-24 Fujitsu Ltd メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016063716A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Also Published As

Publication number Publication date
CN102804150B (zh) 2016-01-20
US9201781B2 (en) 2015-12-01
US20130057770A1 (en) 2013-03-07
CN102804150A (zh) 2012-11-28
JPWO2012124251A1 (ja) 2014-07-17
JP5884037B2 (ja) 2016-03-15

Similar Documents

Publication Publication Date Title
JP5884037B2 (ja) データ処理装置、データ処理方法及びデータ共有システム
US9934153B2 (en) Patch memory system
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
KR101639574B1 (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
JP3639464B2 (ja) 情報処理システム
JP5039334B2 (ja) キャッシュメモリ制御方法、及び装置
US6999091B2 (en) Dual memory channel interleaving for graphics and video
US20070076511A1 (en) Method and apparatus for mapping memory
CN101084493A (zh) 在帧缓冲器内读取和写入像素分配子帧的方法和装置
CN116010299B (zh) 一种数据处理方法、装置、设备及可读存储介质
US20070229507A1 (en) Data processor with a built-in memory
JP3619565B2 (ja) データ処理装置、及びそれを用いたシステム
JPWO2009116115A1 (ja) メモリコントローラ及びそれを使用したメモリシステム
US8612664B2 (en) Memory management process and apparatus for the same
JP3955862B2 (ja) データ処理装置、及びそれを用いたシステム
JP5865696B2 (ja) 画像処理装置
US20170140501A1 (en) Method of operating virtual address generator and method of operating system including the same
JP6210742B2 (ja) データ処理装置およびデータ転送制御装置
US8264496B2 (en) Data management for image processing
KR101335367B1 (ko) 메모리 제어 장치 및 방법
US20140306977A1 (en) Image processing apparatus, image processing method, image processing system, and computer readable storage medium
JP2008278442A (ja) 画像処理装置
KR20240008487A (ko) 메모리 부하 밸런싱을 고려한 적응형 이미지 사이즈 패딩 장치 및 방법
TW200407036A (en) Character pattern data structure for raster scanning type display, method of screen image information generation, and the generator thereof

Legal Events

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

Ref document number: 201280000661.3

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 13522397

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2012534484

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 12757388

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12757388

Country of ref document: EP

Kind code of ref document: A1