WO2017216840A1 - メモリアクセス制御装置、画像処理装置、および撮像装置 - Google Patents

メモリアクセス制御装置、画像処理装置、および撮像装置 Download PDF

Info

Publication number
WO2017216840A1
WO2017216840A1 PCT/JP2016/067527 JP2016067527W WO2017216840A1 WO 2017216840 A1 WO2017216840 A1 WO 2017216840A1 JP 2016067527 W JP2016067527 W JP 2016067527W WO 2017216840 A1 WO2017216840 A1 WO 2017216840A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
dma
access
bus master
bank
Prior art date
Application number
PCT/JP2016/067527
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 PCT/JP2016/067527 priority Critical patent/WO2017216840A1/ja
Priority to JP2018523052A priority patent/JP6676162B2/ja
Publication of WO2017216840A1 publication Critical patent/WO2017216840A1/ja
Priority to US16/190,799 priority patent/US20190079881A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Definitions

  • the present invention relates to a memory access control device, an image processing device, and an imaging device.
  • an image processing apparatus such as a system LSI.
  • system LSIs such as an image processing device mounted on an imaging device, a plurality of built-in processing blocks (hereinafter referred to as “bus master”) share a single connected DRAM (Dynamic Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • each of a plurality of built-in bus masters is connected to a data bus inside the system LSI, and each bus master accesses the DRAM by DMA (Direct Memory Access) transfer.
  • DMA Direct Memory Access
  • each bus master outputs an access request (DMA request) to the DRAM and information (access information) related to access to the DRAM such as an address and an access direction (write or read).
  • the system LSI also includes a DMA arbitration circuit (hereinafter referred to as “arbiter”) that arbitrates DMA requests issued from each of a plurality of built-in bus masters.
  • the arbiter controls the actual access to the DRAM while appropriately arbitrating the DMA request issued from each bus master.
  • the arbiter In the arbitration of the DMA request by the arbiter, it is required to arbitrate the DMA request from each bus master so as to satisfy the performance as a system. Therefore, the arbiter basically selects and accepts a DMA request that maximizes the efficiency of access to the DRAM from among the DMA requests issued by each bus master.
  • a normal DRAM has various restrictions when accessed.
  • One limitation is that a bank that has been accessed once (for example, corresponding to the lower bits of the address) is in a bank busy state. There is something.
  • Another limitation is that the access direction of the DRAM is switched, that is, the read access for reading the data stored in the DRAM is switched to the write access for writing and storing the data in the DRAM, and vice versa. In some cases, switching to read access requires a certain read / write switching time. When accessing the DRAM, the access efficiency to the DRAM is lowered unless the access that avoids the above-described restrictions is performed.
  • the arbiter determines the DMA request from the access information in the DMA request currently issued by each bus master, the priority of each bus master, and the current state of the DRAM (bank busy state, read access or write access state). Decide which bus master to accept. More specifically, the arbiter prioritizes efficient access to the DRAM, and has a higher priority among the DMA requests issued from the respective bus masters, and the access direction (read or write) to the DRAM.
  • the bus master that accesses the bank that is the same and is not in the bank busy state is determined as the bus master that receives the DMA request.
  • the imaging apparatus has a function that requires real-time properties, such as photographing a subject and displaying a display image for confirming the subject to be photographed, that is, a so-called live view image (through image).
  • a DMA request issued by a bus master for realizing a function that requires real-time performance is waited, the operation of the imaging apparatus as a system will fail.
  • the priority of the bus master for realizing the function requiring real-time property is set high, and the arbiter preferentially issues the DMA request issued by the bus master with high priority requiring real-time property. I accept it.
  • some bus masters with high priority provided in the imaging apparatus continuously access a plurality of banks. In such a bus master, a bank interleaving method is used to sequentially access different banks, that is, the same bank is not continuously accessed.
  • a bus master having a high priority issues a DMA request
  • a DMA request issued by another bus master having a low priority a DMA request in which the access direction to the DRAM is reversed, or the same bank
  • a DMA request for accessing the file requires a considerable time until it is accepted.
  • the bus master has a low priority, if the frequency at which issued DMA requests are accepted is significantly reduced, the operation of the imaging apparatus as a system may fail.
  • Patent Document 1 a technique of a memory control device as disclosed in Patent Document 1 is disclosed.
  • an access request to a bank in a busy state is masked, and the access request is accepted at least every predetermined period by releasing the mask after a predetermined time has elapsed since the access request was issued.
  • an arbiter DMA arbitration circuit
  • Patent Document 1 discloses a so-called round-robin operation in which the priority of a bus master from which an access request is accepted is the lowest, and an access request having the same access direction as the currently accepted access request. It is also disclosed to increase the priority of.
  • the memory control device of the technique disclosed in Patent Document 1 can prevent continuous access to the same bank and increase the efficiency of access to the DRAM.
  • Patent Document 1 can increase the efficiency of access to the DRAM at the time of arbitrating the access request, the access is made by the access request with the mask removed depending on the timing of releasing the mask.
  • bank conflict There may be a so-called bank conflict in which the bank is the same bank as the bank that is currently accessed by the bus master with the higher priority or the bank that is accessed next.
  • the access request mask issued is the access request issued by each bus master at the time of arbitrating the access request, that is, the access information in the DMA request, This is because, based on the current bank busy state in the DRAM, it is not considered in what bank order each bus master accesses the DRAM.
  • the high-priority bus master is always in the bank busy state. Until the process is completed, the acceptance of the access request is awaited.
  • the present invention has been made on the basis of the above-mentioned problem recognition, and provides a memory access control device, an image processing device, and an imaging device capable of increasing the efficiency of access to a DRAM shared by a plurality of processing blocks. It is an object.
  • a memory access control device includes: a plurality of bus masters that output an access request for requesting access to a memory whose address space is divided into a plurality of banks; and the memory is connected. Arbitrates the access request output from each of the bus masters, acquires information on an arbiter that controls access to the memory according to the accepted access request, and a plurality of access requests accepted by the arbiter.
  • a request acceptance history acquisition unit that stores each request acceptance history information stored therein as request acceptance history information, and at least one of the plurality of bus masters having a high priority is given high priority.
  • the high priority bus master When accessing the plurality of banks in the memory continuously, the request acceptance history information is referred to, the order of the banks specified by the access requests is determined, and the banks are specified in the determined order. The access request to be output is output.
  • the request reception history acquisition unit includes at least information on the bank specified in the access request and access to the memory.
  • the request acceptance history information associated with information indicating a direction is stored for each of the access requests accepted by the arbiter, and the high priority bus master stores information on the bank included in the request acceptance history information. Based on the above, the order of the banks specified by the respective access requests may be determined so as to avoid access to the same bank within a predetermined time.
  • the request reception history acquisition unit further acquires information indicating a timing at which the access request is received by the arbiter.
  • Information indicating the acquired timing may be associated with the corresponding request reception history information and stored as the request reception history information.
  • the request reception history acquisition unit has a predetermined number retroactive from the access request last received by the arbiter, Or you may memorize
  • the request acceptance history acquisition unit sets a period for storing the request acceptance history information based on the predetermined time. May be.
  • the high-priority bus master specifies the bank specified by each access request.
  • a request acceptance mask signal for instructing a mask for accepting the access request input from another bus master is output during a period from the start of the process for determining the order of the access to the first output of the access request.
  • the arbiter may mask the access request input from the bus master other than the high priority bus master according to the request acceptance mask signal.
  • the arbiter further performs another access during the period when the access request is output from the high priority bus master.
  • the access request input from the bus master may be masked.
  • an image processing apparatus is connected to a plurality of bus masters that output an access request for requesting access to a memory whose address space is divided into a plurality of banks, Arbitrates the access requests output from each of the bus masters, acquires an arbiter that controls access to the memory in response to the received access request, and information on the plurality of access requests received by the arbiter.
  • a request reception history acquisition unit that stores the request reception history information as a request reception history information and outputs each of the stored request reception history information, and among the plurality of bus masters, at least one of the bus masters having a high priority is a high priority bus master
  • the high priority bus master is the memory When accessing a plurality of the banks continuously, refer to the request acceptance history information, determine the order of the banks specified by each of the access requests, and specify the banks in the determined order A memory access control device for outputting a request.
  • an imaging apparatus includes: a plurality of bus masters that output an access request for requesting access to a memory whose address space is divided into a plurality of banks; and the memory is connected; Arbitrates the access requests output from each of the arbiters, controls the access to the memory according to the received access requests, and obtains information on the plurality of access requests received by the arbiters.
  • a request reception history acquisition unit that stores each of the stored request reception history information as reception history information, and among the plurality of bus masters, at least one of the bus masters having a high priority is a high priority bus master.
  • the high-priority bus master The access request for referring to the request acceptance history information to determine the order of the banks specified by each access request and specifying the banks in the determined order when accessing the bank continuously
  • An image processing device including a memory access control device for outputting
  • 1 is a block diagram illustrating a schematic configuration of an imaging apparatus equipped with an image processing apparatus including a memory access control device according to a first embodiment of the present invention.
  • 1 is a block diagram illustrating a schematic configuration of a memory access control device according to a first embodiment of the present invention. It is the block diagram which showed schematic structure of the DMA bus arbitration part which comprises the memory access control apparatus in the 1st Embodiment of this invention. It is the figure which showed typically an example of the structure of the request reception log
  • 1 is a block diagram showing a schematic configuration of a bus master constituting a memory access control device in a first embodiment of the present invention.
  • FIG. 1 is a block diagram illustrating a schematic configuration of an imaging apparatus equipped with an image processing apparatus including a memory access control apparatus according to the first embodiment of the present invention.
  • the image processing apparatus 20 includes an imaging interface unit 221, an image processing unit 222, a moving image codec unit 223, a display interface unit 224, and a DMA (Direct Memory Access) bus arbitration unit 230.
  • the imaging interface unit 221, the image processing unit 222, the moving image codec unit 223, the display interface unit 224, and the DMA bus arbitration unit 230 are connected to the DMA bus 210 that is a common data bus. It is connected.
  • the configuration of the imaging interface unit 221 or the display interface unit 224 and the DMA bus arbitration unit 230 corresponds to the memory access control apparatus of the present invention.
  • the imaging device 1 captures a still image or a moving image of a subject by the image sensor 10. Then, the imaging device 1 causes the display device 40 to display a display image corresponding to the captured still image. Further, the imaging device 1 causes the display device 40 to display a display image corresponding to the captured moving image. Note that the imaging apparatus 1 can also record a recorded image corresponding to the captured still image or moving image on a recording medium (not shown).
  • the image sensor 10 is a solid-state imaging device that photoelectrically converts an optical image of a subject formed by a lens (not shown) provided in the imaging device 1.
  • the image sensor 10 is a solid-state imaging device typified by a CCD (Charge Coupled Device) image sensor or a CMOS (Complementary Metal-Oxide Semiconductor: Complementary Metal Oxide Semiconductor) image sensor.
  • the image sensor 10 outputs a pixel signal corresponding to the captured optical image of the subject to the imaging interface unit 221 provided in the image processing apparatus 20.
  • the DRAM 30 is a memory (data storage unit) that stores various data processed by the image processing device 20 provided in the imaging device 1.
  • the DRAM 30 is connected to the DMA bus 210 via a DMA bus arbitration unit 230 provided in the image processing apparatus 20.
  • the DRAM 30 stores image data of each processing stage in the image processing apparatus 20.
  • the DRAM 30 stores pixel data output from the imaging interface unit 221 based on the pixel signal output from the image sensor 10.
  • the DRAM 30 includes data of an image (still image or display image) generated by the image processing unit 222 included in the image processing device 20, and an image (moving image) generated by the moving image codec unit 223 included in the image processing device 20. And display image data).
  • the DRAM 30 also stores recorded image data generated by the image processing unit 222 and the moving image codec unit 223 included in the image processing apparatus 20.
  • the display device 40 is a display device that displays a display image output from the display interface unit 224 provided in the image processing device 20.
  • the display device 40 includes various display devices having different display image sizes, that is, the number of pixels.
  • the display device 40 includes a TFT (Thin Film Transistor) liquid crystal display (LCD: Liquid Crystal Display) or an EVF (Electronic View Finder) that displays a VGA (640 ⁇ 480) size image.
  • TFT Thin Film Transistor liquid crystal display
  • EVF Electronic View Finder
  • VGA 640 ⁇ 480
  • the display device 40 has a HDTV (High Definition TeleVision) that displays an image of full HD (1920 ⁇ 1080) size, and an UHDTV (Ultra High Definition TeleVision) that displays an image of 4K2K (3840 ⁇ 2160) size.
  • HDTV High Definition TeleVision
  • UHDTV Ultra High Definition TeleVision
  • the image processing device 20 performs predetermined image processing on the pixel signal output from the image sensor 10 to generate a still image or a moving image. Further, the image processing device 20 generates a display image and a recorded image corresponding to the generated still image and moving image. Then, the image processing device 20 causes the display device 40 to display the generated display image.
  • the image processing apparatus 20 can also generate a recorded image corresponding to the generated still image or moving image, and record the generated recorded image on a recording medium (not shown).
  • the DMA bus arbitration unit 230 is an arbiter that arbitrates an access request (DMA request) to the DRAM 30 by DMA from each component in the image processing apparatus 20 connected to the DMA bus 210.
  • the DMA bus arbitration unit 230 outputs a DMA permission for notifying that the DMA request has been received to the component that has received the DMA request as a result of arbitrating the DMA request from the respective component to the DRAM 30.
  • the DMA bus arbitration unit 230 controls data transfer, that is, DMA transfer, between the component that has received the DMA request (the component that has notified the DMA permission) and the DRAM 30 via the DMA bus 210.
  • the DMA bus arbitration unit 230 transfers (writes) the data output to the DRAM 30 by the component that has received the DMA request to the DMA bus 210, and the DMA request for the data acquired (read) from the DRAM 30. Controls output to accepted components.
  • the DMA bus arbitration unit 230 has a function of storing information on the accepted DMA request as a history.
  • the DMA request information (hereinafter referred to as “request reception history information”) stored as a history by the DMA bus arbitration unit 230 includes at least an address (more specifically, a storage area of the DRAM 30 to be accessed for each received DMA request.
  • Includes information indicating addresses (hereinafter referred to as “bank addresses”) representing banks into which the address space of the DRAM 30 is divided, and information indicating an access direction (write: write or read: read) with respect to the DRAM 30. Yes.
  • the DMA bus arbitration unit 230 stores request reception history information for a predetermined number (for example, the past 10 times from the current time) or a predetermined period (for example, a predetermined period from the current time). Note that the information from the present time included in the request reception history information includes information indicating the timing at which the DMA request has been received in the past from the current time, in addition to the above-described bank address information and information indicating the access direction. Also good. Then, the DMA bus arbitration unit 230 outputs the stored request reception history information to each component.
  • the imaging interface unit 221 is a processing block that stores (writes) pixel signal data output from the image sensor 10 in the DRAM 30.
  • the imaging interface unit 221 is a bus master that accesses the DRAM 30 by DMA transfer when the pixel signal data is stored (written) in the DRAM 30.
  • the imaging interface unit 221 temporarily stores pixel signal data (hereinafter referred to as “input image data”) output from the image sensor 10.
  • the imaging interface unit 221 When the imaging interface unit 221 outputs and stores (writes) the stored input image data to the DRAM 30, first, a DMA request, a DMA address that designates a storage area of the DRAM 30 in which the input image data is stored, A DMA write signal designating an access direction (write access) to the DRAM 30 is output to the DMA bus arbitration unit 230. Then, after the output DMA request is received by the DMA bus arbitration unit 230, that is, after the DMA permission is notified from the DMA bus arbitration unit 230, the imaging interface unit 221 stores the input image data temporarily stored. The data is output to the DMA bus arbitration unit 230, output to the DRAM 30, and stored (written).
  • the imaging interface unit 221 outputs image data generated by performing a predetermined imaging process on the pixel signal output from the image sensor 10 as input image data to the DRAM 30 via the DMA bus arbitration unit 230. It may be configured to. In the case of this configuration, the imaging interface unit 221 may be configured to perform an imaging process when outputting temporarily stored input image data to the DRAM 30, or to a pixel signal output from the image sensor 10. The configuration may be such that the imaging process is performed and then temporarily stored. Note that the imaging process performed on the pixel signal output from the image sensor 10 by the imaging interface unit 221 is so-called preprocessing such as scratch correction or shading correction. However, in the present invention, the imaging process that the imaging interface unit 221 performs on the pixel signal output from the image sensor 10 is not particularly limited.
  • the imaging interface unit 221 has a function of changing the order of outputting DMA requests with reference to the request reception history information output from the DMA bus arbitration unit 230. More specifically, the imaging interface unit 221 avoids the DMA address output to the DMA bus arbitration unit 230 together with the DMA request from the bank indicated as being in the bank busy state in the request reception history information. That is, it has a function of changing to a DMA address that designates a bank different from the bank that has already been accessed and is in a bank busy state. With this function, the imaging interface unit 221 accesses the DRAM 30 in an order that avoids the access restrictions in the DRAM 30 that a predetermined time (fixed time) needs to be freed when accessing the same bank. DMA transfer for storing (writing) data is performed.
  • the image processing unit 222 acquires (reads out) input image data stored in the DRAM 30, and performs still image processing on the acquired input image data (hereinafter referred to as “still image data”). Is a processing block for storing (writing) in the DRAM 30.
  • the image processing unit 222 is a bus master that accesses the DRAM 30 by DMA transfer when acquiring (reading) input image data from the DRAM 30 and storing (writing) still image data in the DRAM 30.
  • the image processing unit 222 first receives a DMA request, a DMA address that specifies a storage area of the DRAM 30 from which the input image data is acquired, and an access direction (read access) to the DRAM 30.
  • the DMA read signal designating () is output to the DMA bus arbitration unit 230. Then, after the output DMA request is received by the DMA bus arbitration unit 230, the image processing unit 222 temporarily stores the input image data read and output by the DMA bus arbitration unit 230 from the DRAM 30. In addition, when the image processing unit 222 outputs and stores (writes) the still image data generated by performing predetermined image processing on the stored input image data to the DRAM 30, first, the DMA request and the still image data are stored. A DMA address designating a storage area of the DRAM 30 for storing image data and a DMA write signal designating an access direction (write access) to the DRAM 30 are output to the DMA bus arbitration unit 230. Then, after the output DMA request is accepted by the DMA bus arbitration unit 230, the image processing unit 222 outputs the still image data to the DMA bus arbitration unit 230 and outputs it to the DRAM 30 for storage (writing).
  • the image processing unit 222 may be configured to perform image processing on the temporarily stored input image data when outputting still image data to the DRAM 30, or may be output from the DMA bus arbitration unit 230.
  • the input image data may be temporarily stored after image processing is performed to generate still image data.
  • the image processing performed by the image processing unit 222 on the input image data includes various image processing for display and image processing for recording such as noise removal processing, YC conversion processing, resizing processing, and JPEG compression / decompression processing. is there.
  • the image processing performed by the image processing unit 222 on the input image data is not particularly limited.
  • the image processing unit 222 also refers to the request reception history information output from the DMA bus arbitration unit 230 for the DMA address output to the DMA bus arbitration unit 230 together with the DMA request. It has a function of changing to a DMA address that designates a bank different from the bank that has been accessed and is in a bank busy state. With this function, similarly to the imaging interface unit 221, the image processing unit 222 accesses the DRAM 30 in an order avoiding access restrictions in the DRAM 30 to acquire (read) input image data and store still image data ( Write) and DMA transfer.
  • the moving image codec unit 223 acquires (reads out) input image data stored in the DRAM 30 and generates moving image data (hereinafter referred to as “moving image data”) by performing predetermined image processing on the acquired input image data. Is a processing block for storing (writing) in the DRAM 30.
  • the moving image codec unit 223 is a bus master that accesses the DRAM 30 by DMA transfer when acquiring (reading) input image data from the DRAM 30 and storing (writing) moving image data in the DRAM 30.
  • the video codec unit 223 When acquiring (reading out) input image data from the DRAM 30, the video codec unit 223 first receives a DMA request, a DMA address that specifies a storage area of the DRAM 30 from which the input image data is acquired, and an access direction (read access) to the DRAM 30.
  • the DMA read signal designating () is output to the DMA bus arbitration unit 230.
  • the moving image codec unit 223 temporarily stores the input image data read and output by the DMA bus arbitration unit 230 from the DRAM 30.
  • the moving image codec unit 223 when the moving image codec unit 223 outputs to the DRAM 30 and stores (writes) moving image data generated by performing predetermined image processing on the stored input image data, first, a DMA request and a moving image data are stored. A DMA address designating a storage area of the DRAM 30 for storing image data and a DMA write signal designating an access direction (write access) to the DRAM 30 are output to the DMA bus arbitration unit 230. Then, after the output DMA request is received by the DMA bus arbitration unit 230, the moving image codec unit 223 outputs the moving image data to the DMA bus arbitration unit 230 and outputs it to the DRAM 30 for storage (writing).
  • the video codec unit 223 may be configured to perform image processing on the temporarily stored input image data when the moving image data is output to the DRAM 30, or may be output from the DMA bus arbitration unit 230.
  • the input image data may be stored temporarily after image processing is performed on the input image data to generate moving image data.
  • the image processing performed by the moving image codec unit 223 on the input image data is MPEG compression / decompression processing, H.264, and so on. H.264 compression / decompression processing and other various display image processing and recording image processing for moving images.
  • the image processing performed by the moving image codec unit 223 on the input image data is not particularly limited.
  • the moving image codec unit 223 also receives the DMA address output to the DMA bus arbitration unit 230 together with the DMA request, and the request reception history information output from the DMA bus arbitration unit 230.
  • the function of changing to a DMA address that designates a bank different from the bank that has already been accessed and is in a bank busy state is provided.
  • the moving image codec unit 223 accesses the DRAM 30 in an order avoiding access restrictions in the DRAM 30, acquires (reads) input image data, and stores moving image data ( Write) and DMA transfer.
  • the display interface unit 224 is a processing block that acquires (reads out) still image data and moving image data stored in the DRAM 30 and causes the display device 40 to display a display image corresponding to the acquired image data.
  • the display interface unit 224 is a bus master that accesses the DRAM 30 by DMA transfer when acquiring (reading out) still image data or moving image data from the DRAM 30.
  • the display interface unit 224 acquires (reads out) image data from the DRAM 30, first, a DMA request, a DMA address that specifies a storage area of the DRAM 30 for acquiring still image data or moving image data, and an access direction to the DRAM 30.
  • a DMA read signal designating (read access) is output to the DMA bus arbitration unit 230.
  • the display interface unit 224 temporarily stores the image data read and output by the DMA bus arbitration unit 230 from the DRAM 30. Then, the display interface unit 224 outputs a display image corresponding to the stored image data to the display device 40 for display.
  • the display interface unit 224 may be configured to output a display image generated by performing predetermined display processing on the image data output from the DMA bus arbitration unit 230 to the display device 40.
  • the display interface unit 224 may be configured to perform display processing when outputting temporarily stored image data to the display device 40, or the image data output from the DMA bus arbitration unit 230.
  • the display may be temporarily stored after being subjected to display processing.
  • the display process performed by the display interface unit 224 on the pixel signal output from the DMA bus arbitration unit 230 is, for example, an on-screen display for displaying various information related to still images and moving images such as shooting date and time. On Screen Display (OSD) image superimposing processing.
  • OSD On Screen Display
  • the display processing that the display interface unit 224 performs on the pixel signal output from the DMA bus arbitration unit 230 is not particularly limited.
  • the display interface unit 224 also outputs a DMA address to be output to the DMA bus arbitration unit 230 together with the DMA request from the DMA bus arbitration unit 230.
  • a function of referring to the received request reception history information and changing to a DMA address designating a bank different from the bank that has already been accessed and is in a bank busy state is provided. With this function, similarly to the imaging interface unit 221, the display interface unit 224 accesses the DRAM 30 in an order avoiding access restrictions in the DRAM 30, and acquires (reads out) DMA transfer for acquiring (reading out) still image data and moving image data. Do.
  • the imaging device 1 captures a still image or a moving image of the subject by the image sensor 10 and causes the display device 40 to display a display image corresponding to the captured still image or moving image. Further, the imaging apparatus 1 can also record a recorded image corresponding to a still image or a moving image captured by the image sensor 10 on a recording medium (not shown).
  • the memory access control device is configured by the bus master that is each processing block provided in the image processing device 20 and the DMA bus arbitration unit 230 that is an arbiter. . More specifically, in the imaging apparatus 1, a bus master that changes the order in which DMA requests are output with reference to the request reception history information and the function of the arbiter that stores the history regarding the received DMA requests (request reception history information). With this function, the operation of the memory access control apparatus of the first embodiment of the present invention is realized.
  • the memory according to the first embodiment of the present invention includes a combination of an arbiter and a bus master with the highest priority (hereinafter referred to as “high priority bus master”) that performs DMA transfer with priority in the imaging apparatus 1.
  • An access control device is configured.
  • the bus master serving as the high-priority bus master differs depending on the operation performed by the imaging device 1, that is, the so-called operation mode. For this reason, in the imaging device 1, the combination of the bus master and the arbiter constituting the memory access control device of the first embodiment of the present invention is different for each operation mode.
  • the imaging interface unit 221 uses the input image data of each frame output from the image sensor 10 as It becomes a bus master that needs to be sequentially stored (written) in the DRAM 30 by DMA transfer.
  • the imaging interface unit 221 becomes a high-priority bus master that preferentially performs DMA transfer
  • the memory access control apparatus according to the first embodiment of the present invention is configured by the combination of the imaging interface unit 221 and the DMA bus arbitration unit 230. Composed.
  • the imaging apparatus 1 captures a still image or a moving image
  • a display image for confirming a subject to be captured a so-called live view image (through image)
  • the display interface unit 224 serves as a bus master that needs to sequentially acquire (read) image data for display of each frame stored in the DRAM 30 from the DRAM 30 by DMA transfer.
  • the display interface unit 224 becomes a high-priority bus master that performs DMA transfer preferentially, and the combination of the display interface unit 224 and the DMA bus arbitration unit 230 enables the memory access control device of the first embodiment of the present invention. Composed.
  • the combination of any of the bus masters (processing blocks) provided in the image processing apparatus 20 and the arbiter (DMA bus arbitration unit 230) makes the first of the present invention.
  • the memory access control device of the embodiment is configured.
  • the memory access control apparatus is not limited to a configuration including one bus master (processing block) and an arbiter (DMA bus arbitration unit 230), but includes a plurality of bus masters and arbiters. May be configured.
  • the imaging apparatus 1 performs a moving image recording operation in which a moving image of a photographed subject is recorded in a recording medium (not shown) in real time
  • the imaging interface unit 221, the moving image codec unit 223, and a recording (not shown)
  • the processing unit becomes a bus master that needs to perform sequential DMA transfer.
  • each of the imaging interface unit 221, the moving image codec unit 223, and the recording processing unit serves as a high-priority bus master, and the combination of the plurality of high-priority bus masters and the DMA bus arbitration unit 230 provides the first of the present invention.
  • the memory access control device of the embodiment is configured.
  • FIG. 2 is a block diagram showing a schematic configuration of the memory access control device according to the first embodiment of the present invention.
  • the memory access control device according to the first embodiment of the present invention is referred to as “memory access control device 200”.
  • the bus master 220-1 to the bus master 220-n are referred to as “bus master 220” when expressed without distinction.
  • each of the bus masters 220 corresponds to any processing block provided in the image processing apparatus 20.
  • the DMA request signal DMAREQ indicating that access to the DRAM 30 is requested (DMA request)
  • the DMA address DMAAD indicating the address of the DRAM 30 to be accessed
  • the DMA read / write signal DMARW for designating is output to the DMA bus arbitration unit 230.
  • FIG. 2 only the DMA request signal DMAREQ that each bus master 220 outputs to the DMA bus arbitration unit 230 as a DMA request is shown.
  • numbers for distinguishing the bus masters 220 that output the DMA request signal DMAREQ are shown after “ ⁇ ” following the signal name of each DMA request signal DMAREQ.
  • the DMA request signal DMAREQ output by the bus master 220-1 indicates “1” after “ ⁇ ” following the signal name, and is represented as “DMA request signal DMAREQ-1.”
  • the DMA request signal DMAREQ output by the bus master 220-2 is represented as “DMA request signal DMAREQ-2” by indicating “2” after “ ⁇ ” following the signal name.
  • the DMA request signal DMAREQ output from the bus master 220-n is represented as “DMA request signal DMAREQ-n” by indicating “n” after “-” following the signal name.
  • each of the DMA address DMAAD and the DMA read / write signal DMARW output from the respective bus masters 220 to the DMA bus arbitration unit 230 together with the DMA request signal DMAREQ has the same signal name as the DMA request signal DMAREQ. A number for distinguishing the bus master 220 will be described after “-” following the description.
  • Each bus master 220 receives, in addition to the DMA request signal DMAREQ, the DMA address DMAAD, and the DMA read / write signal DMARW, for example, data to be transferred to and from the DRAM 30 in DMA transfer such as a burst length.
  • Information such as the number and the current urgency level may be output to the DMA bus arbitration unit 230 together with the DMA request signal DMAREQ.
  • the DMA bus arbitration unit 230 arbitrates the DMA request output from each bus master 220, and outputs a DMA permission to the bus master 220 that has accepted access to the DRAM 30 in response to the DMA request.
  • FIG. 2 shows a DMA permission signal DMAACK in which the DMA bus arbitration unit 230 notifies each bus master 220 of DMA permission.
  • numbers for distinguishing the bus masters 220 that output the DMA permission signal DMAACK are shown after “ ⁇ ” following the signal name of each DMA permission signal DMAACK.
  • the DMA permission signal DMAACK output to the bus master 220-1 is represented as “DMA permission signal DMAACK-1” by indicating “1” after “-” following the signal name.
  • the DMA permission signal DMAACK output to the bus master 220-2 is represented as “DMA permission signal DMAACK-2” by indicating “2” after “ ⁇ ” following the signal name.
  • the DMA permission signal DMAACK output to the bus master 220-n indicates “n” after “ ⁇ ” following the signal name, and is represented as “DMA permission signal DMAACK-n”.
  • the DMA bus arbitration unit 230 outputs request acceptance history information regarding the accepted DMA request to each bus master 220.
  • a DMA bus arbitration unit 230 having a configuration including a request reception history acquisition unit 231 that acquires various information related to the received DMA request and outputs the acquired information as request reception history information REQHIS to each bus master 220. Is shown.
  • Each bus master 220 is notified of the DMA permission from the DMA bus arbitration unit 230, that is, only the bus master 220 to which the DMA permission signal DMAACK is input from the DMA bus arbitration unit 230 is requested to the DMA transfer (to the DRAM 30). Access).
  • the DMA bus arbitration unit 230 actually controls the DRAM 30 in response to the access to the DRAM 30 from the bus master 220 that has received the DMA request. That is, the DMA bus arbitration unit 230 performs data transfer (DMA transfer) between the bus master 220 that has received the DMA request and the DRAM 30.
  • FIG. 3 is a block diagram showing a schematic configuration of the DMA bus arbitration unit 230 constituting the memory access control device 200 in the first embodiment of the present invention.
  • the DMA bus arbitration unit 230 includes an access arbitration unit 2301, a memory control unit 2302, a multiplexer (MUX) 2303, an address generation unit 2304, a data control unit 2305, and a request reception history acquisition unit 231. .
  • MUX multiplexer
  • the access arbitration unit 2301 arbitrates the DMA request signal DMAREQ output from each bus master 220, and selects any one of the bus masters 220 from which the DMA request signal DMAREQ is output. More specifically, the access arbitration unit 2301 determines whether each bus master 220 receives the priority based on the priority of each bus master 220 or the degree of urgency according to the length of time during which the output DMA request signal DMAREQ is not accepted. The output DMA request signal DMAREQ is arbitrated, and the respective bus masters 220 are sequentially selected so that the access efficiency to the DRAM 30 is maximized. As the selection (arbitration) method of the bus master 220 in the access arbitration unit 2301, various selection (arbitration) methods in the existing DMA arbitration circuit (bus arbiter) can be employed.
  • the access arbitration unit 2301 outputs a selection signal representing the selected bus master 220 to the multiplexer 2303.
  • the access arbitration unit 2301 outputs an access direction signal ACCRW indicating the access direction to the DRAM 30 by the selected bus master 220 to the memory control unit 2302. More specifically, the access arbitration unit 2301 determines that the access to the DRAM 30 by the selected bus master 220 is a write access (data of data) based on the DMA read / write signal DMARW output from the selected bus master 220 together with the DMA request signal DMAREQ.
  • An access direction signal ACCRW indicating whether the data is a write) or a read access (data read) is output to each of the memory control unit 2302 and the request reception history acquisition unit 231.
  • the access arbitration unit 2301 generates and generates a DMA permission signal DMAACK based on the access execution signal ACCEXE that is output from the memory control unit 2302 when the DRAM 30 is actually controlled according to the output access direction signal ACCRW.
  • the DMA permission signal DMAACK is output to the selected bus master 220.
  • FIG. 3 shows DMA permission signals DMAACK-1 to DMAACK-n output from the access arbitration unit 2301 to the bus masters 220-1 to 220-n, respectively.
  • the memory control unit 2302 Based on the access direction signal ACCRW output from the access arbitration unit 2301, the memory control unit 2302 generates a control signal for actually accessing the DRAM 30 according to the access from the bus master 220 selected by the access arbitration unit 2301. The generated control signal is output to the DRAM 30.
  • the memory control unit 2302 outputs to the DRAM 30 a chip select signal CS, a row address strobe signal RAS, a column address strobe signal CAS, and a write enable ( (Write enable) signal WE is shown.
  • the memory control unit 2302 generates an access execution signal ACCEXE indicating that the DRAM 30 has actually been accessed, and outputs the generated access execution signal ACCEXE to the access arbitration unit 2301 and the request reception history acquisition unit 231. To do.
  • the multiplexer 2303 selects the DMA address DMAAD output together with the DMA request signal DMAREQ from the bus master 220 selected by the access arbitration unit 2301 according to the selection signal output from the access arbitration unit 2301, and uses the selected DMA address DMAAD as the address generation unit 2304. Further, the multiplexer 2303 receives the DMA write data DMAWDATA output together with the DMA request signal DMAREQ when the bus master 220 selected by the access arbitration unit 2301 performs write access to the DRAM 30 according to the selection signal output from the access arbitration unit 2301. The selected DMA write data DMAWDATA is output to the data control unit 2305.
  • the multiplexer 2303 reads and outputs the data control unit 2305 from the DRAM 30 when the bus master 220 selected by the access arbitration unit 2301 performs read access to the DRAM 30 according to the selection signal output from the access arbitration unit 2301.
  • the data is output to the bus master 220 selected by the access arbitration unit 2301 as the DMA read data DMARDATA.
  • each of bus master 220-1 to bus master 220-n outputs DMA address DMAAD-1 to DMA address DMAAD-n and DMA write data DMAWDATA-1 to DMA write data DMAWDATA-n output to multiplexer 2303. Each is shown.
  • FIG. 3 shows DMA read data DMARDATA-1 to DMA read data DMARDATA-n output from the multiplexer 2303 to the bus master 220-1 to bus master 220-n, respectively.
  • the address generation unit 2304 Based on the DMA address DMAAD output from the multiplexer 2303, the address generation unit 2304 generates an address of the DRAM 30 that is actually accessed in accordance with the access from the bus master 220 selected by the access arbitration unit 2301, and the generated address is stored in the DRAM 30. Output to.
  • FIG. 3 shows the bank address BA and the matrix address A that the address generation unit 2304 outputs to the DRAM 30 and the request reception history acquisition unit 231, respectively. Note that the address generation unit 2304 also outputs the generated bank address BA to the request reception history acquisition unit 231.
  • the data control unit 2305 When the bus master 220 selected by the access arbitration unit 2301 performs write access to the DRAM 30, the data control unit 2305 outputs the DMA write data DMAWDATA output from the multiplexer 2303 to the DRAM 30 as data to be actually written (stored). To do. Further, the data control unit 2305 outputs the data actually read (acquired) from the DRAM 30 to the multiplexer 2303 when the bus master 220 selected by the access arbitration unit 2301 performs read access to the DRAM 30.
  • Data data (Data) DQ that the data control unit 2305 delivers (reads / writes) to / from the DRAM 30, that is, the bus master 220 selected by the access arbitration unit 2301 performs DMA transfer with the DRAM 30. Yes.
  • the request acceptance history acquisition unit 231 is based on the access execution signal ACCEXE output from the memory control unit 2302, the access direction signal ACCRW output from the access arbitration unit 2301, and the bank address BA output from the address generation unit 2304.
  • the information (request reception history information) related to the DMA request by the bus master 220 selected by the access arbitration unit 2301 is acquired.
  • the request acceptance history information includes at least information on the bank address BA of the DRAM 30 accessed in the accepted DMA request and information indicating the access direction with respect to the DRAM 30.
  • the request reception history acquisition unit 231 stores the information of the bank address BA and the information indicating the access direction in association with each other.
  • the request reception history acquisition unit 231 outputs each stored information to each bus master 220 as request reception history information REQHIS.
  • FIG. 4 is a diagram schematically illustrating an example of the configuration of the request reception history acquisition unit 231 provided in the DMA bus arbitration unit 230 that configures the memory access control apparatus 200 according to the first embodiment of the present invention.
  • FIG. 4 shows a configuration of the request reception history acquisition unit 231 that acquires information indicating the timing of receiving a DMA request as request reception history information in addition to the information of the bank address BA and the information indicating the access direction.
  • the request reception history acquisition unit 231 includes a counter unit 2311 and a request reception history storage unit 2312.
  • the counter unit 2311 is a time measuring unit that measures an elapsed time from the start of the operation of the DMA bus arbitration unit 230 based on a clock signal for operating the DRAM 30.
  • the counter unit 2311 sequentially outputs the measured elapsed time information (hereinafter referred to as “time T”) to the request reception history storage unit 2312.
  • the counter unit 2311 may be configured to periodically measure a predetermined period (time) from when the DMA bus arbitration unit 230 starts operation.
  • a predetermined period (time) from when the DMA bus arbitration unit 230 starts operation.
  • the time T represented by the counter unit 2311 is repeated in a cycle of a predetermined period (time). Therefore, when the two times are compared, the two times are in different cycles. It is also conceivable that the relationship before and after the time represented by time T is reversed. However, if the predetermined period (time) that the counter unit 2311 periodically measures is known, the relationship before and after these two times can be correctly determined.
  • a predetermined period (time) periodically measured by the counter unit 2311 is a predetermined time that needs to be freed when accessing the same bank of the DRAM 30, that is, a bank busy time in which the DRAM 30 is in a bank busy state.
  • the counter unit 2311 periodically and continuously measures the bank busy time, so that the relationship before and after the two times within the bank busy time can be correctly determined.
  • the counter unit 2311 has a configuration of a free-run counter that measures an elapsed time from when the DMA bus arbitration unit 230 starts operation. Therefore, the counter unit 2311 sequentially outputs to the request reception history storage unit 2312 the time T in which the relationship between the times is not reversed.
  • the request acceptance history storage unit 2312 receives the bank address BA output from the address generation unit 2304, the access direction signal ACCRW output from the access arbitration unit 2301 at the timing when the access execution signal ACCEXE is input from the memory control unit 2302, and This is a data storage unit that associates each information of the time T output from the counter unit 2311 and stores it as request reception history information.
  • the request reception history storage unit 2312 includes, for example, a FIFO (First In, First Out) format memory including a plurality of storage areas for storing the associated information.
  • the request reception history storage unit 2312 receives information on the bank address BA, information on the access direction (read access or write access) represented by the access direction signal ACCRW, Information of time T (that is, information of time when the access execution signal ACCEXE is input) is associated with each other and stored in the storage area. Then, the request reception history storage unit 2312 outputs each information stored in association with each storage area to each bus master 220 as request reception history information REQHIS.
  • N natural number, positive integer
  • An example of the request reception history storage unit 2312 configured to store the data in association with each other is illustrated.
  • a number representing a storage area number is shown after “ ⁇ ” following each information. More specifically, “1” is indicated after “ ⁇ ” following each piece of information stored in the first storage area provided in the request reception history storage unit 2312, “bank address BA-1”, “access “Direction RW-1” and “time T-1”.
  • “2” is indicated after “ ⁇ ” following each information stored in the second storage area provided in the request reception history storage unit 2312, “bank address BA-2”, “access direction RW-2”. ”And“ Time T-2 ”.
  • “N” is indicated after “ ⁇ ” following each information stored in the Nth storage area provided in the request reception history storage unit 2312, “bank address BA-N”, “access direction RW-N”. , “Time TN”.
  • the request reception history storage unit 2312 has at least a number of storage areas that can store request reception history information for a period set based on the bank busy time in the DRAM 30 (for example, the same period as the bank busy time). You may make it the structure provided. In this configuration, the storage capacity of the request reception history storage unit 2312, that is, the storage capacity of the FIFO-type memory can be reduced. In the request reception history storage unit 2312 having this configuration, the request reception history information after the bank busy time has elapsed, that is, the past information accessed for each bank of the DRAM 30 is overwritten with the latest information. Then act to destroy. Even in this operation, the request reception history acquisition unit 231 can realize the same function as that of the configuration having more storage areas.
  • the bank busy time in the DRAM 30 is determined in advance by the DRAM 30 standard, and the request acceptance history information accessed before the bank busy time for each bank of the DRAM 30 is determined by the bus master 220 (to be described later). This is because the information need not be used when determining the bank address to be accessed in order to avoid the problem.
  • the configuration of the request reception history storage unit 2312 is not limited to the above-described FIFO format configuration.
  • the request reception history storage unit 2312 may be configured to include at least storage areas corresponding to the respective banks provided in the DRAM 30, that is, the same number of storage areas as the number of banks provided in the DRAM 30.
  • the request reception history storage unit 2312 having this configuration updates each information of the access direction RW and time T stored in the storage area corresponding to the accessed bank each time the bank is accessed. To work.
  • the request reception history storage unit 2312 is described as having the above-described FIFO format configuration.
  • the request reception history storage unit 2312 each time the request reception history acquisition unit 231 newly acquires each information of the bank address BA, the access direction RW, and the time T, the request reception history storage unit 231 already stores the information in the respective storage areas.
  • Each information will be described as being sequentially moved to a storage area obtained by adding (incrementing) “1” to the number of the storage area number indicated after “ ⁇ ” following each information. That is, in the following description, it is assumed that the latest information is always “1” after the number “ ⁇ ”.
  • bus master 220 constituting the memory access control device 200
  • the bus master 220 in which the access direction to the DRAM 30 in the DMA transfer is only write access (data writing) will be described as an example.
  • the bus master 220 configured to perform DMA transfer with only write access corresponds to, for example, the imaging interface unit 221 in the imaging apparatus 1 illustrated in FIG.
  • FIG. 5 is a block diagram showing a schematic configuration of the bus master 220 constituting the memory access control device 200 according to the first embodiment of the present invention.
  • data for eight banks is collectively DMA-transferred to the DRAM 30 whose address space is divided into eight banks by continuous transfer that successively accesses each of the eight banks.
  • An example of the configuration of the bus master 220 that continuously performs eight DMA transfers is shown.
  • the continuous transfer is different from the function of burst transfer originally provided in a general DRAM, and represents that eight requests are issued continuously. That is, the continuous transfer indicates that the DMA transfer is performed eight times continuously when the bus master 220 is ready to perform the eight DMA transfers continuously. For this reason, each successive DMA transfer performed eight times in a continuous transfer is an access to a different bank address BA.
  • the bus master 220 includes a buffer write control unit 2201, a buffer unit 2202, a buffer read control unit 2203, a bus interface unit 2204, and an address order generation unit 2210.
  • the bus interface unit 2204 includes a DMA address generation unit 2205.
  • the buffer write control unit 2201 sequentially outputs input data (for example, pixel signal data output from the image sensor 10) to the buffer unit 2202 to store (save) it.
  • the buffer unit 2202 is a data storage unit that temporarily stores (saves) the input data sequentially output from the buffer write control unit 2201.
  • the buffer unit 2202 includes, for example, a memory such as SRAM (Static Random Access Memory).
  • the buffer unit 2202 has at least as many storage areas for storing data to be DMA transferred to the DRAM 30 as many as the number of banks provided in the DRAM 30.
  • numbers representing the banks of the corresponding DRAM 30 are shown in the respective storage areas in the buffer unit 2202.
  • all data stored in a set of storage areas provided in the buffer unit 2202 is a transfer unit for continuous transfer, and data in each storage area is a transfer unit for one DMA transfer.
  • FIG. 5 shows a buffer unit 2202 having a configuration including four sets of eight storage areas corresponding to each of the eight banks provided in the DRAM 30.
  • the bus master 220 can perform continuous transfer four times for continuously transferring data for each set of storage areas.
  • the buffer read control unit 2203 performs the DMA transfer output from the address order generation unit 2210 when the buffer write control unit 2201 stores (saves) the input data in any storage area set in the buffer unit 2202.
  • address order information the information indicating the order of addresses
  • the buffer read control unit 2203 sequentially outputs the read input data to the bus interface unit 2204. That is, the buffer read control unit 2203 stores all input data in one transfer unit of continuous transfer stored (saved) in the buffer unit 2202 in the order indicated by the address sequence information for each transfer unit of DMA transfer. Are sequentially read and transferred to the bus interface unit 2204.
  • the buffer write control unit 2201 stores (saves) input data in the buffer unit 2202, and the buffer read control unit 2203 reads out input data stored (saved) in the buffer unit 2202. Is not limited at all. Accordingly, the buffer unit 2202 may be an SRAM capable of controlling the input data write timing and the input data read timing at different timings.
  • the buffer write control unit 2201 completes the storage (storing) of the input data of one transfer unit in the buffer unit 2202, and the buffer read control unit 2203 stores the input data of one transfer unit. There is no limitation on the configuration and method for matching the timing when reading from the buffer unit 2202 is completed.
  • the bus interface unit 2204 is an interface unit for DMA transfer of input data transferred from the buffer read control unit 2203, that is, DMA write data DMAWDATA that the bus master 220 stores (writes) in the DRAM 30.
  • the bus interface unit 2204 receives a DMA request signal DMAREQ for requesting a DMA transfer and a DMA read / write signal indicating a write access every time input data in a transfer unit of each DMA transfer is transferred from the buffer read control unit 2203.
  • a DMARW and a DMA address DMAAD are generated and output, and a DMA transfer is requested to the DMA bus arbitration unit 230.
  • the DMA address generation unit 2205 generates a DMA address DMAAD. More specifically, the DMA address generation unit 2205 generates a DMA address DMAAD that stores (writes) the DMA write data DMAWDATA in the DRAM 30 according to the address sequence information output from the address sequence generation unit 2210.
  • the buffer read control unit 2203 uses the bus interface unit in the order indicated by the address order information for all input data in one transfer unit of continuous transfer, that is, input data for eight DMA transfers. 2204. Therefore, the DMA transfer input data is not always transferred from the buffer read control unit 2203 to the bus interface unit 2204 in the order of banks provided in the DRAM 30. Therefore, when the DMA address generation unit 2205 DMA-transfers the input data transferred from the buffer read control unit 2203 as DMA write data DMAWDATA and stores (writes) it in the DRAM 30, the DMA write data DMAWDATA (input data) is A DMA address DMAAD is generated so as to be stored (written) in a corresponding bank provided in the DRAM 30.
  • the operation in which the DMA address generation unit 2205 generates the DMA address DMAAD will be described using the numbers of one set (eight) storage areas provided in the buffer unit 2202. For example, when the buffer read control unit 2203 sequentially transfers the input data in the order of the storage area number “3” ⁇ “1” ⁇ “0” ⁇ “2” ⁇ .
  • the DMA address DMAAD is generated so that the bank address BA is in the order of “3” ⁇ “1” ⁇ “0” ⁇ “2” ⁇ .
  • the DMA address generation unit 2205 has a DMA address DMAAD that aligns the order of input data transferred from the buffer read control unit 2203 to the bus interface unit 2204 and the order of the bank addresses BA included in the DMA address DMAAD. Is generated.
  • the bus interface unit 2204 outputs the DMA write data DMAWDATA corresponding to the DMA address DMAAD generated by the DMA address generation unit 2205 to the DMA bus arbitration unit 230 together with the DMA request signal DMAREQ, the DMA read / write signal DMARW, and the DMA address DMAAD. .
  • the bus interface unit 2204 executes the requested DMA transfer each time the output DMA request is received by the DMA bus arbitration unit 230 and the DMA permission signal DMAACK is input from the DMA bus arbitration unit 230.
  • the bus interface unit 2204 continuously executes eight DMA transfers for each transfer unit of one continuous transfer.
  • the address order generation unit 2210 receives the request reception history information output from the DMA bus arbitration unit 230.
  • the order of addresses (more specifically, bank address BA) when DMA write data DMAWDATA (input data) is stored (written) in DRAM 30 by eight consecutive DMA transfers is determined.
  • the address order generation unit 2210 determines the order in which DMA write data DMAWDATA (input data) is DMA-transferred.
  • the address order generation unit 2210 outputs address order information indicating the order of addresses when performing the determined DMA transfer to the buffer read control unit 2203 and the DMA address generation unit 2205 in the bus interface unit 2204.
  • FIG. 6 is a diagram for explaining processing (address order determination processing) in which the address order generation unit 2210 included in the bus master 220 included in the memory access control device 200 according to the first embodiment of the present invention determines the order of addresses. is there.
  • FIG. 6A shows a request output from the DMA bus arbitration unit 230 immediately before the bus master 220 outputs the first DMA transfer request in the transfer unit of one continuous transfer to the DMA bus arbitration unit 230.
  • An example of the reception history information REQHIS is shown.
  • FIG. 6B shows an example of the timing calculated when the address order generation unit 2210 determines the address order and the order of the determined bank addresses BA.
  • “No.” represents the number of the storage area provided in the request reception history storage unit 2312, and the smaller the number, the more the request reception history acquisition unit 231 has.
  • the request acceptance history information acquired at the time when the elapsed time measured by the counter unit 2311 is close to the current time is stored. That is, as described above, the latest request reception history information is stored in the storage area with the number “1”.
  • “BA” represents the information of the bank address BA output from the address generation unit 2304, and “RW” is output from the access arbitration unit 2301.
  • the access direction signal ACCRW information (“R” for read access and “W” for write access) is indicated, and “T” indicates time T information output from the counter unit 2311.
  • the address order generation unit 2210 refers to the request acceptance history information REQHIS as shown in FIG. 6A, and the bus master 220 stores (writes) the DMA write data DMAWDATA (input data) in the DRAM 30 by DMA transfer.
  • the order of bank addresses BA is determined by the following processing procedure.
  • the bank busy time in each bank provided in the DRAM 30 is 30T.
  • the DMA bus arbitration unit 230 can arbitrate the input DMA request signal DMAREQ to accept a DMA transfer to a different bank, that is, the minimum interval at which a DMA request is permitted is 4T. It shall be.
  • the time required for switching the access direction for each bank provided in the DRAM 30, that is, the read / write switching time is not considered.
  • the address sequence generation unit 2210 stores (writes) the corresponding DMA write data DMAWDATA by eight consecutive DMA transfers.
  • the bank busy time ends for each bank provided in the DRAM 30. The busy end timing is calculated.
  • the request acceptance history information REQHIS shown in FIG. 6A the request acceptance history information REQHIS-8 to the request acceptance history information stored in the storage areas with numbers “8” to “1”.
  • Each of the REQHIS-1 indicates the previously executed access to each of the eight banks provided in the DRAM 30. Accordingly, the address sequence generation unit 2210 refers to each of the request reception history information REQHIS-8 to request reception history information REQHIS-1, and as shown in FIG. Each busy end timing is calculated.
  • the address order generation unit 2210 replaces the calculated request permission timing with the latest time T-1, and as shown in (b) of FIG. The request permission timing when the DMA request for the bank is accepted is sequentially calculated.
  • Procedure 4 Next, the address order generation unit 2210 compares the busy end timing calculated in Procedure 1 with the request permission timing calculated in Procedure 3 in the request output order provisionally determined in Procedure 2. The final request output order, that is, the order of banks to be accessed in the DMA transfer is determined.
  • the address order generation unit 2210 determines that the DMA request output at the same time as the bank busy time has elapsed or after the bank busy time has elapsed. It is determined that the arbitration unit 230 accepts it. That is, even if the address order generation unit 2210 outputs a DMA request for accessing a bank in which the busy end timing is compared with the request permission timing, the DMA transfer access to the actual DRAM 30 is executed without taking the bank busy time. It is determined that In this case, the address order generation unit 2210 determines each bank of the request output order provisionally determined in the procedure 2 as the final bank order to be accessed in the DMA transfer. Then, the address order generation unit 2210 outputs address order information indicating the determined bank order to the buffer read control unit 2203 and the DMA address generation unit 2205.
  • the address order generation unit 2210 determines each bank of the request output order temporarily determined in the procedure 2 as the final bank order, and determines the bank order.
  • the address order information is output to the buffer read control unit 2203 and the DMA address generation unit 2205. More specifically, the bank address BA is in the order of “0”, “3”, “6”, “7”, “2”, “5”, “4”, “1”.
  • the address order information is output to the buffer read control unit 2203 and the DMA address generation unit 2205.
  • the final bank order determined by the address order generation unit 2210 is the DRAM 30 indicated in the request reception history information REQHIS shown in FIG. The history of accessing is in the oldest order.
  • the address order generation unit 2210 accepts the output DMA request by the DMA bus arbitration unit 230 only for the time difference between the busy end timing and the request permission timing. It is determined that the request is accepted when the bank busy time elapses. That is, the address order generation unit 2210 waits for the output of the DMA request to access the bank in which the busy end timing is compared with the request permission timing until the bank busy state ends, and the DMA transfer access to the actual DRAM 30 is performed. Therefore, it is determined that the access efficiency to the DRAM 30 is reduced. In this case, the address order generation unit 2210 changes the request output order provisionally determined in the procedure 2.
  • the address order generation unit 2210 calculates the request permission timing in the procedure 3 again for the changed request output order, compares the busy end timing with the calculated request permission timing, and sets the bank busy time. A request output order that can determine that the DMA transfer access to the actual DRAM 30 is executed is searched. That is, the address order generation unit 2210 determines the final bank order to be accessed in the DMA transfer by repeating the temporary change of the request output order, the procedure 3 and the procedure 4 respectively.
  • the number of times that the address sequence generation unit 2210 repeats the above-described processing procedure in order to search for a request output sequence that does not require bank busy time may be a predetermined number. This is because although the address sequence generation unit 2210 can search for a request output sequence that does not require the bank busy time by repeating the above-described processing procedure, it may take time to repeat the above-described processing procedure. This is because it can be a factor of reducing the efficiency of access to. Note that another example of the request output order in the address order generation unit 2210 will be described later.
  • FIG. 7 is a timing chart showing an example of access timing of the DRAM 30 by the memory access control device 200 according to the first embodiment of the present invention.
  • FIG. 7 shows an example of the timing of control signals when the DMA bus arbitration unit 230 actually accesses the DRAM 30 in response to a DMA request from each of the two bus masters 220. More specifically, each of the memory access control device 200 includes the bus master 220 having the high priority of the configuration shown in FIG. 5 in which eight DMA transfers are continuously performed in one continuous transfer, and the DRAM 30. An example of timing when the bus master 220 having a low priority for performing one DMA transfer to the bank and the DMA bus arbitration unit 230 is configured is shown.
  • FIG. 7 shows an example of timing when the bus master 220 having a low priority for performing one DMA transfer to the bank and the DMA bus arbitration unit 230 is configured.
  • bus master 220-1 a bus master 220 having a high priority (high priority bus master) is referred to as “bus master 220-1”, and a bus master 220 having a low priority (hereinafter referred to as “low priority bus master”) is referred to as “bus master 220-2”.
  • the low-priority bus master may not have a function of determining the order of the bank addresses BA to be accessed in the DMA transfer with reference to the request reception history information REQHIS.
  • the DMA bus arbitration unit 230 executes DMA transfer for the bank designated by the bus master 220-2 in response to the DMA request signal DMAREQ-2 output from the bus master 220-2. Yes.
  • the DMA bus arbitration unit 230 executes DMA transfer control in response to a DMA request from the bus master 220-2, the bank of the DRAM 30 designated by the bus master 220-2 is in a bank busy state, and the bank busy time has elapsed. Thereafter, the same bank can be accessed again.
  • the DMA bus arbitration unit 230 executes DMA transfer to the bank designated by the bus master 220-1.
  • the bus master 220-1 refers to the request reception history information REQHIS output from the DMA bus arbitration unit 230 immediately before starting one continuous transfer, and the order of bank addresses BA accessed in each DMA transfer.
  • the DMA request signal DMAREQ-2 designating each bank in the determined order is continuously output.
  • the bus master 220-1 determines the DRAM 30 in the order of the bank addresses BA shown in FIG. 6B determined by referring to the request reception history information REQHIS shown in FIG. Each bank provided is specified. As a result, as shown in FIG. 7, the bus master 220-1 can perform eight DMA transfers while avoiding access to a bank in a bank busy state in one continuous transfer. That is, the bus master 220-1 can continuously perform DMA transfer in an order avoiding access restrictions in the DRAM 30. As a result, the bus master 220-1 can access the DRAM 30 with high access efficiency.
  • the bus master 220-2 is a low priority bus master having a lower priority than the bus master 220-1.
  • the DMA bus arbitration unit 230 does Without accepting the DMA request from 220-2, at timing t3, the DMA permission signal DMAACK-1 that continuously accepts the DMA request signal DMAREQ-1 outputted from the bus master 220-1 is outputted.
  • a DMA permission signal DMAACK-2 for receiving the DMA request signal DMAREQ-2 is output.
  • the memory access control device 200 performs DMA transfer that avoids access to the bank busy state provided in the DRAM 30. As a result, the memory access control device 200 can increase the efficiency of access to the DRAM 30.
  • FIG. 7 shows an operation in the case where the bus master 220-1 requests eight DMA transfers continuously without changing the order of the bank addresses BA to be accessed in one continuous transfer.
  • An example of the timing is shown as a bus master 220-X.
  • the operation timing of the bus master 220-X corresponds to the operation timing when eight DMA transfers are continuously requested in the conventional bus master.
  • the DMA request signals DMAREQ-X for sequentially specifying the banks are sequentially output to the DMA bus arbitration unit 230.
  • the DMA bus arbitration unit 230 receives the DMA request from the bus master 220-X with priority over the bus master 220-2, and outputs the DMA permission signal DMAACK-X.
  • the timing of one continuous transfer by the bus master 220-1 and the bus master 220-X is compared.
  • the order of accessing each bank provided in the DRAM 30 is changed by referring to the request reception history information REQHIS immediately before starting one continuous transfer.
  • a bank that is in a bank busy state is not designated.
  • the efficiency of access to the DRAM 30 can be increased, and the period until a series of DMA transfers is completed can also be shortened.
  • the access direction to the DRAM 30 by the DMA transfer executed by the bus master 220 included in the memory access control device 200 according to the first embodiment of the present invention is only write access (data writing).
  • the bus master 220 provided in the memory access control device 200 is provided with a bus master that performs DMA transfer in which the access direction to the DRAM 30 is only read access (data read), or DMA transfer that is both write access and read access. There are also bus masters to do.
  • the configuration and operation of the bus master 220 in which the access direction to the DRAM 30 is only read access (data read) is the access to the DRAM 30 in the bus master 220 that performs only write access (data write) shown in FIGS. Considering the direction in reverse, that is, by simply setting the write access as the read access, the configuration and operation can be easily considered.
  • the configuration and operation of the bus master 220 in which the access direction to the DRAM 30 is both write access and read access are the read access in the bus master 220 that performs only the write access (data writing) shown in FIGS. It is possible to easily consider the configuration and operation only by considering a configuration further including a configuration corresponding to. Therefore, a detailed description of the configuration and operation of the bus master 220 whose access direction to the DRAM 30 is only read access and the bus master 220 whose access direction to the DRAM 30 is both write access and read access is omitted.
  • the address sequence generation unit 2210 illustrated in FIG. 6 includes the DRAM 30 in order to facilitate the description in the address sequence determination process in which the address sequence determination process in which the request reception history information REQHIS is determined.
  • the case where the time required for switching the access direction for each bank (read / write switching time) is not considered has been described.
  • it is necessary to consider the read / write switching time it is necessary to consider the read / write switching time. Therefore, in the following description, an address order determination process in which the address order generation unit 2210 provided in the bus master 220 determines the address order in consideration of the read / write switching time will be described.
  • the address order generation unit 2210 that performs address order determination processing that determines the order of addresses (more specifically, the bank address BA) in consideration of the read / write switching time is used to access the DRAM 30.
  • the bus master 220 has both directions of write access and read access.
  • FIG. 8 illustrates another process (address order determination process) in which the address order generation unit 2210 included in the bus master 220 included in the memory access control device 200 according to the first embodiment of the present invention determines the order of addresses.
  • FIG. FIG. 8 shows an address order determination in which the address order generation unit 2210 provided in the bus master 220 whose access direction to the DRAM 30 is both a write access and a read access determines the order of the addresses with reference to the request acceptance history information REQHIS. It is an example of a process.
  • An example of the reception history information REQHIS is shown. 8A is the same as one example of the request reception history information REQHIS shown in FIG. 6A, and detailed description thereof is omitted.
  • the address order generation unit 2210 indicates the timing calculated when determining the order of addresses and the order of the determined bank addresses BA in the first modification of the address order determination process. An example is shown.
  • FIG. 8C shows the case where the address order generation unit 2210 determines the order of the bank addresses BA in the address order determination process described in FIG. 6B, that is, FIG. 8A.
  • An example in which the order of bank addresses BA is determined in the order of the history of accessing the DRAM 30 indicated in the request acceptance history information REQHIS shown in FIG.
  • FIG. 8A Note that “No.”, “BA”, “RW”, and “T” shown in FIG. 8A are the same as those in FIG.
  • the “busy end timing”, “request output order”, “request permission timing”, and “bank address BA” shown in FIGS. 8B and 8C are the same as those shown in FIG. It is the same.
  • “access direction RW” shown in FIG. 8B and FIG. 8C represents the access direction to each bank provided in the DRAM 30, “R” is read access, and “W” is write access. Indicates access.
  • the address order generator 2210 refers to the information of the access direction signal ACCRW included in the request reception history information REQHIS as shown in FIG.
  • the order of bank addresses BA that reduces the switching of the access direction for each bank prepared in the above is determined by the following processing procedure. That is, in the first modification of the address order determination process, the order of the bank addresses BA that the bus master 220 accesses the DRAM 30 is not the order in which the access history is old, but the order in which switching between read access and write access is reduced. Become.
  • the request output order is tentatively determined so that write accesses are collectively performed and then read accesses are collectively performed.
  • the order of the bank addresses BA is set to “6”, “7”, “5”, and “4” in the order of the oldest history in write access, and then read access is performed.
  • An example is shown in which the order of the bank addresses BA is “2”, “1”, “0”, “3”.
  • the address sequence generation unit 2210 refers to the request reception history information REQHIS shown in FIG. 6A, and sets the busy end timing at which the bank busy time ends for each bank. calculate.
  • the permission timing is calculated sequentially. Note that the method for calculating the request permission timing in the procedure C is the same as the procedure 3 described above. However, in the first modification of the address order determination process, the read / write switching time is taken into consideration. If the request permission timing calculated in the procedure C is the request permission timing of a request for a bank that accesses the DRAM 30 in a different access direction, the address order generation unit 2210 sets the minimum interval at which the DMA request is permitted. The request permission timing is calculated by adding 20T of the read / write switching time instead of 4T.
  • each request permission timing can be calculated by adding 4T as the minimum interval in which DMA requests are permitted.
  • the calculated request permission timing is before the busy end timing, that is, within 30T of the bank busy time in each bank, the DMA request for each bank has a minimum interval. 4T is not accepted. Therefore, the request permission timing is a busy end timing at which the bank busy time ends.
  • the address order generation unit 2210 determines the final request output order, that is, the order of banks to be accessed in the DMA transfer.
  • the final request output order determination method in the procedure D is the same as the procedure 4 described above. That is, also in the procedure D, the address sequence generation unit 2210 uses the request output sequence provisionally determined in the procedure A, the busy end timing calculated before the procedure B or A, and the request permission timing calculated in the procedure C. When the busy end timing is equal to or less than the request permission timing, the banks in the provisionally determined request output order are determined as the final bank order to be accessed in the DMA transfer.
  • the address order generation unit 2210 has the same direction as the access direction most recently accessed so that the switching of the access direction for each bank included in the DRAM 30 is reduced.
  • the order of the bank addresses BA is determined so that the access in the direction different from the most recently accessed direction is continued.
  • a series of DMA transfers in one continuous transfer can be completed without reducing the efficiency of access to the DRAM 30.
  • FIG. 8C An example where the order of the bank addresses BA is determined in order will be described. Note that the processing procedure of the address order determination process for determining the order of the bank addresses BA in the order of the oldest access history shown in FIG. 8C is the same as the processing procedure of the address order determination process described in FIG. is there. Accordingly, in (c) of FIG. 8, as in the example shown in (b) of FIG. 6, the order of the bank addresses BA is “0”, “3”, “6”, “7”, “2”. ”,“ 5 ”,“ 4 ”, and“ 1 ”.
  • the request permission timing is calculated including the read / write switching time. For this reason, in the example shown in FIG. 8C, the minimum DMA request is permitted when the bank switches the access direction from write access to read access, or the bank switches the access direction from read access to write access.
  • the request permission timing is calculated by adding 20T of the read / write switching time instead of 4T of the interval.
  • the address order generation unit 2210 performs access to the DRAM 30 indicated by the order of the bank addresses BA shown in FIG. 8C, that is, the request reception history information REQHIS shown in FIG.
  • the order in which the history is old can also be determined as the order of the final bank address BA.
  • the last DMA transfer in one continuous transfer that is, the request permission timing at which the eighth DMA request is permitted is shown in FIG. 8B. This is slower than the case where the order of the bank addresses BA is determined so as to reduce the switching of the access direction for each bank provided in the DRAM 30. More specifically, in the example shown in FIG.
  • the address order generation unit 2210 calculates the order of a plurality of types of bank addresses BA, and finishes a series of DMA transfers in one continuous transfer earliest from the calculated order of the bank addresses BA.
  • the order that can be performed may be determined as the final bank order.
  • FIG. 9 illustrates still another process (address order determination process) in which the address order generation unit 2210 included in the bus master 220 included in the memory access control device 200 according to the first embodiment of the present invention determines the order of addresses. It is a figure to do. 9 also includes an address order generation unit 2210 provided in the bus master 220 in which the access directions to the DRAM 30 are both write access and read access, as in the first modification of the address order determination process shown in FIG. This is an example of address order determination processing for determining the order of addresses with reference to request acceptance history information REQHIS.
  • FIG. 9 illustrates still another process (address order determination process) in which the address order generation unit 2210 included in the bus master 220 included in the memory access control device 200 according to the first embodiment of the present invention determines the order of addresses. It is a figure to do. 9 also includes an address order generation unit 2210 provided in the bus master 220 in which the access directions to the DRAM 30 are both write access and read access, as in the first modification of the address order determination process
  • An example of the reception history information REQHIS is shown.
  • FIG. 9B the order in which the address order generation unit 2210 reduces switching between read access and write access in the same manner as the address order determination process of the first modification example of the first embodiment.
  • the address order generation unit 2210 collects accesses in the same direction as in the address order determination process of the first modification of the first embodiment, but it takes a bank busy time.
  • An example in which the order of the bank addresses BA is determined so that the period is shortened is shown.
  • the bank busy time is 30T, and the minimum interval at which DMA requests are permitted is 4T, as in the first modification of the address order determination process.
  • the address order generation unit 2210 uses the request reception history information REQHIS as illustrated in FIG.
  • the request output order is provisionally determined with reference to the information of the included access direction signal ACCRW.
  • the address order generation unit 2210 calculates and compares the busy end timing and the request permission timing, Decide on the final bank order. Note that the processing procedure in the second modification of the address order determination process is the same as the processing procedure in the first modification of the address order determination process.
  • the address order generation unit 2210 provisionally determines a plurality of types of request output orders.
  • the address order generation unit 2210 performs the processes of the procedure B and the procedure C for each request output order that has been provisionally determined, so that the access efficiency to the DRAM 30 is improved.
  • a request output order that can finish a series of DMA transfers in one continuous transfer earlier is determined as the final bank order.
  • the address order generation unit 2210 may simultaneously perform the processes of the procedure B and the procedure C for each determined request output order in parallel.
  • the address order generation unit 2210 has the bank addresses BA of “1”, “0”, “4”, “7”, “5”, “6”, as shown in FIG. Address order with reference to request acceptance history information REQHIS indicating that DMA transfer between the bus master 220 and the DRAM 30 was actually performed in the order of “2”, “1”, “3”, “0”. Consider a case where a decision process is performed.
  • the address order generation unit 2210 temporarily determines a plurality of types of request output orders with reference to the information of the access direction signal ACCRW included in the request reception history information REQHIS.
  • the address sequence generation unit 2210 collects accesses in the same direction in the procedure A, and reduces the access direction that was accessed most recently and switching between read access and write access.
  • the address order generation unit 2210 collects accesses in the same direction in the procedure A, and then accesses the addresses indicated in the request reception history information REQHIS in FIG.
  • the request output order determined with priority given to the order in which the history is old is shown, and the busy end timing and request permission timing calculated by performing the processing of the procedure B and the procedure C for the request output order are shown.
  • the read access is performed in the order of the bank addresses BA of “4”, “7”, “5”, and “6”, and then the write access is continued to “2”. , “1”, “3”, and “0” in the order of the bank address BA.
  • the address order generation unit 2210 temporarily determines a plurality of types of request output order, and calculates request permission timing for each of the temporarily determined request output orders.
  • the address order generation unit 2210 determines, as the final bank order, the request output order in which the DMA request is accepted earlier at the calculated request permission timing.
  • a plurality of bus masters for outputting an access request (DMA request) for requesting access to a memory (DRAM 30) whose address space is divided into a plurality of banks
  • DRAM 30 Arbiter DMA bus arbitration unit 230
  • DMA bus arbitration unit 230 Information about a plurality of DMA requests (request reception history information) is acquired and stored as request reception history information (request reception history information REQHIS), and each request reception history information REQHIS stored is output as a request reception history acquisition unit (request).
  • Receiving history acquisition unit 231), and at least one bus master 220 having a high priority among the plurality of bus masters 220 is a high priority bus master (for example, bus master 220-1), the bus master 220-1
  • the bus master 220-1 When successively accessing a plurality of banks of the DRAM 30, the order of banks specified by each DMA request (more specifically, the order of bank addresses BA) is determined with reference to the request acceptance history information REQHIS.
  • the memory access control device (memory access control device 200) is configured to output a DMA request for designating a bank in the determined order.
  • the request reception history acquisition unit 231 includes at least the bank information (bank address BA information) specified in the DMA request and the information indicating the access direction to the DRAM 30 (access direction).
  • the request acceptance history information REQHIS associated with the RW information) is stored for each DMA request accepted by the DMA bus arbitration unit 230, and the bus master 220-1 stores the bank address included in the request acceptance history information REQHIS.
  • a memory access control device that determines the order of bank addresses BA specified by each DMA request based on the BA information in an order to avoid access to the same bank within a predetermined time (bank busy time). 200 is configured.
  • the request reception history acquisition unit 231 further acquires and acquires information (time T information) indicating the timing at which the DMA request is received by the DMA bus arbitration unit 230.
  • the memory access control device 200 is configured to store the information of the time T in association with the corresponding request reception history information and store it as request reception history information REQHIS.
  • the request reception history acquisition unit 231 has a predetermined number (for example, the number of banks provided in the DRAM 30) that is traced back from the DMA request last received by the DMA bus arbitration unit 230.
  • the memory access control device 200 is configured to store request acceptance history information REQHIS for a predetermined period (for example, the same period as the bank busy time) from the present time to the past.
  • the request reception history acquisition unit 231 sets a period for storing the request reception history information REQHIS (for example, the same period as the bank busy time) based on the bank busy time.
  • a memory access control device 200 is configured.
  • a plurality of bus masters for outputting an access request (DMA request) for requesting access to a memory (DRAM 30) whose address space is divided into a plurality of banks
  • the DRAM 30 is connected, arbitrates the DMA request output from each of the bus masters 220, and accepts the arbiter (DMA bus arbitration unit 230) that controls access to the DRAM 30 according to the accepted DMA request, and the DMA bus arbitration unit 230.
  • a request reception history acquisition unit that acquires information (request reception history information) related to a plurality of DMA requests, stores the information as request reception history information (request reception history information REQHIS), and outputs each stored request reception history information REQHIS ( Quest acceptance history acquisition unit 231), and when at least one bus master 220 having a high priority among the plurality of bus masters 220 is a high priority bus master (for example, bus master 220-1), the bus master 220-1 When successively accessing a plurality of banks of the DRAM 30, the order of banks specified by each DMA request (more specifically, the order of bank addresses BA) is determined with reference to the request acceptance history information REQHIS.
  • the image processing apparatus includes a memory access control apparatus (memory access control apparatus 200) that outputs a DMA request for designating a bank in the determined order.
  • a plurality of bus masters for outputting an access request (DMA request) for requesting access to a memory (DRAM 30) whose address space is divided into a plurality of banks
  • the DRAM 30 is connected, arbitrates the DMA request output from each of the bus masters 220, and accepts the arbiter (DMA bus arbitration unit 230) that controls access to the DRAM 30 according to the accepted DMA request, and the DMA bus arbitration unit 230.
  • a request reception history acquisition unit that acquires information (request reception history information) related to a plurality of DMA requests, stores the information as request reception history information (request reception history information REQHIS), and outputs each stored request reception history information REQHIS ( Quest acceptance history acquisition unit 231), and when at least one bus master 220 having a high priority among the plurality of bus masters 220 is a high priority bus master (for example, bus master 220-1), the bus master 220-1 When successively accessing a plurality of banks of the DRAM 30, the order of banks specified by each DMA request (more specifically, the order of bank addresses BA) is determined with reference to the request acceptance history information REQHIS.
  • An imaging apparatus (imaging apparatus 1) is provided that includes an image processing apparatus (image processing apparatus 20) including a memory access control apparatus (memory access control apparatus 200) that outputs a DMA request for designating a bank in the determined order.
  • the memory access control device stores request acceptance history information which is a history of DMA transfer by each bus master 220 sharing the DRAM 30, that is, access history to the DRAM 30. Then, in the memory access control device according to the first embodiment of the present invention, each bus master 220 refers to the stored request reception history information immediately before starting the DMA transfer, and enters the bank busy state. In order to avoid access to a certain bank, the order of bank addresses BA accessing the DRAM 30, that is, the order of DMA transfer is changed. Thereby, in the memory access control device according to the first embodiment of the present invention, the DMA transfer can be continuously performed in the order avoiding the restriction on the bank busy time in the DRAM 30. As a result, in the memory access control apparatus according to the first embodiment of the present invention, the efficiency of access to the DRAM 30 can be increased when performing DMA transfer with the DRAM 30.
  • the bus master 220-1 which is a high priority bus master provided in the memory access control device 200, continuously accesses a plurality of banks provided in the DRAM 30 in one continuous transfer.
  • the case where DMA transfer is performed is shown.
  • the memory access control device 200 Even when the bus master 220-2, which is a low-priority bus master prepared in FIG. 1, outputs a new DMA request, the DMA bus arbitration unit 230, which is an arbiter provided in the memory access control device 200, receives a DMA request from the bus master 220-2. The case of not accepting was shown.
  • a DMA request output by another low priority bus master provided in the memory access control device 200 during a period when the bus master 220-1 outputs a series of DMA requests is received by the DMA bus arbitration unit 230.
  • the DMA transfer of the bus master 220-1 is kept waiting until the DMA transfer of the other low priority bus master for which the DMA request has been accepted is completed.
  • the memory access control device of the present invention may have a function of not accepting DMA requests from other low-priority bus masters while the high-priority bus master is outputting a series of DMA requests. Good. With this function, the memory access control device of the present invention can more reliably obtain the effect of shortening the period until a series of DMA transfers in the high priority bus master is completed.
  • the bus master 220-1 that is a high-priority bus master provided in the memory access control device 200 refers to the request reception history information REQHIIS immediately before starting one continuous transfer, and stores it in the DRAM 30.
  • the case where the order of bank addresses BA to be accessed is determined is shown.
  • the bus master 220-1 performs the address order determination process for determining the order of the bank addresses BA
  • other low priority bus masters including the bus master 220-2 provided in the memory access control device 200 are newly added. It may be possible to output a simple DMA request.
  • the bank of the DRAM 30 designated by another low priority bus master provided in the memory access control device 200 is the same bank as the first bank determined by the bus master 220-1 in the address order determination process.
  • the first DMA transfer in one continuous transfer of the bus master 220-1 is kept waiting until the bank busy time of the bank designated by another low priority bus master elapses.
  • the memory access control device of the present invention may have a function of preventing DMA requests from other low-priority bus masters from being accepted while the high-priority bus master is performing address order determination processing.
  • the memory access control device of the present invention has the effect of changing the order of the bank addresses BA, that is, the effect of improving the access efficiency to the DRAM 30 and shortening the period until a series of DMA transfers are completed. Can be obtained more reliably.
  • the memory access control device performs other low-level operations while the high-priority bus master is outputting a series of DMA requests and while the high-priority bus master is performing address order determination processing.
  • This is a memory access control device having a function of not accepting a DMA request from a priority bus master.
  • the memory access control device of the second embodiment of the present invention is provided in an image processing device mounted on an imaging device such as a still image camera or a moving image camera, for example.
  • the configuration of the imaging apparatus equipped with the image processing apparatus including the memory access control apparatus according to the second embodiment of the present invention is the same as the image processing apparatus 20 including the memory access control apparatus according to the first embodiment shown in FIG. Is the same as the schematic configuration of the imaging apparatus 1 equipped with Therefore, a detailed description of the configuration of the imaging apparatus equipped with the image processing apparatus including the memory access control apparatus according to the second embodiment of the present invention is omitted, and the memory access control according to the first embodiment shown in FIG.
  • the same constituent elements as those of the imaging apparatus 1 equipped with the image processing apparatus 20 including the apparatus are represented, the same reference numerals are used for the description.
  • FIG. 10 is a block diagram showing a schematic configuration of a memory access control device according to the second embodiment of the present invention.
  • the memory access control device according to the second embodiment of the present invention is referred to as “memory access control device 500”.
  • one bus master is a high priority bus master having a high priority. Then, the memory access control device 500 performs an address order determination process for determining the order of the bank addresses BA to be specified during the period when the high priority bus master outputs a series of DMA requests and when performing DMA transfer. In the meantime, it has a function of not accepting DMA requests from other low priority bus masters.
  • the components constituting the memory access control device 500 shown in FIG. 10 include the same components as those constituting the memory access control device 200 of the first embodiment shown in FIG. Therefore, in the following description, in the constituent elements constituting the memory access control device 500, the same constituent elements as those constituting the memory access control apparatus 200 of the first embodiment are given the same reference numerals, A detailed description of each component will be omitted.
  • the bus master 220-2 to the bus master 220-n are also referred to as “bus master 220” when expressed without distinction.
  • the high priority bus master 520 corresponds to, for example, the imaging interface unit 221 or the display interface unit 224 included in the image processing apparatus 20, and each of the bus masters 220 is an image processing apparatus. 20 corresponds to one of the other processing blocks included in 20.
  • a high priority bus master 520 is provided instead of the bus master 220-1 provided in the memory access control device 200 of the first embodiment shown in FIG. 10 includes a DMA bus arbitration unit 530 instead of the DMA bus arbitration unit 230 provided in the memory access control device 200 of the first embodiment shown in FIG. Yes.
  • the DMA bus arbitration unit 530 includes an access arbitration unit 2301, a request reception history acquisition unit 231, and a request reception mask unit 532.
  • the configuration of the DMA bus arbitration unit 530 is a configuration in which a request acceptance mask unit 532 is added to the DMA bus arbitration unit 230 configuring the memory access control device 200 of the first embodiment shown in FIG. That is, in FIG.
  • the memory control unit 2302 provided in the DMA bus arbitration unit 230, the multiplexer (MUX) 2303, the address generation unit 2304, and the data control unit 2305 are also provided in the DMA bus arbitration unit 530.
  • the illustration of each component is omitted.
  • the high priority bus master 520 when starting DMA transfer, DMA request signal DMAREQ-1 indicating that DMA transfer is requested to the DRAM 30 and DMA address indicating the address of the DRAM 30 to be accessed. Address DMAAD-1 and DMA read / write signal DMARW-1 designating the access direction to DRAM 30 are output to DMA bus arbitration unit 530.
  • the high priority bus master 520 starts the requested DMA transfer after the DMA permission is notified by the DMA permission signal DMAACK-1 output from the DMA bus arbitration unit 530.
  • FIG. 10 only the signals of the DMA request signal DMAREQ-1 and the DMA permission signal DMAACK-1 exchanged between the high priority bus master 520 and the DMA bus arbitration unit 530 are shown.
  • the request acceptance mask signal REQMASK for instructing the mask of the DMA request output from the bus master 220 provided in the memory access control device 500 is transmitted to the DMA bus. Output to the arbitration unit 530.
  • This request acceptance mask signal REQMASK is transmitted from the bus master 220 to the DMA bus arbitration unit 530 during the address order determination process in which the high priority bus master 520 determines the order of the bank addresses BA with reference to the request acceptance history information REQHIS. This is a signal for masking not to accept the output DMA request signal DMAREQ.
  • the DMA bus arbitration unit 530 is similar to the DMA bus arbitration unit 230 constituting the memory access control device 200 of the first embodiment, and the DMAs output from the high priority bus master 520 and the bus master 220 by the access arbitration unit 2301.
  • the request signal DMAREQ is arbitrated, and the DMA permission signal DMAACK for notifying that the DMA request has been accepted is output to the high priority bus master 520 or the bus master 220 that has accepted the DMA request.
  • the request reception mask unit 532 includes a DMA request signal DMAREQ output from each bus master 220 in accordance with the DMA request signal DMAREQ-1 and the request reception mask signal REQMASK output from the high priority bus master 520.
  • the output to the access arbitration unit 2301 is masked.
  • the access arbitration unit 2301 included in the DMA bus arbitration unit 530 does not arbitrate the DMA request from the bus master 220 with the DMA request signal DMAREQ masked, and the DMA request signal DMAREQ ⁇ output from the high priority bus master 520. 1 will be accepted.
  • the DMA bus arbitration unit 530 actually controls the DRAM 30 according to the access to the DRAM 30 from either the high priority bus master 520 or the bus master 220 that has received the DMA request, Data transfer (DMA transfer) is performed between the bus master 220 that has received the DMA request and the DRAM 30.
  • DMA transfer Data transfer
  • the DMA bus arbitration unit 530 receives request reception history information related to the DMA request received by the request reception history acquisition unit 231 in the same manner as the DMA bus arbitration unit 230 included in the memory access control apparatus 200 of the first embodiment.
  • the acquired request reception history information REQHIS is output to the high priority bus master 520 and the bus master 220, respectively.
  • the high priority bus master 520 constituting the memory access control device 500 will be described.
  • the high-priority bus master 520 in which the access direction to the DRAM 30 in DMA transfer is only write access (data writing) will be described as an example.
  • the high-priority bus master 520 configured to perform DMA transfer with only write access corresponds to, for example, the imaging interface unit 221 in the imaging apparatus 1 illustrated in FIG.
  • FIG. 11 is a block diagram showing a schematic configuration of the high priority bus master 520 constituting the memory access control device 500 in the second embodiment of the present invention.
  • the high priority bus master 520 includes a buffer write control unit 2201, a buffer unit 2202, a buffer read control unit 2203, a bus interface unit 2204, and an address order generation unit 5210.
  • the bus interface unit 2204 includes a DMA address generation unit 2205.
  • the high priority bus master 520 is different from the bus master 220 shown in FIG. 5 only in that it has a function of outputting a request acceptance mask signal REQMASK.
  • the components of the high priority bus master 520 shown in FIG. 11 include the same components as those provided in the bus master 220 shown in FIG. Therefore, in the following description, in the components of the high-priority bus master 520, the same components as those of the bus master 220 are assigned the same reference numerals and detailed description thereof is omitted, and only the differences from the bus master 220 are described. explain.
  • the address order generation unit 5210 stores input data in any storage area set in the buffer unit 2202 by the buffer write control unit 2201 ( DRAM 30 that is designated when DMA write data DMAWDATA (input data) is DMA-transferred by eight consecutive DMA transfers with reference to the request reception history information REQHIS output from the DMA bus arbitration unit 530.
  • the order of the bank addresses BA for designating the banks prepared for is determined.
  • the address order determination processing in which the address order generation unit 5210 determines the address order with reference to the request reception history information REQHIS is performed by the address order generation unit 2210 shown in FIGS. 6 and 8 to 9. Since this is the same as the address order determination process for determining the address order with reference to REQHIS, detailed description thereof is omitted.
  • the address order generation unit 5210 provides each of the bus masters 220 included in the memory access control device 500 when the high priority bus master 520 (more specifically, the bus interface unit 2204) requests the DMA 30 to perform DMA transfer.
  • a request acceptance mask signal REQMASK for instructing masking of the DMA request signal DMAREQ output from is generated.
  • the request acceptance mask signal REQMASK is received from the time when the address order generation unit 5210 starts the address order determination process for determining the order of the bank addresses BA with reference to the request acceptance history information REQHIS (or a cycle just before that).
  • the bus interface unit 2204 outputs the DMA request signal DMAREQ, it is a signal instructing to mask the DMA request from the other bus master 220 provided in the memory access control device 500.
  • the address order generation unit 5210 outputs the generated request acceptance mask signal REQMASK to the DMA bus arbitration unit 530.
  • the request acceptance mask unit 532 provided in the DMA bus arbitration unit 530 accesses the DMA request signal DMAREQ other than the DMA request signal DMAREQ-1 output from the high priority bus master 520 as described above.
  • the output to the arbitration unit 2301 is masked.
  • the address order generation unit 5210 stores (saves) the buffer read control unit 2203 after the buffer write control unit 2201 completes storage (save) of the input data of one transfer unit in the buffer unit 2202.
  • the output of the request acceptance mask signal REQMASK may be started at any timing as long as before reading of the input data of one transfer unit from the buffer unit 2202 is started.
  • FIG. 12 is a timing chart showing an example of the operation timing of the high priority bus master 520 constituting the memory access control device 500 according to the second embodiment of the present invention.
  • the operation in which the address order generation unit 5210 generates the request acceptance mask signal REQMASK will be described.
  • the buffer write control unit 2201 provided in the high priority bus master 520 sequentially outputs input data (for example, pixel signal data output from the image sensor 10) to the buffer unit 2202 for storage ( Save). Thereafter, the buffer write control unit 2201 confirms that the storage (save) of the input data to the buffer unit 2202 is completed at the timing when the storage (save) of the input data of one transfer unit to the buffer unit 2202 is completed. The address order generation unit 5210 and the buffer read control unit 2203 are notified. In the high-priority bus master 520, the buffer write control unit 2201 does not limit the method for notifying that the storage (storing) of the input data of one transfer unit in the buffer unit 2202 is completed.
  • the address order generation unit 5210 When the address order generation unit 5210 is notified from the buffer write control unit 2201 that the storage (storing) of the input data of one transfer unit in the buffer unit 2202 has been completed, the request reception history from the timing t2.
  • the address order determination process is started with reference to the information REQHIS.
  • the period of the address order determination process performed by the address order generation unit 5210 is indicated by “High” level.
  • the address order generation unit 5210 refers to masking DMA requests from other bus masters 220 provided in the memory access control device 500 at the timing t2 when the address order determination processing is started with reference to the request acceptance history information REQHIS. (In FIG. 12, “High” level) request acceptance mask signal REQMASK is output to DMA bus arbitration unit 530.
  • the request acceptance mask unit 532 provided in the DMA bus arbitration unit 530 performs the high request provided in the memory access control device 500 according to the request acceptance mask signal REQMASK output from the address order generation unit 5210 provided in the high priority bus master 520.
  • the DMA request signal DMAREQ output from the bus master 220 other than the priority bus master 520 is masked.
  • the address order generation unit 5210 transmits address order information indicating the order of the determined address (more specifically, the bank address BA) to the buffer read control unit 2203 and the bus.
  • the data is output to each of the DMA address generation units 2205 in the interface unit 2204.
  • the buffer read control unit 2203 stores all the input data in the transfer unit of one continuous transfer stored (saved) in the buffer unit 2202, that is, the input data of eight DMA transfers as the address sequence information.
  • the data are sequentially read in the order shown and transferred to the bus interface unit 2204.
  • the bus interface unit 2204 When the input data in the transfer unit of the first DMA transfer is transferred from the buffer read control unit 2203, the bus interface unit 2204 performs a DMA request signal DMAREQ-1 for requesting the DMA transfer of the input data, and write access.
  • a DMA read / write signal DMARW-1 and a DMA address DMAAD designating the bank address BA indicated in the address order information are generated.
  • the bus interface unit 2204 outputs the generated DMA request signal DMAREQ-1, DMA read / write signal DMARW-1 (not shown), and DMA address DMAAD-1 to the DMA bus arbitration unit 530 at timing t4. To do.
  • the bus interface unit 2204 notifies the address order generation unit 5210 that the DMA request signal DMAREQ-1 has been output.
  • the method for notifying that the bus interface unit 2204 has output the DMA request signal DMAREQ-1 is not limited.
  • the address order generation unit 5210 receives the request acceptance mask signal REQMASK output to the DMA bus arbitration unit 530 in response to the notification indicating that the DMA request signal DMAREQ-1 input from the bus interface unit 2204 is output.
  • the state is set to indicate that the DMA request from another bus master 220 provided in the access control device 500 is not masked (in FIG. 12, “Low” level).
  • the request acceptance mask unit 532 provided in the DMA bus arbitration unit 530 performs the high request provided in the memory access control device 500 according to the request acceptance mask signal REQMASK output from the address order generation unit 5210 provided in the high priority bus master 520.
  • the masking of the DMA request signal DMAREQ output from the bus master 220 other than the priority bus master 520 is released.
  • the address sequence generation unit 5210 refers to the request acceptance history information REQHIS and starts timing t2 of address sequence determination processing, and then the timing t4 when the bus interface unit 2204 outputs the DMA request signal DMAREQ.
  • the request acceptance mask signal REQMASK is output to the DMA bus arbitration unit 530.
  • the DMA bus arbitration unit 530 receives only the DMA request output from the high priority bus master 520 and outputs the DMA permission signal DMAACK-1 to the high priority bus master 520. Thereafter, the DMA bus arbitration unit 530 performs eight consecutive DMA transfers (one continuous transfer) in response to each DMA request signal DMAREQ-1 output from the high priority bus master 520.
  • the high priority bus master 520 outputs the request acceptance mask signal REQMASK so that the order of the bank addresses BA is determined with reference to the request acceptance history information REQHIS.
  • the DMA bus arbitration unit 530 is instructed not to accept the DMA request signal DMAREQ output from the other bus master 220.
  • the high-priority bus master determines the bank order (more specifically, the bank address BA order) specified by each access request (DMA request). From another bus master (bus master 220) during the period from the start of processing (address order determination processing) (or a cycle just before that) until the first DMA request (DMA request signal DMAREQ) is output.
  • a request acceptance mask signal (request acceptance mask signal REQMASK) for instructing a mask for accepting the input DMA request is output, and the arbiter (DMA bus arbitration unit 230) responds to the request acceptance mask signal REQMASK with a high priority bus master 520.
  • the DMA bus arbitration unit 230 further receives a DMA request input from another bus master 220 during a period in which each DMA request is output from the high priority bus master 520.
  • a memory access control device 500 for masking is configured.
  • the high-priority bus master 520 sharing the DRAM 30 and the DRAM 30 by the respective bus masters 220 are controlled.
  • the access history (request acceptance history information) is stored, and the DMA transfer order is changed so as to avoid access to the bank in the bank busy state.
  • the DMA transfer is continuously performed in the order avoiding the restriction on the bank busy time in the DRAM 30. As a result, the efficiency of access to the DRAM 30 can be increased.
  • the high priority bus master 520 refers to the request reception history information during the address order determination process that determines the order of the bank addresses BA.
  • the DMA bus arbitration unit 530 is instructed to mask the DMA request so that the DMA request output from the bus master 220 is not accepted.
  • the high-priority bus master 520 can more reliably obtain the effect of improving the efficiency of access to the DRAM 30 and the effect of shortening the period until a series of DMA transfers are completed. .
  • the memory access control device In the conventional memory control device, a configuration having a function of masking a DMA request output from a bus master having a low priority can be realized, but the memory access control device according to the second embodiment of the present invention Then, the DRAM 30 is accessed in the order of the bank addresses BA determined in the address order determination process and avoiding access to the banks in the bank busy state. For this reason, the memory access control device according to the second embodiment of the present invention has more bank conflicts than the conventional memory control device having a function of masking the DMA request output from the bus master having a low priority. It can be avoided.
  • the arbiter (DMA bus arbitration unit) constituting the memory access control device of the present invention is connected to each bus master ( The processing block) stores the history of accessing the DRAM shared in the DMA transfer (request acceptance history information).
  • the bus master having the highest priority among the bus masters configuring the memory access control device of the present invention immediately before outputting the DMA request to the arbiter configuring the memory access control device of the present invention.
  • the order of DMA transfer is determined so that the DRAM is accessed with high access efficiency, and the DMA request is output in the determined order.
  • a high-priority bus master constituting the memory access control device of the present invention avoids access to a bank that is in a bank busy state.
  • the order in which the banks provided in the DRAM are accessed (bank address order) is determined, and a DMA request for performing DMA transfer with the DRAM in the determined bank address order is output.
  • the arbiter configuring the memory access control device of the present invention increases the efficiency when accessing the DRAM, and the high priority bus master configuring the memory access control device of the present invention.
  • a bandwidth for DMA transfer can be secured.
  • each embodiment of the present invention it is possible to ensure the performance of the image processing apparatus provided with the memory access control apparatus of the present invention.
  • each embodiment of the present invention a case has been described in which all bus masters constituting the memory access control device of the present invention have a function of determining the order in which DMA transfer is performed with reference to request acceptance history information.
  • the bus master having a high priority differs depending on the operation mode in the imaging apparatus equipped with the image processing apparatus including the memory access control apparatus of the present invention.
  • the bus master with a low priority has a function of determining the order in which DMA transfer is performed by referring to the request reception history information. You may make it the structure which is not.
  • each embodiment of the present invention a case has been described in which there is one bus master having a high priority among the bus masters constituting the memory access control device of the present invention.
  • a plurality of bus masters with high priority may be present in the memory access control device.
  • the order of the bank addresses BA not included in the request acceptance history information such as a configuration in which the bus masters having high priority share the order information for performing the determined DMA transfer. You may provide the structure which knows information mutually.
  • the order of the bank addresses BA when performing the DMA transfer determined by the high priority bus master that performs the DMA transfer later is determined by the DMA transfer determined by the high priority bus master performing the DMA transfer first.
  • the order of the bank addresses BA at the time of performing the access becomes the order of low access efficiency.
  • the high-priority bus master that has not accepted the DMA request refers to the request acceptance history information and determines the DMA transfer order again. You may make it the structure to carry out.
  • the request reception mask unit 532 included in the arbiter (DMA bus arbitration unit 530) constituting the memory access control device of the present invention constitutes the memory access control device of the present invention.
  • a configuration has been shown in which a high-priority bus master (high-priority bus master 520) masks DMA requests from other bus masters even while a series of DMA requests are being output.
  • the request reception mask unit 532 uses the DMA request signal DMAREQ output from the other bus masters 220 by the DMA request signal DMAREQ-1 output from the high priority bus master 520 in addition to the request reception mask signal REQMASK.
  • a configuration for masking was shown.
  • the DMA bus arbitration unit 530 can preferentially accept a series of DMA requests output from the high priority bus master 520 in normal arbitration processing. For example, even when there are a plurality of high-priority bus masters 520, by configuring the DMA bus arbitration unit 530 to have a function of determining a period during which a series of DMA requests are output, each high-priority bus master 520 The output DMA request can be arbitrated. In such a case, the request reception mask unit 532 performs other processing only during a period in which the high priority bus master 520 performs processing (address order determination processing) for determining the order in which DMA transfer is performed with reference to request reception history information. It may be configured to mask a DMA request from the bus master.
  • each embodiment of the present invention a case has been described in which information about bank address information, information indicating an access direction, and information indicating timing at which a DMA request is received is stored as request reception history information.
  • the information stored as the request acceptance history information is not limited to the information shown in each embodiment of the present invention.
  • information indicating the number of data is also received as request reception history information. May be stored in association with each other.
  • the bus master outputs a DMA request that accesses a plurality of consecutive bank addresses in one DMA transfer, the bank address information and the number of data included in the request acceptance history information are set.
  • Each of the plurality of banks accessed by the bus master can be recognized based on the information to be represented.
  • the request reception history acquisition unit 231 that stores request reception history information and the request reception mask unit 532 that masks the DMA request signal DMAREQ are included in the arbiter constituting the memory access control device of the present invention.
  • the configuration provided in the (DMA bus arbitration unit 230 and DMA bus arbitration unit 530) is shown.
  • the configuration including the request reception history acquisition unit 231 and the request reception mask unit 532 that is, the position where the request reception history acquisition unit 231 and the request reception mask unit 532 are arranged
  • a configuration provided outside the arbiter may be used.
  • each function of the memory access control device of the present invention is realized by an integrated circuit such as a dedicated LSI (Large Scale Integration), so-called ASIC (Application Specific Integrated Circuit), an arbiter.
  • a commercially available general-purpose IP (Intellectual Property) core or IP module may be used.
  • information about the internal configuration of general-purpose IP cores and IP modules may not be disclosed. For this reason, the request reception history acquisition unit 231 and the request reception mask unit 532 are arranged outside the arbiter.
  • the request reception history storage unit 2312 provided in the request reception history acquisition unit 231 has output any DMA permission signal DMAACK from the arbiter.
  • the request acceptance history information corresponding to the DMA permission signal DMAACK is stored. More specifically, at the timing when any DMA permission signal DMAACK is output from the arbiter, information on the bank address BA indicated by the DMA address DMAAD corresponding to this DMA permission signal DMAACK, and the access direction indicated by the DMA read / write signal DMARW And the information of the time T output from the counter unit 2311 are associated with each other and stored as request reception history information.
  • each embodiment of the present invention the configuration in which the memory access control device of the present invention is provided in the image processing device mounted on the imaging device has been described.
  • various systems other than the image processing apparatus and the imaging apparatus shown in each embodiment of the present invention can be considered as a system including a memory access control apparatus that performs DMA transfer. Therefore, the processing apparatus and system to which the memory access control apparatus based on the concept of the present invention can be applied are not limited at all. In other words, any processing device or system that performs DMA transfer can similarly apply the concept of the memory access control device of the present invention. The same effect as that of the memory access control device of the present invention can be obtained.
  • Imaging device 10 Image sensor (imaging device) 20 Image processing device (imaging device, memory access control device) 210 DMA bus 221 Imaging interface unit (bus master, memory access control device) 222 Image processing unit (bus master, memory access control device) 223 Video codec (bus master, memory access control device) 224 Display interface (bus master, memory access control device) 230 DMA bus arbitration unit (arbiter, memory access control device) 30 DRAM (memory) 40 Display device (imaging device) 200 Memory Access Control Device (Memory Access Control Device) 220 bus master (bus master, memory access control device) 220-1 Bus master (bus master, high priority bus master, memory access control device) 220-2, 220-n Bus master (bus master, memory access control device) 2201 Buffer write controller (bus master) 2202 Buffer unit (bus master) 2203 Buffer read controller (bus master) 2204 Bus interface unit (bus master) 2205 DMA address generator (bus master) 2210 Address order generator (bus master) 2301 Access Arbitration Department (

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Studio Devices (AREA)
  • Bus Control (AREA)

Abstract

アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力する。

Description

メモリアクセス制御装置、画像処理装置、および撮像装置
 本発明は、メモリアクセス制御装置、画像処理装置、および撮像装置に関する。
 静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、搭載されたシステムLSIなどの画像処理装置によって、様々な画像処理が行われる。撮像装置に搭載される画像処理装置などの多くのシステムLSIでは、接続された1つのDRAM(Dynamic Random Access Memory)を、内蔵する複数の処理ブロック(以下、「バスマスタ」という)が共有している。このようなシステムLSIにおいては、内蔵している複数のバスマスタのそれぞれが、システムLSI内部のデータバスに接続され、各バスマスタは、DMA(Direct Memory Access)転送によってDRAMへのアクセスを行う。このとき、それぞれのバスマスタは、DRAMへのアクセス要求(DMA要求)と、アドレスやアクセス方向(書き込みまたは読み出し)などのDRAMへのアクセスに関する情報(アクセス情報)を出力する。
 また、システムLSIには、内蔵している複数のバスマスタのそれぞれから発行されるDMA要求を調停するDMA調停回路(以下、「アービタ」という)を備えている。アービタは、それぞれのバスマスタから発行されるDMA要求を適切に調停しながら、DRAMへの実際のアクセスを制御している。このアービタによるDMA要求の調停においては、システムとしての性能(パフォーマンス)を満足するように、各バスマスタからのDMA要求を調停することが求められる。このため、アービタは、基本的に、各バスマスタから発行されるDMA要求の中から、DRAMに対するアクセスの効率が最大となるDMA要求を選択して受け付ける。
 ところで、通常のDRAMには、アクセスする際に様々な制約がある。その一つの制約は、一度アクセスしたバンク(例えば、アドレスの下位のビットに相当)はバンクビジー状態となるため、再び同一のバンクにアクセスする場合には、所定の時間(一定時間)を空ける必要があるというものである。また、他の制約として、DRAMのアクセス方向の切り替え、つまり、DRAMに記憶されているデータを読み出すリードアクセスからDRAMにデータを書き込んで記憶させるライトアクセスへの切り替えや、その逆に、ライトアクセスからリードアクセスへの切り替えには、一定のリードライト切り替え時間を要するというものもある。DRAMに対してアクセスする際には、上述したような制約を回避したアクセスを行わないと、DRAMに対するアクセスの効率が低下してしまう。
 このため、アービタは、各バスマスタが現在発行しているDMA要求におけるアクセス情報、各バスマスタの優先度、DRAMの現在の状態(バンクビジー状態、リードアクセスまたはライトアクセスの状態)とから、DMA要求を受け付けるバスマスタを決定する。より具体的には、アービタは、DRAMに対して効率的にアクセスすることを優先し、それぞれのバスマスタから発行されたDMA要求の中から、優先度が高く、DRAMに対するアクセス方向(リードまたはライト)が同じであり、バンクビジー状態ではないバンクに対してアクセスするバスマスタを、DMA要求を受け付けるバスマスタに決定する。これにより、システムLSIでは、DRAMが接続されたデータバスにおけるデータの流れ、つまり、バス帯域を確保することができ、システムLSIを搭載した撮像装置のシステム全体としての動作を保証することができる。
 ところで、撮像装置においては、被写体の撮影や、撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像(スルー画像)の表示など、リアルタイム性が求められる機能がある。撮像装置では、リアルタイム性が求められる機能を実現するためのバスマスタが発行したDMA要求が待たされると、撮像装置のシステムとしての動作に破綻をきたしてしまう。このため、撮像装置においては、リアルタイム性が求められる機能を実現するためのバスマスタの優先度を高く設定し、アービタが、リアルタイム性が求められる優先度が高いバスマスタが発行したDMA要求を優先的に受け付けるようにしている。また、撮像装置に備える優先度が高いバスマスタの中には、複数のバンクに連続してアクセスするものもある。このようなバスマスタでは、バンクインターリーブという方法を用いて、異なるバンクに順次アクセスする、つまり、同一のバンクに連続してアクセスしないようにしている。
 このため、撮像装置においては、優先度が高いバスマスタがDMA要求を発行した場合、その他の優先度が低いバスマスタから発行されたDMA要求や、DRAMに対するアクセス方向が逆であるDMA要求、同一のバンクに対してアクセスするDMA要求などは、受け付けられるまでに相当の時間を要してしまうことになる。しかしながら、優先順位が低いバスマスタであっても、発行したDMA要求が受け付けられる頻度が著しく低下してしまうと、撮像装置のシステムとしての動作に破綻をきたしてしまうことがある。
 そこで、例えば、特許文献1のようなメモリ制御装置の技術が開示されている。特許文献1には、ビジー状態であるバンクに対するアクセス要求をマスクし、アクセス要求を発行してから予め定めた一定時間が経過した後にマスクを解除することによって、少なくとも一定期間ごとにアクセス要求を受け付けるようにそれぞれのアクセス要求を制御するメモリ制御装置、つまり、アービタ(DMA調停回路)の技術が開示されている。また、特許文献1には、アクセス要求が受け付けられたバスマスタの優先度を最下位とする、いわゆる、ラウンドロビン方式の動作をし、現在受け付けられているアクセス要求とアクセス方向が同じ方向のアクセス要求の優先度を高くすることも開示されている。これにより、特許文献1に開示された技術のメモリ制御装置では、同一のバンクに対する連続したアクセスを防止すると共に、DRAMに対するアクセスの効率を高めることができる。
日本国特開2010-218323号公報
 しかしながら、特許文献1に開示された技術では、アクセス要求の調停を行う時点においてDRAMに対するアクセスの効率を高めることができるものの、マスクを解除するタイミングによっては、マスクが解除されたアクセス要求によってアクセスするバンクと、優先度が高いバスマスタが現在アクセスしているバンクまたは次にアクセスするバンクとが同一のバンクとなってしまう、いわゆる、バンク衝突を起こすこともあり得る。これは、特許文献1に開示された技術では、発行されたアクセス要求のマスクを、アクセス要求の調停を行う時点でそれぞれのバスマスタが発行しているアクセス要求、つまり、DMA要求におけるアクセス情報と、DRAMにおける現在のバンクビジー状態とに基づいて行っているため、それぞれのバスマスタが、どのようなバンクの順番でDRAMに対するアクセスを行うのかが考慮されていないからである。
 より具体的には、優先度が高いバスマスタと同じバンクにアクセスする優先度の低いバスマスタのアクセス要求が、優先度が高いバスマスタのアクセス要求が受け付けられた後に解除された場合、この優先度の低いバスマスタは、アクセス要求のマスクが解除されたにもかかわらず、優先度が高いバスマスタがアクセスしたことによるバンクビジー状態が終了するまで、解除されたアクセス要求の受け付けが待たされることになる。また、優先度が高いバスマスタと同じバンクにアクセスする優先度の低いバスマスタのアクセス要求が、バンクビジー状態の終了に近いタイミングで解除された場合、優先度の低いバスマスタにおける解除されたアクセス要求は受け付けられるものの、優先度が高いバスマスタは、優先度の低いバスマスタがアクセスしたことによるバンクビジー状態が終了するまで、アクセス要求の受け付けが待たされることになる。さらに、マスクが解除される優先度の低いバスマスタがアクセスするバンクの順番が、優先度が高いバスマスタがアクセスするバンクの順番と同様の順番である場合、優先度が高いバスマスタは、常にバンクビジー状態が終了するまで、アクセス要求の受け付けが待たされることになる。
 なお、優先度が高いバスマスタが、バンクインターリーブによってバンクの順番を替えている場合であっても、特許文献1に開示された技術では、バスマスタがアクセスするバンクの順番が考慮されていないため、頻度の違いはあるものの、同様にアクセス要求の受け付けが待たされることはある。そして、このようなバンク衝突が頻発してしまうと、DRAMに対するアクセスの効率が低下するばかりではなく、システムとしての動作に破綻をきたしてしまうことにもなる。
 本発明は、上記の課題認識に基づいてなされたものであり、複数の処理ブロックで共有するDRAMに対するアクセスの効率を高めることができるメモリアクセス制御装置、画像処理装置、および撮像装置を提供することを目的としている。
 本発明の第1の態様によれば、メモリアクセス制御装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力する。
 本発明の第2の態様によれば、上記第1の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、少なくとも、前記アクセス要求において指定された前記バンクの情報と、前記メモリに対するアクセス方向を表す情報とを紐づけた前記リクエスト受け付け履歴情報を、前記アービタによって受け付けられたそれぞれの前記アクセス要求ごとに記憶し、前記高優先バスマスタは、前記リクエスト受け付け履歴情報に含まれる前記バンクの情報に基づいて、それぞれの前記アクセス要求によって指定する前記バンクの順序を、同一の前記バンクへの所定の時間内でのアクセスを回避する順序に決定してもよい。
 本発明の第3の態様によれば、上記第2の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、さらに、前記アービタによって前記アクセス要求が受け付けられたタイミングを表す情報を取得し、取得したタイミングを表す情報を、対応する前記リクエスト受け付け履歴情報に紐づけて、前記リクエスト受け付け履歴情報として記憶してもよい。
 本発明の第4の態様によれば、上記第3の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、前記アービタによって最後に受け付けられた前記アクセス要求から遡った予め定めた数、または現時点から過去の予め定めた一定期間の前記リクエスト受け付け履歴情報を記憶してもよい。
 本発明の第5の態様によれば、上記第4の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、前記所定の時間に基づいて、前記リクエスト受け付け履歴情報を記憶する期間を設定してもよい。
 本発明の第6の態様によれば、上記第1の態様から上記第5の態様のいずれか一態様のメモリアクセス制御装置において、前記高優先バスマスタは、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定する処理を開始するときから、最初に前記アクセス要求を出力するまでの期間中に、他の前記バスマスタから入力された前記アクセス要求の受け付けのマスクを指示するリクエスト受け付けマスク信号を出力し、前記アービタは、前記リクエスト受け付けマスク信号に応じて、前記高優先バスマスタ以外の他の前記バスマスタから入力された前記アクセス要求をマスクしてもよい。
 本発明の第7の態様によれば、上記第6の態様のメモリアクセス制御装置において、前記アービタは、さらに、前記高優先バスマスタからそれぞれの前記アクセス要求が出力されている期間中に、他の前記バスマスタから入力された前記アクセス要求をマスクしてもよい。
 本発明の第8の態様によれば、画像処理装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置、を備える。
 本発明の第9の態様によれば、撮像装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置を備える画像処理装置、を備える。
 上記各態様によれば、複数の処理ブロックで共有するDRAMに対するアクセスの効率を高めることができるメモリアクセス制御装置、画像処理装置、および撮像装置を提供することができるという効果が得られる。
本発明の第1の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。 本発明の第1の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するDMAバス調停部の概略構成を示したブロック図である。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するDMAバス調停部に備えたリクエスト受け付け履歴取得部の構成の一例を模式的に示した図である。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するバスマスタの概略構成を示したブロック図である。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定する処理を説明する図である。 本発明の第1の実施形態におけるメモリアクセス制御装置によるDRAMのアクセスタイミングの一例を示したタイミングチャートである。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定する別の処理を説明する図である。 本発明の第1の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定するさらに別の処理を説明する図である。 本発明の第2の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。 本発明の第2の実施形態におけるメモリアクセス制御装置を構成する高優先バスマスタの概略構成を示したブロック図である。 本発明の第2の実施形態におけるメモリアクセス制御装置を構成する高優先バスマスタの動作タイミングの一例を示したタイミングチャートである。
(第1の実施形態)
 以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第1の実施形態のメモリアクセス制御装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。図1は、本発明の第1の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。
 図1に示した撮像装置1は、イメージセンサ10と、画像処理装置20と、DRAM(Dynamic Random Access Memory)30と、表示装置40と、を備えている。また、画像処理装置20は、撮像インターフェース部221と、画像処理部222と、動画コーデック部223と、表示インターフェース部224と、DMA(Direct Memory Access)バス調停部230と、を備えている。画像処理装置20では、撮像インターフェース部221と、画像処理部222と、動画コーデック部223と、表示インターフェース部224と、DMAバス調停部230とのそれぞれが、共通のデータバスであるDMAバス210に接続されている。なお、図1に示した撮像装置1では、撮像インターフェース部221または表示インターフェース部224と、DMAバス調停部230との構成が、本発明のメモリアクセス制御装置に相当する。
 撮像装置1は、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置1は、撮影した静止画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、撮影した動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置1は、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 イメージセンサ10は、撮像装置1に備えた不図示のレンズによって結像された被写体の光学像を光電変換する固体撮像装置である。例えば、イメージセンサ10は、CCD(Charge Coupled Device:電荷結合素子)イメージセンサや、CMOS(Complementary Metal-Oxide Semiconductor:相補型金属酸化膜半導体)イメージセンサに代表される固体撮像装置である。イメージセンサ10は、撮像した被写体の光学像に応じた画素信号を、画像処理装置20に備えた撮像インターフェース部221に出力する。
 DRAM30は、撮像装置1に備えた画像処理装置20において処理される様々なデータを記憶するメモリ(データ記憶部)である。DRAM30は、画像処理装置20に備えたDMAバス調停部230を介してDMAバス210に接続されている。DRAM30は、画像処理装置20におけるそれぞれの処理段階の画像のデータを記憶する。例えば、DRAM30は、イメージセンサ10から出力された画素信号に基づいて撮像インターフェース部221が出力した画素のデータを記憶する。また、例えば、DRAM30は、画像処理装置20に備えた画像処理部222が生成した画像(静止画像や表示画像)のデータ、画像処理装置20に備えた動画コーデック部223が生成した画像(動画像や表示画像)のデータなどのデータを記憶する。なお、DRAM30は、画像処理装置20に備えた画像処理部222や動画コーデック部223が生成した記録画像のデータなども記憶する。
 表示装置40は、画像処理装置20に備えた表示インターフェース部224から出力された表示画像を表示する表示装置である。表示装置40には、表示する表示画像の大きさ、つまり、画素数が異なる様々な表示装置がある。例えば、表示装置40には、VGA(640×480)サイズの画像を表示するTFT(薄膜トランジスター:Thin Film Transistor)液晶ディスプレイ(LCD:Liquid Crystal Display)や、EVF(Electronic View Finder:電子ビューファインダ)など、撮像装置1に搭載され、撮影する被写体を確認するためのビューファインダとして動作する小型の表示装置がある。また、例えば、表示装置40には、フルHD(1920×1080)サイズの画像を表示するHDTV(High Definition TeleVision)や、4K2K(3840×2160)サイズの画像を表示するUHDTV(Ultra High Definition TeleVision)など、撮像装置1に着脱できる構成であり、静止画像や動画像に応じた表示画像を表示して確認するための大型の表示装置もある。
 画像処理装置20は、イメージセンサ10から出力された画素信号に対して予め定めた画像処理を行って、静止画像や動画像を生成する。また、画像処理装置20は、生成した静止画像や動画像に応じた表示画像や記録画像を生成する。そして、画像処理装置20は、生成した表示画像を表示装置40に表示させる。また、画像処理装置20は、生成した静止画像や動画像に応じた記録画像を生成し、生成した記録画像を不図示の記録媒体に記録させることもできる。
 DMAバス調停部230は、DMAバス210に接続されている画像処理装置20内のそれぞれの構成要素からのDMAによるDRAM30へのアクセス要求(DMA要求)を調停するアービタである。DMAバス調停部230は、それぞれの構成要素からのDRAM30へのDMA要求を調停した結果、DMA要求を受け付けた構成要素に、DMA要求を受け付けたことを通知するためのDMA許可を出力する。また、DMAバス調停部230は、DMA要求を受け付けた構成要素(DMA許可を通知した構成要素)とDRAM30との間のDMAバス210を介したデータの受け渡し、つまり、DMA転送を制御する。より具体的には、DMAバス調停部230は、DMA要求を受け付けた構成要素がDMAバス210に出力したデータのDRAM30への転送(書き込み)、およびDRAM30から取得(読み出し)したデータのDMA要求を受け付けた構成要素への出力を制御する。
 また、DMAバス調停部230は、受け付けたDMA要求に関する情報を、履歴として記憶する機能を備えている。DMAバス調停部230が履歴として記憶するDMA要求の情報(以下、「リクエスト受け付け履歴情報」という)には、受け付けたDMA要求ごとに、少なくとも、アクセスするDRAM30の記憶領域を表すアドレス(より具体的には、DRAM30のアドレス空間を分けたバンクを表すアドレス(以下、「バンクアドレス」という))の情報と、DRAM30に対するアクセス方向(書き込み:ライト、または読み出し:リード)を表す情報とが含まれている。DMAバス調停部230は、予め定めた数(例えば、現時点から過去の10回分など)、または予め定めた一定期間(例えば、現時点から過去の一定期間)のリクエスト受け付け履歴情報を記憶する。なお、リクエスト受け付け履歴情報に含まれる現時点から過去の情報として、上述したバンクアドレスの情報およびアクセス方向を表す情報に加えて、現時点から過去にDMA要求を受け付けたタイミングを表す情報が含まれていてもよい。そして、DMAバス調停部230は、記憶したリクエスト受け付け履歴情報を、それぞれの構成要素に出力する。
 撮像インターフェース部221は、イメージセンサ10から出力された画素信号のデータをDRAM30に記憶させる(書き込む)処理ブロックである。撮像インターフェース部221は、画素信号のデータをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスするバスマスタである。撮像インターフェース部221は、イメージセンサ10から出力された画素信号のデータ(以下、「入力画像データ」という)を一時的に保存する。そして、撮像インターフェース部221は、保存した入力画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DMA要求と、入力画像データを記憶させるDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(ライトアクセス)を指定するDMAライト信号とを、DMAバス調停部230に出力する。そして、撮像インターフェース部221は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、つまり、DMAバス調停部230からDMA許可が通知された後に、一時的に保存した入力画像データを、DMAバス調停部230に出力してDRAM30に出力して記憶させる(書き込ませる)。
 なお、撮像インターフェース部221は、イメージセンサ10から出力された画素信号に対して予め定めた撮像処理を施して生成した画像のデータを、入力画像データとしてDMAバス調停部230を介してDRAM30に出力する構成であってもよい。この構成の場合、撮像インターフェース部221は、一時的に保存した入力画像データをDRAM30に出力する際に撮像処理を施す構成であってもよいし、イメージセンサ10から出力された画素信号に対して撮像処理を施してから一時的に保存する構成であってもよい。なお、撮像インターフェース部221がイメージセンサ10から出力された画素信号に対して施す撮像処理は、キズ補正やシェーディング補正などの、いわゆる、前処理である。しかし、本発明においては、撮像インターフェース部221がイメージセンサ10から出力された画素信号に対して施す撮像処理に関しては、特に制限はしない。
 また、撮像インターフェース部221は、DMAバス調停部230から出力されたリクエスト受け付け履歴情報を参照して、DMA要求を出力する順番を変更する機能を備えている。より具体的には、撮像インターフェース部221は、DMA要求と共にDMAバス調停部230に出力するDMAアドレスを、リクエスト受け付け履歴情報においてバンクビジー状態になっていることが表されているバンクを回避する、つまり、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するDMAアドレスに変更する機能を備えている。この機能によって、撮像インターフェース部221は、同一のバンクにアクセスする場合には所定の時間(一定時間)を空ける必要があるというDRAM30おけるアクセスの制約を回避した順番でDRAM30にアクセスして、入力画像データを記憶させる(書き込ませる)DMA転送を行う。
 画像処理部222は、DRAM30に記憶された入力画像データを取得し(読み出し)、取得した入力画像データに対して予め定めた画像処理を施して生成した静止画像のデータ(以下、「静止画像データ」という)をDRAM30に記憶させる(書き込む)処理ブロックである。画像処理部222は、DRAM30から入力画像データを取得する(読み出す)際、および静止画像データをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスするバスマスタである。画像処理部222は、DRAM30から入力画像データを取得する(読み出す)際に、まず、DMA要求と、入力画像データを取得するDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(リードアクセス)を指定するDMAリード信号とを、DMAバス調停部230に出力する。そして、画像処理部222は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、DMAバス調停部230がDRAM30から読み出して出力された入力画像データを一時的に保存する。また、画像処理部222は、保存した入力画像データに対して予め定めた画像処理を施して生成した静止画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DMA要求と、静止画像データを記憶させるDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(ライトアクセス)を指定するDMAライト信号とを、DMAバス調停部230に出力する。そして、画像処理部222は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、静止画像データを、DMAバス調停部230に出力してDRAM30に出力して記憶させる(書き込ませる)。
 なお、画像処理部222は、静止画像データをDRAM30に出力する際に、一時的に保存した入力画像データに対して画像処理を施す構成であってもよいし、DMAバス調停部230から出力された入力画像データに対して画像処理を施して静止画像データを生成してから一時的に保存する構成であってもよい。画像処理部222が入力画像データに対して施す画像処理は、ノイズ除去処理、YC変換処理、リサイズ処理、JPEG圧縮伸張処理など、静止画像における各種の表示用の画像処理や記録用の画像処理である。しかし、本発明においては、画像処理部222が入力画像データに対して施す画像処理に関しては、特に制限はしない。
 また、画像処理部222も、撮像インターフェース部221と同様に、DMA要求と共にDMAバス調停部230に出力するDMAアドレスを、DMAバス調停部230から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するDMAアドレスに変更する機能を備えている。この機能によって、画像処理部222も、撮像インターフェース部221と同様に、DRAM30おけるアクセスの制約を回避した順番でDRAM30にアクセスして、入力画像データの取得(読み出し)と、静止画像データの記憶(書き込み)とのDMA転送を行う。
 動画コーデック部223は、DRAM30に記憶された入力画像データを取得し(読み出し)、取得した入力画像データに対して予め定めた画像処理を施して生成した動画像のデータ(以下、「動画像データ」という)をDRAM30に記憶させる(書き込む)処理ブロックである。動画コーデック部223は、DRAM30から入力画像データを取得する(読み出す)際、および動画像データをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスするバスマスタである。動画コーデック部223は、DRAM30から入力画像データを取得する(読み出す)際に、まず、DMA要求と、入力画像データを取得するDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(リードアクセス)を指定するDMAリード信号とを、DMAバス調停部230に出力する。そして、動画コーデック部223は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、DMAバス調停部230がDRAM30から読み出して出力された入力画像データを一時的に保存する。また、動画コーデック部223は、保存した入力画像データに対して予め定めた画像処理を施して生成した動画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DMA要求と、動画像データを記憶させるDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(ライトアクセス)を指定するDMAライト信号とを、DMAバス調停部230に出力する。そして、動画コーデック部223は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、動画像データを、DMAバス調停部230に出力してDRAM30に出力して記憶させる(書き込ませる)。
 なお、動画コーデック部223は、動画像データをDRAM30に出力する際に、一時的に保存した入力画像データに対して画像処理を施す構成であってもよいし、DMAバス調停部230から出力された入力画像データに対して画像処理を施して動画像データを生成してから一時的に保存する構成であってもよい。動画コーデック部223が入力画像データに対して施す画像処理は、MPEG圧縮伸張処理、H.264圧縮伸張処理など、動画像における各種の表示用の画像処理や記録用の画像処理である。しかし、本発明においては、動画コーデック部223が入力画像データに対して施す画像処理に関しては、特に制限はしない。
 また、動画コーデック部223も、撮像インターフェース部221や画像処理部222と同様に、DMA要求と共にDMAバス調停部230に出力するDMAアドレスを、DMAバス調停部230から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するDMAアドレスに変更する機能を備えている。この機能によって、動画コーデック部223も、画像処理部222と同様に、DRAM30おけるアクセスの制約を回避した順番でDRAM30にアクセスして、入力画像データの取得(読み出し)と、動画像データの記憶(書き込み)とのDMA転送を行う。
 表示インターフェース部224は、DRAM30に記憶された静止画像データや動画像データを取得し(読み出し)、取得した画像データに応じた表示画像を表示装置40に表示させる処理ブロックである。表示インターフェース部224は、DRAM30から静止画像データや動画像データを取得する(読み出す)際に、DMA転送によってDRAM30にアクセスするバスマスタである。表示インターフェース部224は、DRAM30から画像データを取得する(読み出す)際に、まず、DMA要求と、静止画像データまたは動画像データを取得するDRAM30の記憶領域を指定するDMAアドレスと、DRAM30に対するアクセス方向(リードアクセス)を指定するDMAリード信号とを、DMAバス調停部230に出力する。そして、表示インターフェース部224は、出力したDMA要求がDMAバス調停部230に受け付けられた後に、DMAバス調停部230がDRAM30から読み出して出力された画像データを一時的に保存する。そして、表示インターフェース部224は、保存した画像データに応じた表示画像を表示装置40に出力して表示させる。
 なお、表示インターフェース部224は、DMAバス調停部230から出力された画像データに対して予め定めた表示処理を施して生成した表示画像を表示装置40に出力する構成であってもよい。この構成の場合、表示インターフェース部224は、一時的に保存した画像データを表示装置40に出力する際に表示処理を施す構成であってもよいし、DMAバス調停部230から出力された画像データに対して表示処理を施してから一時的に保存する構成であってもよい。なお、表示インターフェース部224がDMAバス調停部230から出力された画素信号に対して施す表示処理は、例えば、撮影日時などの静止画像や動画像に関する様々な情報を表示させるためのオンスクリーンディスプレイ(On Screen Display:OSD)画像を重畳する処理などである。しかし、本発明においては、表示インターフェース部224がDMAバス調停部230から出力された画素信号に対して施す表示処理に関しては、特に制限はしない。
 また、表示インターフェース部224も、撮像インターフェース部221、画像処理部222、および動画コーデック部223と同様に、DMA要求と共にDMAバス調停部230に出力するDMAアドレスを、DMAバス調停部230から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するDMAアドレスに変更する機能を備えている。この機能によって、表示インターフェース部224も、撮像インターフェース部221と同様に、DRAM30おけるアクセスの制約を回避した順番でDRAM30にアクセスして、静止画像データや動画像データを取得する(読み出す)DMA転送を行う。
 このような構成によって、撮像装置1は、イメージセンサ10によって被写体の静止画像や動画像を撮影し、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、イメージセンサ10によって撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 撮像装置1においては、画像処理装置20に備えたそれぞれの処理ブロックであるバスマスタと、アービタであるDMAバス調停部230とによって、本発明の第1の実施形態のメモリアクセス制御装置が構成される。より具体的には、撮像装置1においては、受け付けたDMA要求に関する履歴(リクエスト受け付け履歴情報)を記憶するアービタの機能と、リクエスト受け付け履歴情報を参照してDMA要求を出力する順番を変更するバスマスタの機能とによって、本発明の第1の実施形態のメモリアクセス制御装置の動作が実現される。さらに具体的には、撮像装置1において優先的にDMA転送を行う最も優先度が高いバスマスタ(以下、「高優先バスマスタ」という)とアービタとの組み合わせによって、本発明の第1の実施形態のメモリアクセス制御装置が構成される。
 なお、撮像装置1では、撮像装置1が実行する動作、いわゆる、動作モードによって、高優先バスマスタとなるバスマスタが異なる。このため、撮像装置1では、それぞれの動作モードごとに、本発明の第1の実施形態のメモリアクセス制御装置を構成するバスマスタとアービタとの組み合わせが異なる。
 例えば、撮像装置1が、複数の静止画像を連続して高速に撮影する高速連写の動作を行う場合、撮像インターフェース部221は、イメージセンサ10から出力されたそれぞれのフレームの入力画像データを、DMA転送によってDRAM30に逐次記憶させる(書き込む)必要があるバスマスタとなる。この場合、撮像インターフェース部221が、優先的にDMA転送を行う高優先バスマスタとなり、撮像インターフェース部221とDMAバス調停部230との組み合わせによって、本発明の第1の実施形態のメモリアクセス制御装置が構成される。また、例えば、撮像装置1が、静止画像や動画像を撮影する際に、撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像(スルー画像)を、例えば、EVFとUHDTVとに同時に表示させる表示動作を行う場合、表示インターフェース部224は、DRAM30に記憶されたそれぞれのフレームの表示用の画像データを、DMA転送によってDRAM30から逐次取得する(読み出す)必要があるバスマスタとなる。この場合、表示インターフェース部224が、優先的にDMA転送を行う高優先バスマスタとなり、表示インターフェース部224とDMAバス調停部230との組み合わせによって、本発明の第1の実施形態のメモリアクセス制御装置が構成される。
 このように、撮像装置1においては、動作モードに応じて、画像処理装置20に備えたいずれかのバスマスタ(処理ブロック)とアービタ(DMAバス調停部230)との組み合わせによって、本発明の第1の実施形態のメモリアクセス制御装置が構成される。
 なお、撮像装置1においては、それぞれの動作モードにおいて高優先バスマスタとなるバスマスタ(処理ブロック)が1つであるとは限らない。従って、本発明の第1の実施形態のメモリアクセス制御装置は、1つのバスマスタ(処理ブロック)とアービタ(DMAバス調停部230)とによる構成に限定されるものではなく、複数のバスマスタとアービタとから構成されてもよい。例えば、撮像装置1が、撮影した被写体の動画像をリアルタイムに不図示の記録媒体に記録させる動画記録の動作を行う場合には、撮像インターフェース部221と、動画コーデック部223と、不図示の記録処理部とが、逐次DMA転送を行う必要があるバスマスタとなる。この場合、撮像インターフェース部221、動画コーデック部223、および不図示の記録処理部のそれぞれが高優先バスマスタとなり、この複数の高優先バスマスタとDMAバス調停部230との組み合わせによって、本発明の第1の実施形態のメモリアクセス制御装置が構成されることになる。
 次に、本発明の第1の実施形態のメモリアクセス制御装置の構成および動作について説明する。図2は、本発明の第1の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。以下の説明においては、本発明の第1の実施形態におけるメモリアクセス制御装置を、「メモリアクセス制御装置200」という。図2には、n個(n=自然数、正の整数)のバスマスタ(バスマスタ220-1~バスマスタ220-n)とDMAバス調停部230とによって構成され、DRAM30にアクセスするメモリアクセス制御装置200の概略構成の一例を示している。以下の説明においては、バスマスタ220-1~バスマスタ220-nのそれぞれを区別せずに表すときには、「バスマスタ220」という。なお、撮像装置1においては、バスマスタ220のそれぞれが、画像処理装置20に備えたいずれかの処理ブロックに対応する。
 それぞれのバスマスタ220は、DMA転送を開始する際に、DRAM30へのアクセスを要求(DMA要求)することを表すDMA要求信号DMAREQと、アクセスするDRAM30のアドレスを表すDMAアドレスDMAADと、DRAM30に対するアクセス方向を指定するDMAリードライト信号DMARWとを、DMAバス調停部230に出力する。
 なお、図2においては、それぞれのバスマスタ220がDMAバス調停部230にDMA要求として出力するDMA要求信号DMAREQのみを示している。そして、図2においては、それぞれのDMA要求信号DMAREQの信号名に続く「-」の後に、DMA要求信号DMAREQを出力するバスマスタ220を区別するための数字を示している。より具体的には、バスマスタ220-1が出力するDMA要求信号DMAREQは、信号名に続く「-」の後に「1」を示して、「DMA要求信号DMAREQ-1」と表している。また、バスマスタ220-2が出力するDMA要求信号DMAREQは、信号名に続く「-」の後に「2」を示して、「DMA要求信号DMAREQ-2」と表している。また、バスマスタ220-nが出力するDMA要求信号DMAREQは、信号名に続く「-」の後に「n」を示して、「DMA要求信号DMAREQ-n」と表している。
 なお、以下の説明においては、それぞれのバスマスタ220がDMA要求信号DMAREQと共にDMAバス調停部230に出力するDMAアドレスDMAADおよびDMAリードライト信号DMARWのそれぞれにも、DMA要求信号DMAREQと同様に、信号名に続く「-」の後にバスマスタ220を区別するための数字を示して説明する。
 なお、それぞれのバスマスタ220は、DMA要求信号DMAREQと、DMAアドレスDMAADと、DMAリードライト信号DMARWとの他にも、例えば、バースト長などのDMA転送においてDRAM30との間での受け渡しをするデータの数や、現在の緊急度などの情報も、DMA要求信号DMAREQと共にDMAバス調停部230に出力してもよい。
 DMAバス調停部230は、それぞれのバスマスタ220から出力されたDMA要求を調停し、DMA要求に応じてDRAM30へのアクセスを受け付けたバスマスタ220にDMA許可を出力する。
 なお、図2においては、DMAバス調停部230がそれぞれのバスマスタ220にDMA許可を通知するDMA許可信号DMAACKを示している。そして、図2においては、それぞれのDMA許可信号DMAACKの信号名に続く「-」の後に、DMA許可信号DMAACKを出力するバスマスタ220を区別するための数字を示している。より具体的には、バスマスタ220-1に出力するDMA許可信号DMAACKは、信号名に続く「-」の後に「1」を示して、「DMA許可信号DMAACK-1」と表している。また、バスマスタ220-2に出力するDMA許可信号DMAACKは、信号名に続く「-」の後に「2」を示して、「DMA許可信号DMAACK-2」と表している。また、バスマスタ220-nに出力するDMA許可信号DMAACKは、信号名に続く「-」の後に「n」を示して、「DMA許可信号DMAACK-n」と表している。
 また、DMAバス調停部230は、受け付けたDMA要求に関するリクエスト受け付け履歴情報を、それぞれのバスマスタ220に出力する。図2には、受け付けたDMA要求に関する種々の情報を取得し、取得した情報をリクエスト受け付け履歴情報REQHISとしてそれぞれのバスマスタ220に出力するリクエスト受け付け履歴取得部231を備えた構成のDMAバス調停部230を示している。
 そして、それぞれのバスマスタ220は、DMAバス調停部230からDMA許可が通知された後、つまり、DMAバス調停部230からDMA許可信号DMAACKが入力されたバスマスタ220のみが、要求したDMA転送(DRAM30へのアクセス)を開始する。これにより、DMAバス調停部230は、DMA要求を受け付けたバスマスタ220からのDRAM30へのアクセスに応じて、実際にDRAM30を制御する。つまり、DMAバス調停部230は、DMA要求を受け付けたバスマスタ220とDRAM30との間でのデータの受け渡し(DMA転送)を行う。
 次に、メモリアクセス制御装置200を構成するDMAバス調停部230のより詳細な構成および動作について説明する。図3は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するDMAバス調停部230の概略構成を示したブロック図である。DMAバス調停部230は、アクセス調停部2301と、メモリ制御部2302と、マルチプレクサ(MUX)2303と、アドレス生成部2304と、データ制御部2305と、リクエスト受け付け履歴取得部231と、を備えている。
 アクセス調停部2301は、それぞれのバスマスタ220から出力されたDMA要求信号DMAREQを調停し、DMA要求信号DMAREQを出力しているそれぞれのバスマスタ220の中から、いずれか1つのバスマスタ220を選択する。より具体的には、アクセス調停部2301は、それぞれのバスマスタ220の優先度や、出力したDMA要求信号DMAREQが受け付けられない時間の長さに応じた緊急度などに基づいて、それぞれのバスマスタ220から出力されたDMA要求信号DMAREQを調停し、DRAM30に対するアクセスの効率が最大となるように、それぞれのバスマスタ220を順次選択する。なお、アクセス調停部2301におけるバスマスタ220の選択(調停)方法としては、既存のDMA調停回路(バスアービタ)における様々な選択(調停)方法を採用することができる。
 そして、アクセス調停部2301は、選択したバスマスタ220を表す選択信号を、マルチプレクサ2303に出力する。また、アクセス調停部2301は、選択したバスマスタ220によるDRAM30に対するアクセス方向を表すアクセス方向信号ACCRWを、メモリ制御部2302に出力する。より具体的には、アクセス調停部2301は、選択したバスマスタ220からDMA要求信号DMAREQと共に出力されたDMAリードライト信号DMARWに基づいて、選択したバスマスタ220によるDRAM30へのアクセスが、ライトアクセス(データの書き込み)であるか、リードアクセス(データの読み出し)であるかを表すアクセス方向信号ACCRWを、メモリ制御部2302およびリクエスト受け付け履歴取得部231のそれぞれに出力する。
 また、アクセス調停部2301は、出力したアクセス方向信号ACCRWに応じて実際にDRAM30を制御したときにメモリ制御部2302から出力されるアクセス実行信号ACCEXEに基づいてDMA許可信号DMAACKを生成し、生成したDMA許可信号DMAACKを、選択したバスマスタ220に出力する。
 図3においては、バスマスタ220-1~バスマスタ220-nのそれぞれがアクセス調停部2301に出力する、DMA要求信号DMAREQ-1~DMA要求信号DMAREQ-n、およびDMAリードライト信号DMARW-1~DMAリードライト信号DMARW-nのそれぞれを示している。また、図3においては、アクセス調停部2301がバスマスタ220-1~バスマスタ220-nのそれぞれに出力する、DMA許可信号DMAACK-1~DMA許可信号DMAACK-nのそれぞれを示している。
 メモリ制御部2302は、アクセス調停部2301から出力されたアクセス方向信号ACCRWに基づいて、アクセス調停部2301が選択したバスマスタ220からのアクセスに応じて実際にDRAM30にアクセスするための制御信号を生成し、生成した制御信号をDRAM30に出力する。
 図3においては、メモリ制御部2302がDRAM30に出力する、チップ選択(Chip Select)信号CS、行アドレスストローブ(Row Address Strobe)信号RAS、列アドレスストローブ(Column Address Strobe)信号CAS、およびライトイネーブル(Write enable)信号WEのそれぞれを示している。
 また、メモリ制御部2302は、実際にDRAM30に対するアクセスを行ったことを表すアクセス実行信号ACCEXEを生成し、生成したアクセス実行信号ACCEXEを、アクセス調停部2301およびリクエスト受け付け履歴取得部231のそれぞれに出力する。
 マルチプレクサ2303は、アクセス調停部2301から出力された選択信号に従って、アクセス調停部2301が選択したバスマスタ220からDMA要求信号DMAREQと共に出力されたDMAアドレスDMAADを選択し、選択したDMAアドレスDMAADをアドレス生成部2304に出力する。また、マルチプレクサ2303は、アクセス調停部2301から出力された選択信号に従って、アクセス調停部2301が選択したバスマスタ220がDRAM30へのライトアクセスを行う際にDMA要求信号DMAREQと共に出力されるDMA書き込みデータDMAWDATAを選択し、選択したDMA書き込みデータDMAWDATAをデータ制御部2305に出力する。
 また、マルチプレクサ2303は、アクセス調停部2301から出力された選択信号に従って、アクセス調停部2301が選択したバスマスタ220がDRAM30へのリードアクセスを行った際にデータ制御部2305がDRAM30から実際に読み出して出力したデータを、DMA読み出しデータDMARDATAとしてアクセス調停部2301が選択したバスマスタ220に出力する。
 図3においては、バスマスタ220-1~バスマスタ220-nのそれぞれがマルチプレクサ2303に出力する、DMAアドレスDMAAD-1~DMAアドレスDMAAD-n、およびDMA書き込みデータDMAWDATA-1~DMA書き込みデータDMAWDATA-nのそれぞれを示している。また、図3においては、マルチプレクサ2303がバスマスタ220-1~バスマスタ220-nのそれぞれに出力する、DMA読み出しデータDMARDATA-1~DMA読み出しデータDMARDATA-nのそれぞれを示している。
 アドレス生成部2304は、マルチプレクサ2303から出力されたDMAアドレスDMAADに基づいて、アクセス調停部2301が選択したバスマスタ220からのアクセスに応じて実際にアクセスするDRAM30のアドレスを生成し、生成したアドレスをDRAM30に出力する。
 図3においては、アドレス生成部2304がDRAM30およびリクエスト受け付け履歴取得部231のそれぞれに出力する、バンクアドレス(Bank Address)BAと、行列アドレス(Address)Aとのそれぞれを示している。なお、アドレス生成部2304は、生成したバンクアドレスBAを、リクエスト受け付け履歴取得部231にも出力する。
 データ制御部2305は、アクセス調停部2301が選択したバスマスタ220がDRAM30へのライトアクセスを行う際に、マルチプレクサ2303から出力されたDMA書き込みデータDMAWDATAを、実際に書き込む(記憶させる)データとしてDRAM30に出力する。また、データ制御部2305は、アクセス調停部2301が選択したバスマスタ220がDRAM30へのリードアクセスを行った際に、DRAM30から実際に読み出した(取得した)データを、マルチプレクサ2303に出力する。
 図3においては、データ制御部2305がDRAM30との間で受け渡し(読み書き)する、つまり、アクセス調停部2301が選択したバスマスタ220がDRAM30との間でDMA転送を行うデータ(Data)DQを示している。
 リクエスト受け付け履歴取得部231は、メモリ制御部2302から出力されたアクセス実行信号ACCEXE、アクセス調停部2301から出力されたアクセス方向信号ACCRW、およびアドレス生成部2304から出力されたバンクアドレスBAに基づいて、アクセス調停部2301が選択したバスマスタ220によるDMA要求に関する情報(リクエスト受け付け履歴情報)を取得する。上述したように、リクエスト受け付け履歴情報としては、少なくとも、受け付けたDMA要求においてアクセスするDRAM30のバンクアドレスBAの情報と、DRAM30に対するアクセス方向を表す情報とが含まれている。リクエスト受け付け履歴取得部231は、バンクアドレスBAの情報とアクセス方向を表す情報とのそれぞれの情報を紐づけて記憶する。なお、リクエスト受け付け履歴情報に、DMA要求を受け付けたタイミングを表す情報がさらに含まれている場合には、バンクアドレスBAの情報と、アクセス方向を表す情報と、DMA要求を受け付けたタイミングを表す情報とのそれぞれの情報を紐づけて記憶する。そして、リクエスト受け付け履歴取得部231は、記憶したそれぞれの情報を、リクエスト受け付け履歴情報REQHISとして、それぞれのバスマスタ220に出力する。
 ここで、リクエスト受け付け履歴取得部231がリクエスト受け付け履歴情報を取得して記憶する構成について説明する。図4は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するDMAバス調停部230に備えたリクエスト受け付け履歴取得部231の構成の一例を模式的に示した図である。図4には、バンクアドレスBAの情報およびアクセス方向を表す情報に加えて、DMA要求を受け付けたタイミングを表す情報を、リクエスト受け付け履歴情報として取得するリクエスト受け付け履歴取得部231の構成を示している。リクエスト受け付け履歴取得部231は、カウンタ部2311と、リクエスト受け付け履歴記憶部2312と、を備えている。
 カウンタ部2311は、DRAM30が動作するクロック信号に基づいて、DMAバス調停部230が動作を開始したときからの経過時間を計測する時間計測部である。カウンタ部2311は、計測した経過時間の情報(以下、「時間T」という)を、リクエスト受け付け履歴記憶部2312に逐次出力する。
 なお、カウンタ部2311は、DMAバス調停部230が動作を開始したときから、予め定めた期間(時間)を周期的に計測する構成であってもよい。この構成の場合、カウンタ部2311が表す時間Tは、予め定めた期間(時間)の周期で繰り返されるため、2つの時間を比較したときに、この2つの時間が異なる周期の時間である場合には、時間Tが表す時間の前後の関係が逆転していることも考えられる。しかし、カウンタ部2311が周期的に計測する予め定めた期間(時間)がわかっていれば、この2つの時間の前後の関係を正しく判定することができる。例えば、カウンタ部2311が周期的に計測する予め定めた期間(時間)を、DRAM30の同一のバンクにアクセスする際に空ける必要がある所定の時間、つまり、DRAM30がバンクビジー状態であるバンクビジー時間とすることによって、カウンタ部2311はバンクビジー時間を周期的に連続して計測するため、バンクビジー時間内における2つの時間の前後の関係を正しく判定することができる。
 以下の説明においては、説明を容易にするため、カウンタ部2311が、DMAバス調停部230が動作を開始したときからの経過時間を計測するフリーランカウンタの構成であるものとして説明する。従って、カウンタ部2311は、時間の前後の関係が逆転していない時間Tを、リクエスト受け付け履歴記憶部2312に逐次出力する。
 リクエスト受け付け履歴記憶部2312は、メモリ制御部2302からアクセス実行信号ACCEXEが入力されたタイミングで、アドレス生成部2304から出力されたバンクアドレスBA、アクセス調停部2301から出力されたアクセス方向信号ACCRW、およびカウンタ部2311から出力された時間Tのそれぞれの情報を紐づけて、リクエスト受け付け履歴情報として記憶するデータ記憶部である。リクエスト受け付け履歴記憶部2312は、紐づけられたそれぞれの情報を記憶する記憶領域を複数備えた、例えば、FIFO(First In,First Out)形式のメモリで構成されている。
 リクエスト受け付け履歴記憶部2312は、メモリ制御部2302からアクセス実行信号ACCEXEが入力されるごとに、バンクアドレスBAの情報と、アクセス方向信号ACCRWが表すアクセス方向(リードアクセスまたはライトアクセス)の情報と、時間Tの情報(つまり、アクセス実行信号ACCEXEが入力された時間の情報)とのそれぞれの情報を紐づけて、記憶領域に記憶する。そして、リクエスト受け付け履歴記憶部2312は、それぞれの記憶領域に紐づけて記憶したそれぞれの情報を、リクエスト受け付け履歴情報REQHISとしてそれぞれのバスマスタ220に出力する。
 図4には、N段(N=自然数、正の整数)の記憶領域を備えたFIFO形式で構成され、それぞれの記憶領域ごとにバンクアドレスBA、アクセス方向RW、および時間Tのそれぞれの情報を紐づけて記憶する構成のリクエスト受け付け履歴記憶部2312の一例を示している。なお、図4においては、それぞれの情報に続く「-」の後に、記憶領域の番号を表す数字を示している。より具体的には、リクエスト受け付け履歴記憶部2312に備えた1番目の記憶領域に記憶したそれぞれの情報に続く「-」の後に「1」を示して、「バンクアドレスBA-1」、「アクセス方向RW-1」、「時間T-1」と表している。また、リクエスト受け付け履歴記憶部2312に備えた2番目の記憶領域に記憶したそれぞれの情報に続く「-」の後に「2」を示して、「バンクアドレスBA-2」、「アクセス方向RW-2」、「時間T-2」と表している。また、リクエスト受け付け履歴記憶部2312に備えたN番目の記憶領域に記憶したそれぞれの情報に続く「-」の後に「N」を示して、「バンクアドレスBA-N」、「アクセス方向RW-N」、「時間T-N」と表している。
 なお、リクエスト受け付け履歴記憶部2312は、少なくとも、DRAM30におけるバンクビジー時間に基づいて設定された期間(例えば、バンクビジー時間と同じ期間)のリクエスト受け付け履歴情報を記憶することができる数の記憶領域を備えた構成にしてもよい。この構成では、リクエスト受け付け履歴記憶部2312に備える記憶領域、つまり、FIFO形式のメモリの記憶容量を削減することができる。そして、この構成のリクエスト受け付け履歴記憶部2312では、バンクビジー時間が経過した後のリクエスト受け付け履歴情報、つまり、DRAM30のそれぞれのバンクに対してアクセスした過去のそれぞれの情報を、最新の情報で上書きして破棄するように動作する。この動作であっても、リクエスト受け付け履歴取得部231は、より多くの記憶領域を備えた構成と同様の機能を実現することができる。これは、DRAM30におけるバンクビジー時間は、DRAM30の規格によって予め定められており、DRAM30のそれぞれのバンクに対してバンクビジー時間よりも以前にアクセスしたリクエスト受け付け履歴情報は、後述するバスマスタ220がバンク衝突を回避するためにアクセスするバンクアドレスを決定する際に用いる必要がない情報であるからである。
 なお、リクエスト受け付け履歴記憶部2312の構成は、上述したFIFO形式の構成に限定されるものではない。例えば、リクエスト受け付け履歴記憶部2312は、少なくとも、DRAM30に備えたそれぞれのバンクに対応する記憶領域、つまり、DRAM30に備えたバンクの数と同じ数の記憶領域を備えた構成にしてもよい。この構成のリクエスト受け付け履歴記憶部2312では、それぞれのバンクに対するアクセスが行われるごとに、アクセスされたバンクに対応する記憶領域に記憶しているアクセス方向RWおよび時間Tのそれぞれの情報を更新するように動作する。
 なお、以下の説明においては、リクエスト受け付け履歴記憶部2312の構成が上述したFIFO形式の構成であるものとして説明する。そして、リクエスト受け付け履歴記憶部2312では、リクエスト受け付け履歴取得部231において新たにバンクアドレスBA、アクセス方向RW、および時間Tのそれぞれの情報を取得するごとに、すでにそれぞれの記憶領域に記憶されているそれぞれの情報を、それぞれの情報に続く「-」の後に示した記憶領域の番号の数字に「1」を加算(インクリメント)した記憶領域に順次移動していくものとして説明する。つまり、以下の説明においては、最新のそれぞれの情報が常に、「-」の後に示した数字が「1」となるものとして説明する。また、以下の説明においては、リクエスト受け付け履歴情報に含まれるバンクアドレスBA、アクセス方向RW、および時間Tのそれぞれの情報を区別せずに表す場合には、リクエスト受け付け履歴情報REQHISに続く「-」の後に、リクエスト受け付け履歴情報を記憶している記憶領域の番号を表す数字を示して説明する。
 次に、メモリアクセス制御装置200を構成するバスマスタ220のより詳細な構成および動作について説明する。なお、以下の説明においては、DMA転送におけるDRAM30へのアクセス方向が、ライトアクセス(データの書き込み)のみであるバスマスタ220を例として説明する。このライトアクセスのみのDMA転送を行う構成のバスマスタ220は、図1に示した撮像装置1においては、例えば、撮像インターフェース部221に相当する。
 図5は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するバスマスタ220の概略構成を示したブロック図である。図5には、アドレス空間が8つのバンクに分けられたDRAM30に対して、8つのバンクのそれぞれに連続してアクセスする連続転送によって、8つのバンク分のデータをまとめてDMA転送する、つまり、8回のDMA転送を連続して行うバスマスタ220の構成の一例を示している。ここで、連続転送とは、一般的なDRAMに元々備わっているバースト転送という機能とは異なり、8個のリクエストを連続して発行することを表している。つまり、連続転送とは、バスマスタ220が8回のDMA転送を連続して行える状態になったときに、8回連続でDMA転送を行うことを表している。このため、連続転送において8回連続で行われる各回のDMA転送では、それぞれ異なるバンクアドレスBAに対するアクセスとなる。
 バスマスタ220は、バッファライト制御部2201と、バッファ部2202と、バッファリード制御部2203と、バスインターフェース部2204と、アドレス順序生成部2210と、を備えている。また、バスインターフェース部2204は、DMAアドレス生成部2205を備えている。
 バッファライト制御部2201は、入力された入力データ(例えば、イメージセンサ10から出力された画素信号のデータ)を、バッファ部2202に順次出力して記憶(保存)させる。
 バッファ部2202は、バッファライト制御部2201から順次出力された入力データを一時的に記憶(保存)するデータ記憶部である。バッファ部2202は、例えば、SRAM(Static Random Access Memory)などのメモリで構成される。バッファ部2202は、DRAM30にDMA転送するデータを保存する記憶領域を、少なくとも、DRAM30に備えたバンクの数と同じ数分備えている。このため、DRAM30に備えた8つのバンク分のデータをまとめてDMA転送(連続転送)する構成である図5に示したバスマスタ220に備えたバッファ部2202は、少なくとも、8つの記憶領域を備えている。図5においては、バッファ部2202内のそれぞれの記憶領域に、対応するDRAM30のバンクを表す数字を示している。バスマスタ220では、バッファ部2202に備えた1組の記憶領域に記憶した全てのデータが、連続転送の転送単位であり、それぞれの記憶領域のデータが、1回のDMA転送の転送単位となる。
 なお、図5には、DRAM30に備えた8つのバンクのそれぞれに対応する8つの記憶領域の組を、4組備えた構成のバッファ部2202を示している。この構成によって、バスマスタ220は、それぞれの記憶領域の組ごとのデータを連続して転送する連続転送を、4回行うことができる。
 バッファリード制御部2203は、バッファライト制御部2201によってバッファ部2202内のいずれかの記憶領域の組に入力データが記憶(保存)されると、アドレス順序生成部2210から出力されたDMA転送を行う際のアドレスの順序を表す情報(以下、「アドレス順序情報」という)に従って、それぞれのバンクに対応する記憶領域ごとに、記憶(保存)された入力データを順次読み出す。そして、バッファリード制御部2203は、読み出した入力データを、バスインターフェース部2204に順次出力する。つまり、バッファリード制御部2203は、バッファ部2202に記憶(保存)された1回の連続転送の転送単位の全ての入力データを、アドレス順序情報が表す順番で、それぞれのDMA転送の転送単位ごとに順次読み出して、バスインターフェース部2204に転送する。
 なお、バスマスタ220においては、バッファライト制御部2201がバッファ部2202に入力データを記憶(保存)させるタイミングと、バッファリード制御部2203がバッファ部2202に記憶(保存)された入力データを読み出すタイミングとに関しては、何ら限定しない。従って、バッファ部2202は、入力データの書き込みタイミングと入力データの読み出しタイミングとを異なるタイミングで制御することができるSRAMであってもよい。また、バスマスタ220においては、バッファライト制御部2201によって1つの転送単位の入力データのバッファ部2202への記憶(保存)が完了したタイミングと、バッファリード制御部2203によって1つの転送単位の入力データのバッファ部2202からの読み出しが完了したタイミングとを整合させる構成や方法に関しても、何ら限定しない。
 バスインターフェース部2204は、バッファリード制御部2203から転送された入力データ、つまり、バスマスタ220がDRAM30に記憶させる(書き込む)DMA書き込みデータDMAWDATAをDMA転送するためのインターフェース部である。バスインターフェース部2204は、バッファリード制御部2203から、それぞれのDMA転送の転送単位の入力データが転送されるごとに、DMA転送を要求するためのDMA要求信号DMAREQ、ライトアクセスを表すDMAリードライト信号DMARW、およびDMAアドレスDMAADを生成して出力し、DMAバス調停部230にDMA転送を要求する。
 このとき、バスインターフェース部2204では、DMAアドレス生成部2205が、DMAアドレスDMAADを生成する。より具体的には、DMAアドレス生成部2205は、アドレス順序生成部2210から出力されたアドレス順序情報に従って、DMA書き込みデータDMAWDATAをDRAM30に記憶させる(書き込む)DMAアドレスDMAADを生成する。
 なお、上述したように、バッファリード制御部2203は、1回の連続転送の転送単位の全ての入力データ、つまり、8回分のDMA転送の入力データを、アドレス順序情報が表す順番でバスインターフェース部2204に転送してくる。このため、バスインターフェース部2204には、DRAM30に備えたバンクの順番で、8回分のDMA転送の入力データがバッファリード制御部2203から転送されてくるとは限らない。そこで、DMAアドレス生成部2205は、バッファリード制御部2203から転送された入力データをDMA書き込みデータDMAWDATAとしてDMA転送してDRAM30に記憶させる(書き込む)際に、DMA書き込みデータDMAWDATA(入力データ)が、DRAM30に備えた対応するバンクに記憶される(書き込まれる)ように、DMAアドレスDMAADを生成する。ここで、DMAアドレス生成部2205がDMAアドレスDMAADを生成する動作を、バッファ部2202に備えた1組(8つ)の記憶領域の番号で表して説明する。例えば、バッファリード制御部2203が、記憶領域の番号が「3」→「1」→「0」→「2」→・・・の順に入力データを順次転送した場合、DMAアドレス生成部2205は、バンクアドレスBAが、「3」→「1」→「0」→「2」→・・・の順になるように、DMAアドレスDMAADを生成する。このように、DMAアドレス生成部2205は、バッファリード制御部2203からバスインターフェース部2204に転送される入力データの順番と、DMAアドレスDMAADに含まれるバンクアドレスBAの順番とを揃えるようなDMAアドレスDMAADを生成する。
 バスインターフェース部2204は、DMAアドレス生成部2205が生成したDMAアドレスDMAADに対応するDMA書き込みデータDMAWDATAを、DMA要求信号DMAREQ、DMAリードライト信号DMARW、およびDMAアドレスDMAADと共にDMAバス調停部230に出力する。そして、バスインターフェース部2204は、出力したDMA要求がDMAバス調停部230に受け付けられ、DMAバス調停部230からDMA許可信号DMAACKが入力されるごとに、要求したDMA転送を実行する。バスインターフェース部2204では、1回の連続転送の転送単位ごとに、8回のDMA転送を連続して実行する。
 アドレス順序生成部2210は、バッファライト制御部2201によってバッファ部2202内のいずれかの記憶領域の組に入力データが記憶(保存)されると、DMAバス調停部230から出力されたリクエスト受け付け履歴情報REQHISを参照して、連続した8回のDMA転送によってDMA書き込みデータDMAWDATA(入力データ)をDRAM30に記憶させる(書き込む)際のアドレス(より具体的には、バンクアドレスBA)の順序を決定する。言い換えれば、アドレス順序生成部2210は、DMA書き込みデータDMAWDATA(入力データ)をDMA転送する順序を決定する。アドレス順序生成部2210は、決定したDMA転送を行う際のアドレスの順序を表すアドレス順序情報を、バッファリード制御部2203およびバスインターフェース部2204内のDMAアドレス生成部2205に出力する。
 ここで、アドレス順序生成部2210がリクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定する処理(以下、「アドレス順序決定処理」という)について説明する。図6は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するバスマスタ220に備えたアドレス順序生成部2210がアドレスの順序を決定する処理(アドレス順序決定処理)を説明する図である。図6の(a)には、バスマスタ220が1回の連続転送の転送単位における最初のDMA転送の要求をDMAバス調停部230に出力する直前に、DMAバス調停部230から出力されていたリクエスト受け付け履歴情報REQHISの一例を示している。また、図6の(b)には、アドレス順序生成部2210がアドレスの順序を決定する際に算出するタイミングおよび決定したバンクアドレスBAの順序の一例を示している。
 図6の(a)に示したリクエスト受け付け履歴情報REQHISにおいて、「No.」は、リクエスト受け付け履歴記憶部2312に備えた記憶領域の番号を表し、小さい番号ほど、リクエスト受け付け履歴取得部231に備えたカウンタ部2311が計測した経過時間が現在の時間に近い時間に取得したリクエスト受け付け履歴情報が記憶されている。つまり、上述したように、番号が「1」の記憶領域に、最新のリクエスト受け付け履歴情報が記憶されている。また、図6の(a)に示したリクエスト受け付け履歴情報REQHISにおいて、「BA」は、アドレス生成部2304から出力されたバンクアドレスBAの情報を表し、「RW」は、アクセス調停部2301から出力されたアクセス方向信号ACCRWの情報(リードアクセスは「R」、ライトアクセスは「W」)を表し、「T」は、カウンタ部2311から出力された時間Tの情報を表している。
 例えば、番号が「1」の記憶領域に記憶されたリクエスト受け付け履歴情報REQHIS-1は、バンクアドレスBA-1=1のバンクに対するアクセス方向RW-1=W(ライトアクセス)のDMA転送の要求がDMAバス調停部230によって受け付けられ、直近の時間T-1=100Tのタイミングで、DRAM30に対するライトアクセスが実際に実行されたことを示している。また、例えば、番号が「5」の記憶領域に記憶されたリクエスト受け付け履歴情報REQHIS-5は、バンクアドレスBA-5=7のバンクに対するアクセス方向RW-5=R(リードアクセス)のDMA転送の要求がDMAバス調停部230によって受け付けられ、以前の時間T-5=68Tのタイミングで、DRAM30に対するライトアクセスが実際に実行されたことを示している。
 アドレス順序生成部2210は、図6の(a)に示したようなリクエスト受け付け履歴情報REQHISを参照して、バスマスタ220がDMA転送によってDMA書き込みデータDMAWDATA(入力データ)をDRAM30に記憶させる(書き込む)際のバンクアドレスBAの順序を、以下のような処理手順によって決定する。
 なお、以下の説明においては、DRAM30に備えたそれぞれのバンクにおけるバンクビジー時間が30Tであるものとする。また、以下の説明においては、DMAバス調停部230が入力されたDMA要求信号DMAREQを調停して異なるバンクに対するDMA転送を受け付けることができる、つまり、DMA要求が許可される最小の間隔が4Tであるものとする。なお、以下の説明においては、説明を容易にするため、DRAM30に備えたそれぞれのバンクに対するアクセス方向の切り替えに要する時間、つまり、リードライト切り替え時間を考慮しないものとする。
(手順1):まず、アドレス順序生成部2210は、連続した8回のDMA転送によって対応するDMA書き込みデータDMAWDATAを記憶させる(書き込ませる)DRAM30に備えたそれぞれのバンクごとに、バンクビジー時間が終了するビジー終了タイミングを算出する。
 より具体的には、図6の(a)に示したリクエスト受け付け履歴情報REQHISでは、番号が「8」~「1」の記憶領域に記憶されたリクエスト受け付け履歴情報REQHIS-8~リクエスト受け付け履歴情報REQHIS-1のそれぞれが、DRAM30に備えた8つのバンクのそれぞれに対して前回実行されたアクセスを示している。従って、アドレス順序生成部2210は、リクエスト受け付け履歴情報REQHIS-8~リクエスト受け付け履歴情報REQHIS-1のそれぞれを参照して、図6の(b)に示したように、DRAM30に備えた8つのバンクのそれぞれのビジー終了タイミングを算出する。
 例えば、リクエスト受け付け履歴情報REQHIS-8が示しているバンクアドレスBA-8=0のバンクに対するアクセス方向RW-8=Rのリードアクセスが実際に実行された時間T-8は「56T」である。アドレス順序生成部2210は、リクエスト受け付け履歴情報REQHIS-8に示された時間T-8=56Tにバンクビジー時間=30Tを加算することによって、バンクアドレスBA-8=0のバンクにおけるビジー終了タイミング=56T+30T=86Tを算出する。また、例えば、リクエスト受け付け履歴情報REQHIS-4が示しているバンクアドレスBA-4=2のバンクに対するアクセス方向RW-4=Wのライトアクセスが実際に実行された時間T-4は「88T」である。アドレス順序生成部2210は同様に、リクエスト受け付け履歴情報REQHIS-4に示された時間T-4=88Tにバンクビジー時間=30Tを加算することによって、バンクアドレスBA-4=2のバンクにおけるビジー終了タイミング=88T+30T=118Tを算出する。同様に、アドレス順序生成部2210は、図6の(b)に示したような、それぞれのバンクにおけるビジー終了タイミングを算出する。そして、アドレス順序生成部2210は、最新のリクエスト受け付け履歴情報REQHIS-1が示しているバンクアドレスBA-1=1のバンク、つまり、直近にDRAM30に対してアクセスしたバンクアドレスBA-1=1のバンクにおけるビジー終了タイミング=100T+30T=130Tまでを算出する。
(手順2):続いて、アドレス順序生成部2210は、手順1において算出したビジー終了タイミングが早い順に、仮のリクエスト出力順序を決定する。
 より具体的には、アドレス順序生成部2210は、図6の(b)に示したビジー終了タイミングが最も早いビジー終了タイミング=86TであるバンクアドレスBA-8=0のバンクを、リクエスト出力順序=1に仮決定する。以降、アドレス順序生成部2210は、バンクアドレスBA-7=3~バンクアドレスBA-1=1のバンクを順次、リクエスト出力順序=2~リクエスト出力順序=8に仮決定する。
(手順3):続いて、アドレス順序生成部2210は、手順2において仮決定したリクエスト出力順序でDMA転送を要求した際に、DMA要求がDMAバス調停部230によって最短で受け付けられた場合のリクエスト許可タイミングを順次算出する。
 より具体的には、アドレス順序生成部2210は、リクエスト出力順序=1に仮決定したバンクアドレスBA-8=0のバンクから、リクエスト許可タイミングを順次算出する。この場合、アドレス順序生成部2210は、図6の(a)においてリクエスト受け付け履歴情報REQHIS-1が示している、直近のDRAM30に対するアクセスが実際に実行された時間T-1=100Tに、DMA要求が許可される最小の間隔の4Tを加算することによって、バンクアドレスBA-8=0のバンクに対するリクエスト許可タイミング=100T+4T=104Tを算出する。続いて、アドレス順序生成部2210は、算出したバンクアドレスBA-8=0のバンクに対するリクエスト許可タイミング=104Tを直近の時間T-1として置き換えて、同様にDMA要求が許可される最小の間隔の4Tを加算することによって、リクエスト出力順序=2に仮決定したバンクアドレスBA-7=3のバンクに対するリクエスト許可タイミング=104T+4T=108Tを算出する。以降同様に、アドレス順序生成部2210は、算出したリクエスト許可タイミングを直近の時間T-1として置き換えて、図6の(b)に示したように、仮決定したリクエスト出力順序の順番でそれぞれのバンクに対するDMA要求が受け付けられた場合におけるリクエスト許可タイミングを順次算出する。
(手順4):続いて、アドレス順序生成部2210は、手順2において仮決定したリクエスト出力順序で、手順1において算出したビジー終了タイミングと、手順3において算出したリクエスト許可タイミングとのそれぞれを比較し、最終的なリクエスト出力順序、つまり、DMA転送においてアクセスするバンクの順序を決定する。
 より具体的には、アドレス順序生成部2210は、ビジー終了タイミングがリクエスト許可タイミング以下である場合には、バンクビジー時間が経過したと同時またはバンクビジー時間が経過した後に出力したDMA要求がDMAバス調停部230によって受け付けられると判定する。つまり、アドレス順序生成部2210は、ビジー終了タイミングとリクエスト許可タイミングとを比較したバンクにアクセスするDMA要求を出力しても、バンクビジー時間にかからずに実際のDRAM30に対するDMA転送のアクセスが実行されると判定する。この場合、アドレス順序生成部2210は、手順2において仮決定したリクエスト出力順序のそれぞれのバンクを、DMA転送においてアクセスする最終的なバンクの順序に決定する。そして、アドレス順序生成部2210は、決定したバンクの順序を表すアドレス順序情報を、バッファリード制御部2203およびDMAアドレス生成部2205に出力する。
 図6の(b)に示した一例では、手順1において算出した全てのビジー終了タイミングが、手順3において算出した対応するリクエスト許可タイミングよりも早い。従って、図6の(b)に示した一例においてアドレス順序生成部2210は、手順2において仮決定したリクエスト出力順序のそれぞれのバンクを最終的なバンクの順序として決定して、このバンクの順序を表すアドレス順序情報を、バッファリード制御部2203およびDMAアドレス生成部2205に出力する。より具体的には、バンクアドレスBAの順序が、「0」、「3」、「6」、「7」、「2」、「5」、「4」、「1」の順番であることを表すアドレス順序情報を、バッファリード制御部2203およびDMAアドレス生成部2205に出力する。なお、図6の(b)に示した一例では、アドレス順序生成部2210が決定した最終的なバンクの順序は、図6の(a)に示したリクエスト受け付け履歴情報REQHISに示されているDRAM30にアクセスした履歴が古い順番となっている。
 一方、アドレス順序生成部2210は、ビジー終了タイミングがリクエスト許可タイミングよりも遅い場合には、出力したDMA要求に対するDMAバス調停部230による受け付けが、ビジー終了タイミングとリクエスト許可タイミングとの差分の時間だけ待たされ、バンクビジー時間が経過したときに受け付けられると判定する。つまり、アドレス順序生成部2210は、ビジー終了タイミングとリクエスト許可タイミングとを比較したバンクにアクセスするDMA要求の出力は、バンクビジー状態が終了するまで待たされてしまい、実際のDRAM30に対するDMA転送のアクセスが遅くなって、DRAM30に対するアクセスの効率が低下してしまうと判定する。この場合、アドレス順序生成部2210は、手順2において仮決定したリクエスト出力順序を変更する。そして、アドレス順序生成部2210は、変更したリクエスト出力順序に対して再度、手順3におけるリクエスト許可タイミングの算出を行って、ビジー終了タイミングと算出したリクエスト許可タイミングとを比較して、バンクビジー時間にかからずに実際のDRAM30に対するDMA転送のアクセスが実行されると判定することができるリクエスト出力順序を探索する。つまり、アドレス順序生成部2210は、仮決定するリクエスト出力順序の変更、手順3、および手順4のそれぞれの処理手順を繰り返して、DMA転送においてアクセスする最終的なバンクの順序に決定する。
 なお、アドレス順序生成部2210がバンクビジー時間にかからないリクエスト出力順序を探索するために上述した処理手順を繰り返す回数は、予め定めた回数としてもよい。これは、アドレス順序生成部2210が上述した処理手順を繰り返すことによってバンクビジー時間にかからないリクエスト出力順序を探索することができるものの、上述した処理手順の繰り返しに時間を要してしまうことも、DRAM30に対するアクセスの効率が低下してしまう要因となり得るからである。なお、アドレス順序生成部2210におけるリクエスト出力順序の別の一例については、後述する。
 次に、メモリアクセス制御装置200の動作について説明する。図7は、本発明の第1の実施形態におけるメモリアクセス制御装置200によるDRAM30のアクセスタイミングの一例を示したタイミングチャートである。図7には、2個のバスマスタ220のそれぞれからのDMA要求に応じてDMAバス調停部230が実際にDRAM30にアクセスする際の制御信号のタイミングの一例を示している。より具体的には、メモリアクセス制御装置200が、1回の連続転送において8回のDMA転送を連続して行う図5に示した構成の優先度が高いバスマスタ220と、DRAM30に備えたそれぞれのバンクに対して1回のDMA転送を行う優先度が低いバスマスタ220と、DMAバス調停部230とによって構成されている場合のタイミングの一例を示している。なお、図7においては、DRAM30に備えたそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー時間を併せて示している。以下の説明においては、優先度が高いバスマスタ220(高優先バスマスタ)を「バスマスタ220-1」とし、優先度が低いバスマスタ220(以下、「低優先バスマスタ」という)を「バスマスタ220-2」として説明する。なお、低優先バスマスタには、リクエスト受け付け履歴情報REQHISを参照してDMA転送においてアクセスするバンクアドレスBAの順序を決定する機能を備えていなくてもよい。
 図7に示したタイミングチャートでは、DMAバス調停部230が、バスマスタ220-2から出力されたDMA要求信号DMAREQ-2に応じて、バスマスタ220-2から指定されたバンクに対するDMA転送を実行している。DMAバス調停部230が、バスマスタ220-2からのDMA要求に応じたDMA転送の制御を実行すると、バスマスタ220-2から指定されたDRAM30のバンクはバンクビジー状態になり、バンクビジー時間が経過した後、再び同一のバンクにアクセスすることができる状態となる。
 その後、タイミングt1のときに、バスマスタ220-1がDMA要求信号DMAREQ-1を出力すると、DMAバス調停部230は、バスマスタ220-1から指定されたバンクに対するDMA転送を実行する。なお、バスマスタ220-1は、1回の連続転送を開始する直前に、DMAバス調停部230から出力されたリクエスト受け付け履歴情報REQHISを参照して、それぞれのDMA転送においてアクセスするバンクアドレスBAの順序を決定し、決定した順序でそれぞれのバンクを指定したDMA要求信号DMAREQ-2を連続して出力する。
 図7においては、バスマスタ220-1が、図6の(a)に示したリクエスト受け付け履歴情報REQHISを参照して決定した、図6の(b)に示したバンクアドレスBAの順序で、DRAM30に備えたそれぞれのバンクを指定している。これにより、図7に示したように、バスマスタ220-1は、1回の連続転送において、バンクビジー状態になっているバンクに対するアクセスを回避して、8回のDMA転送を行うことができる。つまり、バスマスタ220-1は、DRAM30おけるアクセスの制約を回避した順番で、DMA転送を連続して行うことができる。これにより、バスマスタ220-1は、アクセスの効率が高い状態で、DRAM30に対するアクセスを行うことができる。
 なお、図7には、タイミングt2のとき、つまり、バスマスタ220-1が1回の連続転送におけるDMA要求信号DMAREQ-1を出力している期間中に、バスマスタ220-2が、バンクアドレスBA-2=2のバンクを指定する新たなDMA要求信号DMAREQ-2を出力した場合を示している。しかし、バスマスタ220-2は、バスマスタ220-1よりも優先度が低い低優先バスマスタである。このため、DMAバス調停部230は、バスマスタ220-2が出力したDMA要求信号DMAREQ-2がバンクビジー状態ではないバンクアドレスBA-2=2のバンクを指定するDMA要求であったとしても、バスマスタ220-2からのDMA要求を受け付けずに、タイミングt3において、バスマスタ220-1から出力されたDMA要求信号DMAREQ-1を引き続き受け付けるDMA許可信号DMAACK-1を出力する。そして、DMAバス調停部230は、バスマスタ220-1からのDMA要求がなくなり、バンクアドレスBA=2のバンクのバンクビジー時間が経過した後のタイミングt4のときに、バスマスタ220-2から出力されたDMA要求信号DMAREQ-2を受け付けるDMA許可信号DMAACK-2を出力する。
 このような構成および動作によって、メモリアクセス制御装置200では、DRAM30に備えたバンクビジー状態になっているバンクに対するアクセスを回避したDMA転送を行う。これにより、メモリアクセス制御装置200では、DRAM30に対するアクセスの効率を高めることができる。
 なお、図7には、参考として、バスマスタ220-1が、1回の連続転送において、アクセスするバンクアドレスBAの順序を変更することなく8回のDMA転送を連続して要求する場合の動作のタイミングの一例を、バスマスタ220-Xとして示している。このバスマスタ220-Xの動作のタイミングは、従来のバスマスタにおいて8回のDMA転送を連続して要求する場合の動作のタイミングに相当する。
 図7において参考として示したバスマスタ220-Xは、バスマスタ220-1と同様に、タイミングt1のときから1回の連続転送を開始し、バンクアドレスBA-X=0~バンクアドレスBA-X=7のバンクを順番に指定するDMA要求信号DMAREQ-Xを順次、DMAバス調停部230に出力している。これにより、DMAバス調停部230は、バスマスタ220-XからのDMA要求をバスマスタ220-2よりも優先して受け付けて、DMA許可信号DMAACK-Xを出力する。
 ここで、バスマスタ220-1と、バスマスタ220-Xとのそれぞれによる1回の連続転送のタイミングを比較する。1回の連続転送における1回目のDMA転送においては、図7に示したように、バスマスタ220-Xが出力したバンクアドレスBA-X=0のバンクを指定するDMA要求信号DMAREQ-Xも、バスマスタ220-1と同様に、タイミングt1Xのときに受け付けられている。
 しかし、2回目のDMA転送では、図7に示したように、バスマスタ220-1が出力したDMA要求が受け付けられるタイミングよりも、バスマスタ220-Xが出力したDMA要求が受け付けられるタイミングの方が遅くなっている。より具体的には、バスマスタ220-1が出力したバンクアドレスBA-1=3のバンクを指定するDMA要求信号DMAREQ-1は、タイミングt21のときに受け付けられている。これに対して、バスマスタ220-Xが出力したバンクアドレスBA-X=1のバンクを指定するDMA要求信号DMAREQ-Xは、タイミングt21よりも後のタイミングt2Xのときに受け付けられている。これは、バスマスタ220-XがDMA転送を行うバンクとして指定したバンクアドレスBA-X=1のバンクは、バスマスタ220-Xが1回の連続転送を開始するタイミングt1よりも以前のタイミングでバスマスタ220-2がアクセスしたことによってバンクビジー状態となっているため、バンクビジー時間が経過するタイミングt2Xまで待たされているからである。これにより、バスマスタ220-Xでは、1回の連続転送、つまり、8回のDMA転送が終了するタイミングが、バスマスタ220-1よりも遅くなってしまう。
 このように、メモリアクセス制御装置200では、DRAM30に備えたそれぞれのバンクにアクセスする順番を、1回の連続転送を開始する直前のリクエスト受け付け履歴情報REQHISを参照して変更することによって、それぞれのDMA転送において、バンクビジー状態になっているバンクを指定しないようにする。これにより、メモリアクセス制御装置200では、DRAM30に対するアクセスの効率を高め、一連のDMA転送が終了するまでの期間も短縮することができる。
 なお、上述した説明では、本発明の第1の実施形態におけるメモリアクセス制御装置200に備えたバスマスタ220が、実行するDMA転送によるDRAM30へのアクセス方向が、ライトアクセス(データの書き込み)のみである場合の一例について、図5~図7を用いて説明した。しかし、メモリアクセス制御装置200に備えるバスマスタ220には、DRAM30へのアクセス方向がリードアクセス(データの読み出し)のみであるDMA転送を行うバスマスタや、ライトアクセスとリードアクセスとの両方であるDMA転送を行うバスマスタも存在する。
 DRAM30へのアクセス方向がリードアクセス(データの読み出し)のみであるバスマスタ220の構成や動作は、図5~図7に示したライトアクセス(データの書き込み)のみを行うバスマスタ220において、DRAM30へのアクセス方向を逆に考える、つまり、ライトアクセスをリードアクセスとするのみで、容易にその構成や動作を考えることができる。また、DRAM30へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ220の構成や動作も、図5~図7に示したライトアクセス(データの書き込み)のみを行うバスマスタ220において、リードアクセスに対応する構成をさらに備える構成を考えるのみで、容易にその構成や動作を考えることができる。従って、DRAM30へのアクセス方向がリードアクセスのみであるバスマスタ220、およびDRAM30へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ220における構成や動作に関する詳細な説明は省略する。
 ただし、上述した説明では、図6に示したアドレス順序生成部2210がリクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定するアドレス順序決定処理において、説明を容易にするため、DRAM30に備えたそれぞれのバンクに対するアクセス方向の切り替えに要する時間(リードライト切り替え時間)を考慮しない場合について説明した。しかし、本発明の第1の実施形態におけるメモリアクセス制御装置200における実際の動作においては、リードライト切り替え時間も考慮することが必要となる。従って、以下の説明においては、バスマスタ220に備えたアドレス順序生成部2210が、リードライト切り替え時間も考慮してアドレスの順序を決定するアドレス順序決定処理について説明する。なお、以下の説明においては、リードライト切り替え時間も考慮してアドレス(より具体的には、バンクアドレスBA)の順序を決定するアドレス順序決定処理を行うアドレス順序生成部2210が、DRAM30へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ220に備えられているものとして説明する。
(アドレス順序決定処理の第1の変形例)
 図8は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するバスマスタ220に備えたアドレス順序生成部2210がアドレスの順序を決定する別の処理(アドレス順序決定処理)を説明する図である。図8は、DRAM30へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ220に備えたアドレス順序生成部2210が、リクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定するアドレス順序決定処理の一例である。図8の(a)には、バスマスタ220が1回の連続転送の転送単位における最初のDMA転送の要求をDMAバス調停部230に出力する直前に、DMAバス調停部230から出力されていたリクエスト受け付け履歴情報REQHISの一例を示している。なお、図8の(a)は、図6の(a)に示したリクエスト受け付け履歴情報REQHISの一例と同じであるため、詳細な説明は省略する。また、図8の(b)には、アドレス順序生成部2210が、アドレス順序決定処理の第1の変形例において、アドレスの順序を決定する際に算出するタイミングおよび決定したバンクアドレスBAの順序の一例を示している。また、図8の(c)には、アドレス順序生成部2210が、図6の(b)において説明したアドレス順序決定処理でバンクアドレスBAの順序を決定した場合、つまり、図8の(a)に示したリクエスト受け付け履歴情報REQHISに示されているDRAM30にアクセスした履歴が古い順番にバンクアドレスBAの順序を決定した場合の一例を、参考として示している。
 なお、図8の(a)に示した「No.」、「BA」、「RW」、および「T」は、図6の(a)と同様である。また、図8の(b)および図8の(c)に示した「ビジー終了タイミング」、「リクエスト出力順序」、「リクエスト許可タイミング」、および「バンクアドレスBA」は、図6の(b)と同様である。また、図8の(b)および図8の(c)に示した「アクセス方向RW」は、DRAM30に備えたそれぞれバンクへのアクセス方向を表し、「R」がリードアクセス、「W」がライトアクセスであることを表している。
 アドレス順序決定処理の第1の変形例では、アドレス順序生成部2210が、図8の(a)に示したようなリクエスト受け付け履歴情報REQHISに含まれるアクセス方向信号ACCRWの情報を参照して、DRAM30に備えたそれぞれのバンクに対するアクセス方向の切り替えを少なくするようなバンクアドレスBAの順序を、以下のような処理手順によって決定する。つまり、アドレス順序決定処理の第1の変形例では、バスマスタ220がDRAM30にアクセスするバンクアドレスBAの順番が、アクセスした履歴が古い順番ではなく、リードアクセスとライトアクセスとの切り替えを少なくする順番となる。
 なお、以下の説明においては、上述したライトアクセス(データの書き込み)のみを行うバスマスタ220の一例と同様に、DRAM30に備えたそれぞれのバンクにおけるバンクビジー時間が30Tであるものとし、DMAバス調停部230においてDMA要求が許可される最小の間隔が4Tであるものとする。また、以下の説明においては、DRAM30に備えたそれぞれのバンクに対するアクセス方向を切り替える際のリードライト切り替え時間が20Tであるものとする。そして、以下の説明においては、バンクアドレスBA=0~3にリードアクセスし、バンクアドレスBA=4~7にライトアクセスするものとする。
(手順A):まず、アドレス順序生成部2210は、連続した8回のDMA転送において、DRAM30に対して直近にアクセスしたアクセス方向と同じ方向のアクセスをまとめて先に行い、DRAM30に対して直近にアクセスしたアクセス方向と異なる方向のアクセスをまとめて後に行うように、仮のリクエスト出力順序を決定する。
 より具体的には、図8の(a)に示したリクエスト受け付け履歴情報REQHIS-1では、バンクアドレスBA-1=1のバンクに対してアクセス方向RW-1=Wのライトアクセスが実際に実行されたことを示している。従って、アドレス順序生成部2210は、リクエスト受け付け履歴情報REQHIS-8~リクエスト受け付け履歴情報REQHIS-1のそれぞれに含まれるアクセス方向RWを参照して、図8の(b)に示したように、まず、ライトアクセスをまとめて行い、続いてリードアクセスをまとめて行うように、リクエスト出力順序を仮決定する。図8の(b)に示した一例では、ライトアクセスにおいて履歴が古い順番に、バンクアドレスBAの順序を「6」、「7」、「5」、「4」の順番とし、その後、リードアクセスにおけるバンクアドレスBAの順序を「2」、「1」、「0」、「3」の順番とした場合の一例を示している。
(手順B):続いて、アドレス順序生成部2210は、図6の(a)に示したリクエスト受け付け履歴情報REQHISを参照して、それぞれのバンクごとに、バンクビジー時間が終了するビジー終了タイミングを算出する。なお、手順Bにおけるビジー終了タイミングの算出方法は、上述した手順1と同様である。つまり、手順Bにおいても、アドレス順序生成部2210は、それぞれのバンクに対するアクセスが実際に実行された時間Tに、バンクビジー時間=30Tを加算することによってビジー終了タイミングを算出する。従って、手順Bの処理は、手順Aの前に行ってもよい。
(手順C):続いて、アドレス順序生成部2210は、手順Aにおいて仮決定したリクエスト出力順序でDMA転送を要求した際に、DMA要求がDMAバス調停部230によって最短で受け付けられた場合のリクエスト許可タイミングを順次算出する。なお、手順Cにおけるリクエスト許可タイミングの算出方法も、上述した手順3と同様である。ただし、アドレス順序決定処理の第1の変形例では、リードライト切り替え時間が考慮されている。アドレス順序生成部2210は、手順Cにおいて算出するリクエスト許可タイミングが、DRAM30に対して異なるアクセス方向でアクセスするバンクに対するリクエストのリクエスト許可タイミングである場合には、DMA要求が許可される最小の間隔の4Tではなく、リードライト切り替え時間の20Tを加算することによって、リクエスト許可タイミングを算出する。
 より具体的には、リクエスト出力順序=5に仮決定したバンクアドレスBA=2のバンクは、アクセス方向をライトアクセスからリードアクセスに切り替えるバンクである。このため、アドレス順序生成部2210は、リクエスト出力順序=4に仮決定したバンクアドレスBA=4のバンクにおいて算出したリクエスト許可タイミング=126Tに、リードライト切り替え時間の20Tを加算することによって、リクエスト許可タイミング=126T+20T=146Tを算出する。以降同様に、アドレス順序生成部2210は、算出した直近のリクエスト許可タイミングに、DMA要求が許可される最小の間隔が4Tまたはリードライト切り替え時間の20Tを加算することによって、図8の(b)に示したように、仮決定したリクエスト出力順序の順番でそれぞれのバンクに対するDMA要求が受け付けられた場合におけるリクエスト許可タイミングを順次算出する。
 なお、図8の(b)に示したように、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンク、およびリクエスト出力順序=4に仮決定したバンクアドレスBA=4のバンクは、算出したリクエスト許可タイミングが、算出した直近のリクエスト許可タイミングに、DMA要求が許可される最小の間隔が4Tまたはリードライト切り替え時間の20Tを加算したタイミングになっていない。そして、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンク、およびリクエスト出力順序=4に仮決定したバンクアドレスBA=4のバンクは、算出したリクエスト許可タイミングが、手順Bまたは手順Aの前に算出したビジー終了タイミングとなっている。本来であれば、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンク、およびリクエスト出力順序=4に仮決定したバンクアドレスBA=4のバンクは、直前のアクセスと同じライトアクセスであるため、DMA要求が許可される最小の間隔が4Tを加算することによってそれぞれのリクエスト許可タイミングを算出することができる。しかし、算出したそれぞれのリクエスト許可タイミングは、ビジー終了タイミングよりも前のタイミング、すなわち、それぞれのバンクにおけるバンクビジー時間の30Tの期間内であることから、それぞれのバンクに対するDMA要求は、最小の間隔の4Tで受け付けられない。このため、リクエスト許可タイミングは、バンクビジー時間が終了するビジー終了タイミングとなっているのである。
 より具体的には、例えば、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンクは、リクエスト出力順序=2に仮決定したバンクアドレスBA=7のバンクにおいて算出したリクエスト許可タイミング=108Tに、DMA要求が許可される最小の間隔が4Tを加算することによって、リクエスト許可タイミング=108T+4T=112Tを算出する。しかし、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンクに対するアクセスが実際に実行された時間T-3は「92T」であるため、リクエスト受け付け履歴情報REQHIS-3に示された時間T-3=92Tにバンクビジー時間=30Tを加算することによって、バンクアドレスBA-3=5のバンクにおけるビジー終了タイミング=92T+30T=122Tと算出されている。このため、リクエスト出力順序=3に仮決定したバンクアドレスBA=5のバンクのリクエスト許可タイミングは「122T」となる。
(手順D):続いて、アドレス順序生成部2210は、最終的なリクエスト出力順序、つまり、DMA転送においてアクセスするバンクの順序を決定する。なお、手順Dにおける最終的なリクエスト出力順序の決定方法は、上述した手順4と同様である。つまり、手順Dにおいても、アドレス順序生成部2210は、手順Aにおいて仮決定したリクエスト出力順序で、手順Bまたは手順Aの前に算出したビジー終了タイミングと、手順Cにおいて算出したリクエスト許可タイミングとのそれぞれを比較し、ビジー終了タイミングがリクエスト許可タイミング以下である場合に、仮決定したリクエスト出力順序のそれぞれのバンクを、DMA転送においてアクセスする最終的なバンクの順序に決定する。
 このように、アドレス順序決定処理の第1の変形例では、アドレス順序生成部2210が、DRAM30に備えたそれぞれのバンクに対するアクセス方向の切り替えが少なくなるように、直近にアクセスしたアクセス方向と同じ方向のアクセスを先に行い、引き続き、直近にアクセスしたアクセス方向と異なる方向のアクセスを行うように、バンクアドレスBAの順序を決定する。これにより、アドレス順序決定処理の第1の変形例では、DRAM30に対するアクセスの効率を低下させることなく、1回の連続転送における一連のDMA転送を終了することができる。
 ここで、比較のため、図8の(c)を用いて、アドレス順序生成部2210が、図8の(a)に示したリクエスト受け付け履歴情報REQHISに示されているDRAM30にアクセスした履歴が古い順番にバンクアドレスBAの順序を決定した場合の一例について説明する。なお、図8の(c)に示したアクセスした履歴が古い順番にバンクアドレスBAの順序を決定するアドレス順序決定処理の処理手順は、図6において説明したアドレス順序決定処理の処理手順と同様である。従って、図8の(c)においては、図6の(b)に示した一例と同様に、バンクアドレスBAの順序が、「0」、「3」、「6」、「7」、「2」、「5」、「4」、「1」の順番に決定されている。
 ただし、図8の(c)に示した一例では、リクエスト許可タイミングを、リードライト切り替え時間を含めて算出している。このため、図8の(c)に示した一例では、アクセス方向をライトアクセスからリードアクセスに切り替えるバンク、またはアクセス方向をリードアクセスからライトアクセスに切り替えるバンクのときに、DMA要求が許可される最小の間隔の4Tではなく、リードライト切り替え時間の20Tが加算して、リクエスト許可タイミングを算出している。
 より具体的には、例えば、リクエスト出力順序=1に仮決定したバンクアドレスBA-8=0のバンクは、アクセス方向をライトアクセスからリードアクセスに切り替えるバンクである。このため、アドレス順序生成部2210は、図8の(a)においてリクエスト受け付け履歴情報REQHIS-1が示している、直近のDRAM30に対するアクセスが実際に実行された時間T-1=100Tに、リードライト切り替え時間の20Tを加算することによって、リクエスト許可タイミング=100T+20T=120Tを算出する。また、例えば、リクエスト出力順序=3に仮決定したバンクアドレスBA-6=6のバンクは、アクセス方向をリードアクセスからライトアクセスに切り替えるバンクである。このため、アドレス順序生成部2210は、リクエスト出力順序=2に仮決定したバンクアドレスBA-7=3のバンクにおいて算出したリクエスト許可タイミング=124Tに、同様にリードライト切り替え時間の20Tを加算することによって、リクエスト許可タイミング=124T+20T=144Tを算出する。また、例えば、リクエスト出力順序=5に仮決定したバンクアドレスBA-4=2のバンクは、アクセス方向をライトアクセスからリードアクセスに再び切り替えるバンクである。このため、アドレス順序生成部2210は、リクエスト出力順序=4に仮決定したバンクアドレスBA-5=7のバンクにおいて算出したリクエスト許可タイミング=148Tに、同様にリードライト切り替え時間の20Tを加算することによって、リクエスト許可タイミング=148T+20T=168Tを算出する。
 なお、図8の(c)に示した一例では、全てのビジー終了タイミングが、対応するリクエスト許可タイミング以下である。従って、アドレス順序生成部2210は、図8の(c)に示したバンクアドレスBAの順序、すなわち、図8の(a)に示したリクエスト受け付け履歴情報REQHISに示されているDRAM30へのアクセスの履歴が古い順番を、最終的なバンクアドレスBAの順序として決定することもできる。しかし、図8の(c)に示した一例では、1回の連続転送における最後のDMA転送、つまり、8回目のDMA要求が許可されるリクエスト許可タイミングが、図8の(b)に示した、DRAM30に備えたそれぞれのバンクに対するアクセス方向の切り替えを少なくするようなバンクアドレスBAの順序を決定した場合よりも遅くなっている。より具体的には、図8の(b)に示した一例では、リクエスト出力順序=8のバンクアドレスBA=3におけるリクエスト許可タイミングが「158T」であるのに対して、図8の(c)に示した一例では、リクエスト出力順序=8のバンクアドレスBA=1におけるリクエスト許可タイミングが「212T」である。このため、アドレス順序生成部2210では、手順Aにおいて仮決定したリクエスト出力順序(図8の(b)を参照)のそれぞれのバンクを最終的なバンクの順序として決定する方が、1回の連続転送における一連のDMA転送をより早く終了することができる。
(アドレス順序決定処理の第2の変形例)
 上述したアドレス順序決定処理の第1の変形例の説明では、DRAM30に対して直近にアクセスしたアクセス方向と同じ方向のアクセスを先に行い、続いて、DRAM30に対して直近にアクセスしたアクセス方向と異なる方向のアクセスを行うようにリクエスト出力順序を仮決定する場合について説明した。しかし、DRAM30の規格やDRAM30に対するアクセスの順番などの種々の条件によっては、一連のDMA転送をより早く終了することができるバンクアドレスBAの順番が異なってくる。このため、アドレス順序生成部2210は、複数種類のバンクアドレスBAの順序を算出し、算出したそれぞれのバンクアドレスBAの順序の中から、1回の連続転送における一連のDMA転送を最も早く終了することができる順序を、最終的なバンクの順序として決定する構成にしてもよい。
 図9は、本発明の第1の実施形態におけるメモリアクセス制御装置200を構成するバスマスタ220に備えたアドレス順序生成部2210がアドレスの順序を決定するさらに別の処理(アドレス順序決定処理)を説明する図である。図9も、図8に示したアドレス順序決定処理の第1の変形例と同様に、DRAM30へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ220に備えたアドレス順序生成部2210が、リクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定するアドレス順序決定処理の一例である。図9の(a)には、バスマスタ220が1回の連続転送の転送単位における最初のDMA転送の要求をDMAバス調停部230に出力する直前に、DMAバス調停部230から出力されていたリクエスト受け付け履歴情報REQHISの一例を示している。また、図9の(b)には、アドレス順序生成部2210が、第1の実施形態の第1の変形例のアドレス順序決定処理と同様に、リードアクセスとライトアクセスとの切り替えを少なくする順番となるようにバンクアドレスBAの順序を決定する場合の一例を示している。また、図9の(c)には、アドレス順序生成部2210が、第1の実施形態の第1の変形例のアドレス順序決定処理と同様に同じ方向のアクセスをまとめるが、バンクビジー時間にかかる期間が短くなるようにバンクアドレスBAの順序を決定する場合の一例を示している。
 なお、図9の(a)に示した「No.」、「BA」、「RW」、および「T」は、図8の(a)と同様である。また、図9の(b)および図9の(c)に示した「ビジー終了タイミング」、「リクエスト出力順序」、「リクエスト許可タイミング」、「バンクアドレスBA」、および「アクセス方向RW」は、図8の(b)と同様である。
 なお、以下の説明においては、アドレス順序決定処理の第1の変形例と同様に、バンクビジー時間が30Tであり、DMA要求が許可される最小の間隔が4Tであるものとする。ただし、アドレス順序決定処理の第2の変形例では、リードライト切り替え時間が15Tであるものとする。なお、それぞれのバンクのアクセス方向は、アドレス順序決定処理の第1の変形例と同様であるものとする。つまり、アドレス順序決定処理の第2の変形例においても、バンクアドレスBA=0~3にリードアクセスし、バンクアドレスBA=4~7にライトアクセスするものとする。
 アドレス順序決定処理の第2の変形例でも、アドレス順序決定処理の第1の変形例と同様に、アドレス順序生成部2210が、図9の(a)に示したようなリクエスト受け付け履歴情報REQHISに含まれるアクセス方向信号ACCRWの情報を参照して、リクエスト出力順序を仮決定する。そして、アドレス順序決定処理の第2の変形例でも、アドレス順序決定処理の第1の変形例と同様に、アドレス順序生成部2210が、ビジー終了タイミングとリクエスト許可タイミングとを算出して比較し、最終的なバンクの順序に決定する。なお、アドレス順序決定処理の第2の変形例における処理手順は、アドレス順序決定処理の第1の変形例における処理手順と同様である。ただし、アドレス順序決定処理の第2の変形例では、手順Aにおいて、アドレス順序生成部2210は、複数種類のリクエスト出力順序を仮決定する。そして、アドレス順序決定処理の第2の変形例では、アドレス順序生成部2210が、仮決定したそれぞれのリクエスト出力順序に対して手順Bおよび手順Cの処理を行って、DRAM30に対するアクセスの効率がより高く、1回の連続転送における一連のDMA転送をより早く終了することができるリクエスト出力順序を、最終的なバンクの順序として決定する。なお、アドレス順序生成部2210は、決定したそれぞれのリクエスト出力順序に対する手順Bおよび手順Cの処理を平行して同時に行ってもよい。
 ここで、アドレス順序生成部2210が、図9の(a)に示したような、バンクアドレスBAが「1」、「0」、「4」、「7」、「5」、「6」、「2」、「1」、「3」、「0」の順番で、バスマスタ220とDRAM30との間でのDMA転送が実際に行われたことを示すリクエスト受け付け履歴情報REQHISを参照してアドレス順序決定処理を行う場合を考える。アドレス順序生成部2210は、手順Aにおいて、リクエスト受け付け履歴情報REQHISに含まれるアクセス方向信号ACCRWの情報を参照して、複数種類のリクエスト出力順序を仮決定する。
 図9の(b)には、アドレス順序生成部2210が、手順Aにおいて、同じ方向のアクセスをまとめた上で、直近にアクセスしたアクセス方向、かつリードアクセスとライトアクセスとの切り替えを少なくすることを優先的に考えて決定したリクエスト出力順序、およびこのリクエスト出力順序に対して手順Bおよび手順Cの処理を行って算出したビジー終了タイミングおよびリクエスト許可タイミングを示している。より具体的には、図9の(b)には、DRAM30に対する直近のアクセス方向と同じライトアクセスを「2」、「1」、「3」、「0」のバンクアドレスBAの順番で行い、引き続き、リードアクセスを「4」、「7」、「5」、「6」のバンクアドレスBAの順番で行うリクエスト出力順序を示している。図9の(b)に示した一例では、リクエスト出力順序=8のバンクアドレスBA=6におけるリクエスト許可タイミングが「157T」である。
 また、図9の(c)には、アドレス順序生成部2210が、手順Aにおいて、同じ方向のアクセスをまとめた上で、図9の(a)のリクエスト受け付け履歴情報REQHISに示されたアクセスした履歴が古い順番を優先的に考えて決定したリクエスト出力順序、およびこのリクエスト出力順序に対して手順Bおよび手順Cの処理を行って算出したビジー終了タイミングおよびリクエスト許可タイミングを示している。より具体的には、図9の(c)には、リードアクセスを「4」、「7」、「5」、「6」のバンクアドレスBAの順番で行い、引き続き、ライトアクセスを「2」、「1」、「3」、「0」のバンクアドレスBAの順番で行うリクエスト出力順序を示している。図9の(c)に示した一例では、リクエスト出力順序=8のバンクアドレスBA=0におけるリクエスト許可タイミングが「154T」である。
 この場合、アドレス順序生成部2210は、リクエスト出力順序=8のバンクアドレスBAに対するDMA要求がより早く受け付けられる、図9の(c)に示した一例のリクエスト出力順序を、最終的なバンクの順序として決定する。
 このように、アドレス順序決定処理の第2の変形例では、アドレス順序生成部2210が、複数種類のリクエスト出力順序を仮決定し、仮決定したそれぞれのリクエスト出力順序についてリクエスト許可タイミングを算出する。そして、アドレス順序決定処理の第2の変形例では、アドレス順序生成部2210が、算出したリクエスト許可タイミングにおいて、より早くDMA要求が受け付けられるリクエスト出力順序を、最終的なバンクの順序に決定する。これにより、アドレス順序決定処理の第2の変形例では、1回の連続転送における一連のDMA転送をより早く終了することができる。
 本第1の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求(DMA要求)を出力する複数のバスマスタ(バスマスタ220)と、DRAM30が接続され、バスマスタ220のそれぞれから出力されたDMA要求を調停し、受け付けたDMA要求に応じてDRAM30へのアクセスを制御するアービタ(DMAバス調停部230)と、DMAバス調停部230によって受け付けられた複数のDMA要求に関する情報(リクエスト受け付け履歴情報)を取得してリクエスト受け付け履歴情報(リクエスト受け付け履歴情報REQHIS)として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報REQHISを出力するリクエスト受け付け履歴取得部(リクエスト受け付け履歴取得部231)と、を備え、複数のバスマスタ220の内、優先度が高い少なくとも1つのバスマスタ220を高優先バスマスタ(例えば、バスマスタ220-1)としたとき、バスマスタ220-1は、DRAM30の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報REQHISを参照して、それぞれのDMA要求によって指定するバンクの順序(より具体的には、バンクアドレスBAの順序)を決定し、決定した順序でバンクを指定するDMA要求を出力する、メモリアクセス制御装置(メモリアクセス制御装置200)が構成される。
 また、本第1の実施形態によれば、リクエスト受け付け履歴取得部231は、少なくとも、DMA要求において指定されたバンクの情報(バンクアドレスBAの情報)と、DRAM30に対するアクセス方向を表す情報(アクセス方向RWの情報)とを紐づけたリクエスト受け付け履歴情報REQHISを、DMAバス調停部230によって受け付けられたそれぞれのDMA要求ごとに記憶し、バスマスタ220-1は、リクエスト受け付け履歴情報REQHISに含まれるバンクアドレスBAの情報に基づいて、それぞれのDMA要求によって指定するバンクアドレスBAの順序を、同一のバンクへの所定の時間(バンクビジー時間)内でのアクセスを回避する順序に決定する、メモリアクセス制御装置200が構成される。
 また、本第1の実施形態によれば、リクエスト受け付け履歴取得部231は、さらに、DMAバス調停部230によってDMA要求が受け付けられたタイミングを表す情報(時間Tの情報)を取得し、取得した時間Tの情報を、対応するリクエスト受け付け履歴情報に紐づけて、リクエスト受け付け履歴情報REQHISとして記憶する、メモリアクセス制御装置200が構成される。
 また、本第1の実施形態によれば、リクエスト受け付け履歴取得部231は、DMAバス調停部230によって最後に受け付けられたDMA要求から遡った予め定めた数(例えば、DRAM30に備えたバンクの数と同じ数)、または現時点から過去の予め定めた一定期間(例えば、バンクビジー時間と同じ期間)のリクエスト受け付け履歴情報REQHISを記憶する、メモリアクセス制御装置200が構成される。
 また、本第1の実施形態によれば、リクエスト受け付け履歴取得部231は、バンクビジー時間に基づいて、リクエスト受け付け履歴情報REQHISを記憶する期間(例えば、バンクビジー時間と同じ期間)を設定する、メモリアクセス制御装置200が構成される。
 また、本第1の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求(DMA要求)を出力する複数のバスマスタ(バスマスタ220)と、DRAM30が接続され、バスマスタ220のそれぞれから出力されたDMA要求を調停し、受け付けたDMA要求に応じてDRAM30へのアクセスを制御するアービタ(DMAバス調停部230)と、DMAバス調停部230によって受け付けられた複数のDMA要求に関する情報(リクエスト受け付け履歴情報)を取得してリクエスト受け付け履歴情報(リクエスト受け付け履歴情報REQHIS)として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報REQHISを出力するリクエスト受け付け履歴取得部(リクエスト受け付け履歴取得部231)と、を備え、複数のバスマスタ220の内、優先度が高い少なくとも1つのバスマスタ220を高優先バスマスタ(例えば、バスマスタ220-1)としたとき、バスマスタ220-1は、DRAM30の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報REQHISを参照して、それぞれのDMA要求によって指定するバンクの順序(より具体的には、バンクアドレスBAの順序)を決定し、決定した順序でバンクを指定するDMA要求を出力するメモリアクセス制御装置(メモリアクセス制御装置200)、を備える、画像処理装置(画像処理装置20)が構成される。
 また、本第1の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求(DMA要求)を出力する複数のバスマスタ(バスマスタ220)と、DRAM30が接続され、バスマスタ220のそれぞれから出力されたDMA要求を調停し、受け付けたDMA要求に応じてDRAM30へのアクセスを制御するアービタ(DMAバス調停部230)と、DMAバス調停部230によって受け付けられた複数のDMA要求に関する情報(リクエスト受け付け履歴情報)を取得してリクエスト受け付け履歴情報(リクエスト受け付け履歴情報REQHIS)として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報REQHISを出力するリクエスト受け付け履歴取得部(リクエスト受け付け履歴取得部231)と、を備え、複数のバスマスタ220の内、優先度が高い少なくとも1つのバスマスタ220を高優先バスマスタ(例えば、バスマスタ220-1)としたとき、バスマスタ220-1は、DRAM30の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報REQHISを参照して、それぞれのDMA要求によって指定するバンクの順序(より具体的には、バンクアドレスBAの順序)を決定し、決定した順序でバンクを指定するDMA要求を出力するメモリアクセス制御装置(メモリアクセス制御装置200)を備える画像処理装置(画像処理装置20)、を備える、撮像装置(撮像装置1)が構成される。
 上述したように、本発明の第1の実施形態のメモリアクセス制御装置では、DRAM30を共有するそれぞれのバスマスタ220によるDMA転送、つまり、DRAM30に対するアクセスの履歴であるリクエスト受け付け履歴情報を記憶する。そして、本発明の第1の実施形態のメモリアクセス制御装置では、それぞれのバスマスタ220が、DMA転送を開始する直前に、記憶されているリクエスト受け付け履歴情報を参照して、バンクビジー状態になっているバンクに対するアクセスを回避するように、DRAM30に対してアクセスするバンクアドレスBAの順番、つまり、DMA転送の順番を変更する。これにより、本発明の第1の実施形態のメモリアクセス制御装置では、DRAM30におけるバンクビジー時間の制約を回避した順番で、DMA転送を連続して行うことができる。このことにより、本発明の第1の実施形態のメモリアクセス制御装置では、DRAM30との間でDMA転送を行う際に、DRAM30に対するアクセスの効率を高めることができる。
 なお、本発明の第1の実施形態では、メモリアクセス制御装置200に備えた高優先バスマスタであるバスマスタ220-1が、1回の連続転送において、DRAM30に備えた複数のバンクに連続してアクセスしてDMA転送を行う場合を示した。そして、本発明の第1の実施形態では、バスマスタ220-1が1回の連続転送におけるDMA要求を出力している期間中、つまり、8回のDMA転送の期間中に、メモリアクセス制御装置200に備えた低優先バスマスタであるバスマスタ220-2が新たなDMA要求を出力した場合でも、メモリアクセス制御装置200に備えたアービタであるDMAバス調停部230が、バスマスタ220-2からのDMA要求が受け付けない場合を示した。しかし、バスマスタ220-1が一連のDMA要求を出力している期間中にメモリアクセス制御装置200に備えた他の低優先バスマスタが出力したDMA要求が、DMAバス調停部230によって受け付けられてしまうことも考えられる。この場合、バスマスタ220-1のDMA転送が、DMA要求が受け付けられた他の低優先バスマスタのDMA転送が終了するまで待たされてしまうことになる。このため、本発明のメモリアクセス制御装置では、高優先バスマスタが一連のDMA要求を出力している期間中は、他の低優先バスマスタからのDMA要求を受け付けないようにする機能を備えていてもよい。この機能によって、本発明のメモリアクセス制御装置では、高優先バスマスタにおける一連のDMA転送が終了するまでの期間を短縮する効果を、より確実に得ることができる。
 また、第1の実施形態では、メモリアクセス制御装置200に備えた高優先バスマスタであるバスマスタ220-1が、1回の連続転送を開始する直前のリクエスト受け付け履歴情報REQHISを参照して、DRAM30に対してアクセスするバンクアドレスBAの順番を決定する場合を示した。しかし、バスマスタ220-1がバンクアドレスBAの順番を決定するためのアドレス順序決定処理を行っている間に、メモリアクセス制御装置200に備えたバスマスタ220-2も含む他の低優先バスマスタが、新たなDMA要求を出力してしまうことも考えられる。そして、メモリアクセス制御装置200に備えた他の低優先バスマスタが指定するDRAM30のバンクが、バスマスタ220-1がアドレス順序決定処理において決定した1番目のバンクと同一のバンクであることも考えられる。この場合、バスマスタ220-1の1回の連続転送における1回目のDMA転送が、他の低優先バスマスタが指定したバンクのバンクビジー時間が経過するまで待たされてしまうことになる。このため、本発明のメモリアクセス制御装置では、高優先バスマスタがアドレス順序決定処理を行っている間、他の低優先バスマスタからのDMA要求を受け付けないようにする機能を備えていてもよい。この機能によって、本発明のメモリアクセス制御装置では、バンクアドレスBAの順番を変更することによる効果、つまり、DRAM30に対するアクセスの効率を高め、一連のDMA転送が終了するまでの期間も短縮する効果を、より確実に得ることができる。
(第2の実施形態)
 次に、本発明の第2の実施形態のメモリアクセス制御装置について説明する。本発明の第2の実施形態のメモリアクセス制御装置は、高優先バスマスタが一連のDMA要求を出力している期間中、および高優先バスマスタがアドレス順序決定処理を行っている間に、他の低優先バスマスタからのDMA要求を受け付けないようにする機能を備えている構成のメモリアクセス制御装置である。
 なお、以下の説明においても、本発明の第2の実施形態のメモリアクセス制御装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。本発明の第2の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態におけるメモリアクセス制御装置を備えた画像処理装置20を搭載した撮像装置1の概略構成と同様である。従って、本発明の第2の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の構成に関する詳細な説明は省略し、図1に示した第1の実施形態におけるメモリアクセス制御装置を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。
 次に、本発明の第2の実施形態のメモリアクセス制御装置の構成および動作について説明する。図10は、本発明の第2の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。以下の説明においては、本発明の第2の実施形態におけるメモリアクセス制御装置を、「メモリアクセス制御装置500」という。図10には、図2に示した第1の実施形態のメモリアクセス制御装置200と同様に、n個(n=自然数、正の整数)のバスマスタとアービタとによって構成され、DMA転送によってDRAM30にアクセスするメモリアクセス制御装置500の概略構成の一例を示している。
 ただし、図10に示したメモリアクセス制御装置500では、1個のバスマスタが、優先度が高い高優先バスマスタとなっている。そして、メモリアクセス制御装置500では、高優先バスマスタが一連のDMA要求を出力している期間中、およびDMA転送する際に指定するバンクアドレスBAの順番を決定するためのアドレス順序決定処理を行っている間に、他の低優先バスマスタからのDMA要求を受け付けないようにする機能を備えている。図10に示したメモリアクセス制御装置500は、高優先バスマスタ520と、n-1個(n=自然数、正の整数)のバスマスタ220-2~バスマスタ220-nと、DMAバス調停部530と、を備えている。
 図10に示したメモリアクセス制御装置500を構成する構成要素には、図2に示した第1の実施形態のメモリアクセス制御装置200を構成する構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、メモリアクセス制御装置500を構成する構成要素において、第1の実施形態のメモリアクセス制御装置200を構成する構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、以下の説明においても、バスマスタ220-2~バスマスタ220-nのそれぞれを区別せずに表すときには、「バスマスタ220」という。なお、図1に示した撮像装置1においては、高優先バスマスタ520が、例えば、画像処理装置20に備えた撮像インターフェース部221または表示インターフェース部224に相当し、バスマスタ220のそれぞれが、画像処理装置20に備えた他のいずれかの処理ブロックに対応する。
 図10に示したメモリアクセス制御装置500では、高優先バスマスタ520を、図2に示した第1の実施形態のメモリアクセス制御装置200に備えたバスマスタ220-1の代わりに備えている。また、図10に示したメモリアクセス制御装置500では、DMAバス調停部530を、図2に示した第1の実施形態のメモリアクセス制御装置200に備えたDMAバス調停部230の代わりに備えている。DMAバス調停部530は、アクセス調停部2301と、リクエスト受け付け履歴取得部231と、リクエスト受け付けマスク部532と、を備えている。なお、DMAバス調停部530の構成は、図3に示した第1の実施形態のメモリアクセス制御装置200を構成するDMAバス調停部230に、リクエスト受け付けマスク部532が追加された構成である。つまり、図10においては、DMAバス調停部530にも備えている、DMAバス調停部230に備えたメモリ制御部2302と、マルチプレクサ(MUX)2303と、アドレス生成部2304と、データ制御部2305とのそれぞれの構成要素の図示を省略している。
 高優先バスマスタ520は、それぞれのバスマスタ220と同様に、DMA転送を開始する際に、DRAM30に対してDMA転送を要求することを表すDMA要求信号DMAREQ-1と、アクセスするDRAM30のアドレスを表すDMAアドレスDMAAD-1と、DRAM30に対するアクセス方向を指定するDMAリードライト信号DMARW-1とを、DMAバス調停部530に出力する。また、高優先バスマスタ520は、それぞれのバスマスタ220と同様に、DMAバス調停部530から出力されたDMA許可信号DMAACK-1によってDMA許可が通知された後、要求したDMA転送を開始する。なお、図10においては、高優先バスマスタ520がDMAバス調停部530との間でやり取りするDMA要求信号DMAREQ-1とDMA許可信号DMAACK-1との信号のみを示している。
 また、高優先バスマスタ520は、DRAM30に対してDMA転送を要求する際に、メモリアクセス制御装置500に備えたバスマスタ220から出力されたDMA要求のマスクを指示するリクエスト受け付けマスク信号REQMASKを、DMAバス調停部530に出力する。このリクエスト受け付けマスク信号REQMASKは、高優先バスマスタ520が、リクエスト受け付け履歴情報REQHISを参照してバンクアドレスBAの順番を決定するアドレス順序決定処理の期間中に、DMAバス調停部530が、バスマスタ220から出力されたDMA要求信号DMAREQを受け付けないようにマスクするための信号である。
 DMAバス調停部530は、第1の実施形態のメモリアクセス制御装置200を構成するDMAバス調停部230と同様に、アクセス調停部2301によって、高優先バスマスタ520およびバスマスタ220のそれぞれから出力されたDMA要求信号DMAREQを調停し、DMA要求を受け付けた高優先バスマスタ520またはバスマスタ220に、DMA要求を受け付けたことを通知するためのDMA許可信号DMAACKを出力する。
 なお、DMAバス調停部530では、リクエスト受け付けマスク部532が、高優先バスマスタ520から出力されたDMA要求信号DMAREQ-1およびリクエスト受け付けマスク信号REQMASKに従って、それぞれのバスマスタ220から出力されたDMA要求信号DMAREQのアクセス調停部2301への出力をマスクする。これにより、DMAバス調停部530に備えたアクセス調停部2301は、DMA要求信号DMAREQがマスクされたバスマスタ220からのDMA要求の調停を行わず、高優先バスマスタ520から出力されたDMA要求信号DMAREQ-1を受け付けることになる。
 そして、DMAバス調停部530は、DMAバス調停部230と同様に、DMA要求を受け付けた高優先バスマスタ520またはバスマスタ220のいずれかからのDRAM30へのアクセスに応じてDRAM30を実際に制御して、DMA要求を受け付けたバスマスタ220とDRAM30との間でのデータの受け渡し(DMA転送)を行う。
 また、DMAバス調停部530は、第1の実施形態のメモリアクセス制御装置200を構成するDMAバス調停部230と同様に、リクエスト受け付け履歴取得部231によって、受け付けたDMA要求に関するリクエスト受け付け履歴情報を取得して記憶し、記憶したリクエスト受け付け履歴情報REQHISを、高優先バスマスタ520およびバスマスタ220のそれぞれに出力する。
 次に、メモリアクセス制御装置500を構成する高優先バスマスタ520のより詳細な構成および動作について説明する。なお、以下の説明においては、DMA転送におけるDRAM30へのアクセス方向が、ライトアクセス(データの書き込み)のみである高優先バスマスタ520を例として説明する。このライトアクセスのみのDMA転送を行う構成の高優先バスマスタ520は、図1に示した撮像装置1においては、例えば、撮像インターフェース部221に相当する。
 図11は、本発明の第2の実施形態におけるメモリアクセス制御装置500を構成する高優先バスマスタ520の概略構成を示したブロック図である。図5に示したバスマスタ220と同様に、1回の連続転送においてDRAM30に備えた8つのバンクに対して連続して8回のDMA転送を行う高優先バスマスタ520の構成の一例を示している。高優先バスマスタ520は、バッファライト制御部2201と、バッファ部2202と、バッファリード制御部2203と、バスインターフェース部2204と、アドレス順序生成部5210と、を備えている。また、バスインターフェース部2204は、DMAアドレス生成部2205を備えている。
 高優先バスマスタ520は、リクエスト受け付けマスク信号REQMASKを出力する機能を備えている点のみが、図5に示したバスマスタ220と異なる。このため、図11に示した高優先バスマスタ520の構成要素には、図5に示したバスマスタ220に備えた構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、高優先バスマスタ520の構成要素において、バスマスタ220の構成要素と同様の構成要素には同一の符号を付与して詳細な説明は省略し、バスマスタ220と異なる点のみを説明する。
 アドレス順序生成部5210は、図5に示したバスマスタ220に備えたアドレス順序生成部2210と同様に、バッファライト制御部2201によってバッファ部2202内のいずれかの記憶領域の組に入力データが記憶(保存)されると、DMAバス調停部530から出力されたリクエスト受け付け履歴情報REQHISを参照して、連続した8回のDMA転送によってDMA書き込みデータDMAWDATA(入力データ)をDMA転送する際に指定するDRAM30に備えたバンクを指定するバンクアドレスBAの順序を決定する。
 なお、アドレス順序生成部5210がリクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定するアドレス順序決定処理は、図6および図8~図9に示したアドレス順序生成部2210がリクエスト受け付け履歴情報REQHISを参照してアドレスの順序を決定するアドレス順序決定処理と同様であるため、詳細な説明は省略する。
 また、アドレス順序生成部5210は、高優先バスマスタ520(より具体的には、バスインターフェース部2204)がDRAM30に対してDMA転送を要求する際に、メモリアクセス制御装置500に備えたバスマスタ220のそれぞれから出力されたDMA要求信号DMAREQのマスクを指示するリクエスト受け付けマスク信号REQMASKを生成する。このリクエスト受け付けマスク信号REQMASKは、アドレス順序生成部5210がリクエスト受け付け履歴情報REQHISを参照してバンクアドレスBAの順番を決定するアドレス順序決定処理を開始するとき(あるいは、その少し前のサイクル)から、バスインターフェース部2204がDMA要求信号DMAREQを出力するまでの間、メモリアクセス制御装置500に備えた他のバスマスタ220からのDMA要求をマスクすることを指示する信号である。
 そして、アドレス順序生成部5210は、生成したリクエスト受け付けマスク信号REQMASKを、DMAバス調停部530に出力する。このリクエスト受け付けマスク信号REQMASKに従って、DMAバス調停部530の備えたリクエスト受け付けマスク部532が、上述したように、高優先バスマスタ520から出力されたDMA要求信号DMAREQ-1以外のDMA要求信号DMAREQのアクセス調停部2301への出力をマスクする。
 なお、アドレス順序生成部5210は、バッファライト制御部2201が1つの転送単位の入力データのバッファ部2202への記憶(保存)が完了したあとで、バッファリード制御部2203が記憶された(保存された)1つの転送単位の入力データのバッファ部2202からの読み出しを開始する前であれば、いかなるタイミングからリクエスト受け付けマスク信号REQMASKの出力を開始してもよい。
 ここで、高優先バスマスタ520の動作について説明する。図12は、本発明の第2の実施形態におけるメモリアクセス制御装置500を構成する高優先バスマスタ520の動作タイミングの一例を示したタイミングチャートである。図12に示したタイミングチャートでは、アドレス順序生成部5210がリクエスト受け付けマスク信号REQMASKを生成する動作について説明する。
 タイミングt1から、高優先バスマスタ520に備えたバッファライト制御部2201は、入力された入力データ(例えば、イメージセンサ10から出力された画素信号のデータ)を、バッファ部2202に順次出力して記憶(保存)させる。その後、バッファライト制御部2201は、1つの転送単位の入力データのバッファ部2202への記憶(保存)が完了したタイミングで、バッファ部2202への入力データの記憶(保存)が完了したことを、アドレス順序生成部5210およびバッファリード制御部2203に通知する。なお、高優先バスマスタ520においては、バッファライト制御部2201が1つの転送単位の入力データのバッファ部2202への記憶(保存)が完了したことを通知する方法に関しては、何ら限定しない。
 アドレス順序生成部5210は、バッファライト制御部2201から、1つの転送単位の入力データのバッファ部2202への記憶(保存)が完了したことが通知されると、タイミングt2のときから、リクエスト受け付け履歴情報REQHISを参照してアドレス順序決定処理を開始する。なお、図12に示したタイミングチャートには、アドレス順序生成部5210がアドレス順序決定処理の期間を、“High”レベルで示している。アドレス順序生成部5210は、リクエスト受け付け履歴情報REQHISを参照してアドレス順序決定処理を開始するタイミングt2のときに、メモリアクセス制御装置500に備えた他のバスマスタ220からのDMA要求をマスクすることを表す(図12においては、“High”レベル)リクエスト受け付けマスク信号REQMASKを、DMAバス調停部530に出力する。これにより、DMAバス調停部530に備えたリクエスト受け付けマスク部532は、高優先バスマスタ520に備えたアドレス順序生成部5210から出力されたリクエスト受け付けマスク信号REQMASKに従って、メモリアクセス制御装置500に備えた高優先バスマスタ520以外のバスマスタ220から出力されたDMA要求信号DMAREQをマスクする。
 その後、アドレス順序生成部5210は、タイミングt3においてアドレス順序決定処理が完了すると、決定したアドレス(より具体的には、バンクアドレスBA)の順序を表すアドレス順序情報を、バッファリード制御部2203とバスインターフェース部2204内のDMAアドレス生成部2205とのそれぞれに出力する。これにより、バッファリード制御部2203は、バッファ部2202に記憶(保存)された1回の連続転送の転送単位の全ての入力データ、つまり、8回分のDMA転送の入力データを、アドレス順序情報が表す順番で順次読み出して、バスインターフェース部2204に転送する。
 バスインターフェース部2204は、バッファリード制御部2203から1回目のDMA転送の転送単位の入力データが転送されると、この入力データのDMA転送を要求するためのDMA要求信号DMAREQ-1、ライトアクセスを表すDMAリードライト信号DMARW-1、およびアドレス順序情報に示されたバンクアドレスBAを指定するDMAアドレスDMAADのそれぞれを生成する。そして、バスインターフェース部2204は、タイミングt4において、生成したDMA要求信号DMAREQ-1、DMAリードライト信号DMARW-1(不図示)、およびDMAアドレスDMAAD-1のそれぞれを、DMAバス調停部530に出力する。このとき、バスインターフェース部2204は、DMA要求信号DMAREQ-1を出力したことを、アドレス順序生成部5210に通知する。なお、高優先バスマスタ520においては、バスインターフェース部2204がDMA要求信号DMAREQ-1を出力したことを通知する方法に関しては、何ら限定しない。
 アドレス順序生成部5210は、バスインターフェース部2204から入力されたDMA要求信号DMAREQ-1を出力したことを表す通知に応じて、DMAバス調停部530に出力しているリクエスト受け付けマスク信号REQMASKを、メモリアクセス制御装置500に備えた他のバスマスタ220からのDMA要求をマスクしないことを表す状態(図12においては、“Low”レベル)にする。これにより、DMAバス調停部530に備えたリクエスト受け付けマスク部532は、高優先バスマスタ520に備えたアドレス順序生成部5210から出力されたリクエスト受け付けマスク信号REQMASKに従って、メモリアクセス制御装置500に備えた高優先バスマスタ520以外のバスマスタ220から出力されたDMA要求信号DMAREQのマスクを解除する。
 このようなタイミングで、アドレス順序生成部5210は、リクエスト受け付け履歴情報REQHISを参照してアドレス順序決定処理を開始するタイミングt2のときから、バスインターフェース部2204がDMA要求信号DMAREQを出力するタイミングt4のときまでの間、DMAバス調停部530に、リクエスト受け付けマスク信号REQMASKを出力する。これにより、DMAバス調停部530は、高優先バスマスタ520から出力されたDMA要求のみを受け付けて、DMA許可信号DMAACK-1を高優先バスマスタ520に出力する。以降、DMAバス調停部530は、高優先バスマスタ520から出力されたそれぞれのDMA要求信号DMAREQ-1に応じて、連続した8回のDMA転送(1回の連続転送)を行う。
 このように、メモリアクセス制御装置500では、高優先バスマスタ520がリクエスト受け付けマスク信号REQMASKを出力することによって、リクエスト受け付け履歴情報REQHISを参照してバンクアドレスBAの順番を決定するアドレス順序決定処理の期間中に他のバスマスタ220から出力されたDMA要求信号DMAREQを受け付けないように、DMAバス調停部530に指示する。これにより、メモリアクセス制御装置500では、高優先バスマスタ520がDRAM30との間でDMA転送を行う際に、DRAM30に対するアクセスの効率を高めると共に、一連のDMA転送が終了するまでの期間を短縮する効果を、より確実に得ることができる。
 本第2の実施形態によれば、高優先バスマスタ(高優先バスマスタ520)は、それぞれのアクセス要求(DMA要求)によって指定するバンクの順序(より具体的には、バンクアドレスBAの順序)を決定する処理(アドレス順序決定処理)を開始するとき(あるいは、その少し前のサイクル)から、最初にDMA要求(DMA要求信号DMAREQ)を出力するまでの期間中に、他のバスマスタ(バスマスタ220)から入力されたDMA要求の受け付けのマスクを指示するリクエスト受け付けマスク信号(リクエスト受け付けマスク信号REQMASK)を出力し、アービタ(DMAバス調停部230)は、リクエスト受け付けマスク信号REQMASKに応じて、高優先バスマスタ520以外の他のバスマスタ220から入力されたDMA要求をマスクする、メモリアクセス制御装置(メモリアクセス制御装置500)が構成される。
 また、本第2の実施形態によれば、DMAバス調停部230は、さらに、高優先バスマスタ520からそれぞれのDMA要求が出力されている期間中に、他のバスマスタ220から入力されたDMA要求をマスクする、メモリアクセス制御装置500が構成される。
 上述したように、本発明の第2の実施形態のメモリアクセス制御装置でも、第1の実施形態のメモリアクセス制御装置と同様に、DRAM30を共有する高優先バスマスタ520およびそれぞれのバスマスタ220によるDRAM30に対するアクセスの履歴(リクエスト受け付け履歴情報)を記憶し、バンクビジー状態になっているバンクに対するアクセスを回避するように、DMA転送の順番を変更する。これにより、本発明の第2の実施形態のメモリアクセス制御装置でも、第1の実施形態のメモリアクセス制御装置と同様に、DRAM30におけるバンクビジー時間の制約を回避した順番でDMA転送を連続して行って、DRAM30に対するアクセスの効率を高めることができる。
 また、本発明の第2の実施形態のメモリアクセス制御装置では、高優先バスマスタ520が、リクエスト受け付け履歴情報を参照してバンクアドレスBAの順番を決定するアドレス順序決定処理の期間中に、他のバスマスタ220から出力されたDMA要求を受け付けないように、DMAバス調停部530に対してDMA要求のマスクを指示する。これにより、メモリアクセス制御装置500では、高優先バスマスタ520が、DRAM30に対するアクセスの効率を高める効果と、一連のDMA転送が終了するまでの期間を短縮する効果とを、より確実に得ることができる。
 なお、従来のメモリ制御装置においても、優先度が低いバスマスタから出力されたDMA要求をマスクする機能を備えた構成を実現することもできるが、本発明の第2の実施形態のメモリアクセス制御装置では、アドレス順序決定処理において決定した、バンクビジー状態になっているバンクに対するアクセスを回避するバンクアドレスBAの順番でDRAM30に対してアクセスする。このため、本発明の第2の実施形態のメモリアクセス制御装置では、優先度が低いバスマスタから出力されたDMA要求をマスクする機能を備えた従来のメモリ制御装置よりも、より多くのバンク衝突を回避することができる。
 上記に述べたように、本発明の各実施形態によれば、本発明のメモリアクセス制御装置を構成するアービタ(DMAバス調停部)が、本発明のメモリアクセス制御装置を構成するそれぞれのバスマスタ(処理ブロック)がDMA転送において共有するDRAMにアクセスした履歴(リクエスト受け付け履歴情報)を記憶する。そして、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するバスマスタの内、優先度の高いバスマスタが、本発明のメモリアクセス制御装置を構成するアービタにDMA要求を出力する直前のリクエスト受け付け履歴情報を参照して、アクセスの効率が高い状態でDRAMに対してアクセスするように、DMA転送を行う順序を決定し、決定した順序でDMA要求を出力する。より具体的には、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタが、バンクビジー状態になっているバンクに対するアクセスを回避するように、DMA転送においてDRAMに備えたそれぞれのバンクをアクセスする順序(バンクアドレスの順序)を決定し、決定したバンクアドレスの順序でDRAMとの間でDMA転送を行うためのDMA要求を出力する。これにより、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するアービタがDRAMにアクセスする際の効率を高めると共に、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタにおけるDMA転送の帯域を確保することができる。このことにより、本発明の各実施形態では、本発明のメモリアクセス制御装置を備えた画像処理装置における性能を確保することができる。そして、本発明の各実施形態では、本発明のメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置における機能を実現することができる。
 なお、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成する全てのバスマスタに、リクエスト受け付け履歴情報を参照してDMA転送を行う順序を決定する機能を備える場合について説明した。これは、本発明のメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置における動作モードによって、優先度の高いバスマスタが異なることを考えたためである。しかし、例えば、動作モードにかかわらず、常に優先度が低いバスマスタがある場合には、この優先度が低いバスマスタには、リクエスト受け付け履歴情報を参照してDMA転送を行う順序を決定する機能を備えない構成にしてもよい。
 また、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するバスマスタの内、優先度の高いバスマスタが1個である場合について説明した。しかし、優先度の高いバスマスタは、メモリアクセス制御装置に複数存在することも考えられる。この場合、本発明のメモリアクセス制御装置では、優先度の高いバスマスタ同士で、決定したDMA転送を行う順序の情報を共有する構成など、リクエスト受け付け履歴情報に含まれていないバンクアドレスBAの順序の情報を互いに知る構成を備えてもよい。この構成を備えることによって、後からDMA転送を行う優先度の高いバスマスタが決定したDMA転送を行う際のバンクアドレスBAの順序が、先にDMA転送を行う優先度の高いバスマスタが決定したDMA転送を行う際のバンクアドレスBAの順序によって、アクセスの効率の低い順序になってしまうことを避けることができる。なお、他の高優先バスマスタのDMA要求が受け付けられたことを通知することによって、DMA要求が受け付けられなかった高優先バスマスタが、リクエスト受け付け履歴情報を参照して、DMA転送を行う順序を再度決定する構成にしてもよい。
 また、本発明の第2の実施形態では、本発明のメモリアクセス制御装置を構成するアービタ(DMAバス調停部530)に備えたリクエスト受け付けマスク部532が、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタ(高優先バスマスタ520)が、一連のDMA要求を出力している期間中にも、他のバスマスタからのDMA要求をマスクする構成を示した。より具体的には、リクエスト受け付けマスク部532が、リクエスト受け付けマスク信号REQMASKの他に、高優先バスマスタ520が出力したDMA要求信号DMAREQ-1によっても、他のバスマスタ220から出力されたDMA要求信号DMAREQをマスクする構成を示した。しかし、例えば、高優先バスマスタ520が1個である場合には、DMAバス調停部530は、通常の調停処理において、高優先バスマスタ520が出力する一連のDMA要求を優先して受け付けることができる。また、例えば、高優先バスマスタ520が複数ある場合においても、一連のDMA要求を出力している期間を判定する機能をDMAバス調停部530に備える構成にすることによって、それぞれの高優先バスマスタ520から出力されたDMA要求を調停することができる。このような場合、リクエスト受け付けマスク部532は、高優先バスマスタ520がリクエスト受け付け履歴情報を参照してDMA転送を行う順序を決定する処理(アドレス順序決定処理)を行っている期間中のみ、他のバスマスタからのDMA要求をマスクする構成であってもよい。
 なお、本発明の各実施形態では、リクエスト受け付け履歴情報として、バンクアドレスの情報と、アクセス方向を表す情報と、DMA要求を受け付けたタイミングを表す情報とのそれぞれの情報を記憶する場合について説明した。しかし、リクエスト受け付け履歴情報として記憶する情報は、本発明の各実施形態において示した情報に限定されるものではない。例えば、バスマスタから、DMA転送においてDRAMとの間での受け渡しをするデータの数が、DMA要求と共に出力されている場合には、このデータの数を表す情報も、リクエスト受け付け履歴情報としてそれぞれの情報と紐づけて記憶してもよい。この場合、1回のDMA転送で連続する複数のバンクアドレスに跨がってアクセスするようなDMA要求をバスマスタが出力した場合でも、リクエスト受け付け履歴情報に含まれるバンクアドレスの情報とデータの数を表す情報とに基づいて、バスマスタがアクセスした複数のバンクのそれぞれを認識することができる。
 なお、本発明の各実施形態では、リクエスト受け付け履歴情報を記憶するリクエスト受け付け履歴取得部231や、DMA要求信号DMAREQをマスクするリクエスト受け付けマスク部532を、本発明のメモリアクセス制御装置を構成するアービタ(DMAバス調停部230やDMAバス調停部530)に備える構成を示した。しかし、本発明においては、リクエスト受け付け履歴取得部231やリクエスト受け付けマスク部532を備える構成(つまり、リクエスト受け付け履歴取得部231やリクエスト受け付けマスク部532を配置する位置)は、本発明の各実施形態の構成に限定されるものではなく、アービタの外部に備える構成であってもよい。例えば、本発明のメモリアクセス制御装置のそれぞれの機能の一部または全部を、専用のLSI(Large Scale Integration)、いわゆる、ASIC(Application Specific Integrated Circuit)などの集積回路で実現する場合には、アービタとして、すでに市販されている汎用のIP(Intellectual Property)コアやIPモジュールなどを使用することもある。この場合には、リクエスト受け付け履歴取得部231やリクエスト受け付けマスク部532を、汎用のIPコアやIPモジュールに変更を加えることによって追加することが困難である場合もある。そもそも、汎用のIPコアやIPモジュールの内部の構成に関する情報が公開されていないこともある。このため、リクエスト受け付け履歴取得部231やリクエスト受け付けマスク部532をアービタの外部に配置することになる。この場合においても、本発明の各実施形態と同様の効果を得ることができる。なお、リクエスト受け付け履歴取得部231をアービタの外部に備える構成にした場合、リクエスト受け付け履歴取得部231に備えられたリクエスト受け付け履歴記憶部2312は、アービタからいずれかのDMA許可信号DMAACKが出力されたタイミングで、このDMA許可信号DMAACKに対応するリクエスト受け付け履歴情報を記憶する構成となる。より具体的には、アービタからいずれかのDMA許可信号DMAACKが出力されたタイミングで、このDMA許可信号DMAACKに対応するDMAアドレスDMAADが表すバンクアドレスBAの情報、DMAリードライト信号DMARWが表すアクセス方向を表す情報、およびカウンタ部2311から出力された時間Tのそれぞれの情報を紐づけて、リクエスト受け付け履歴情報として記憶する構成となる。
 また、本発明の各実施形態では、本発明のメモリアクセス制御装置が、撮像装置に搭載される画像処理装置に備えられる構成について説明した。しかし、DMA転送を行うメモリアクセス制御装置を備えるシステムは、本発明の各実施形態において示した画像処理装置や撮像装置の他にも種々のシステムが考えられる。従って、本発明の考え方に基づいたメモリアクセス制御装置を適用することができる処理装置やシステムは、何ら限定されるものではない。すなわち、DMA転送を行う処理装置やシステムであれば、いかなる処理装置やシステムであっても、本発明のメモリアクセス制御装置における考え方を同様に適用することができる。そして、本発明のメモリアクセス制御装置と同様の効果を得ることができる。
 以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更ができる。
 また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
 上記各実施形態によれば、複数の処理ブロックで共有するDRAMに対するアクセスの効率を高めることができる。
 1 撮像装置
 10 イメージセンサ(撮像装置)
 20 画像処理装置(撮像装置,メモリアクセス制御装置)
 210 DMAバス
 221 撮像インターフェース部(バスマスタ,メモリアクセス制御装置)
 222 画像処理部(バスマスタ,メモリアクセス制御装置)
 223 動画コーデック部(バスマスタ,メモリアクセス制御装置)
 224 表示インターフェース部(バスマスタ,メモリアクセス制御装置)
 230 DMAバス調停部(アービタ,メモリアクセス制御装置)
 30 DRAM(メモリ)
 40 表示装置(撮像装置)
 200 メモリアクセス制御装置(メモリアクセス制御装置)
 220 バスマスタ(バスマスタ,メモリアクセス制御装置)
 220-1 バスマスタ(バスマスタ,高優先バスマスタ,メモリアクセス制御装置)
 220-2,220-n バスマスタ(バスマスタ,メモリアクセス制御装置)
 2201 バッファライト制御部(バスマスタ)
 2202 バッファ部(バスマスタ)
 2203 バッファリード制御部(バスマスタ)
 2204 バスインターフェース部(バスマスタ)
 2205 DMAアドレス生成部(バスマスタ)
 2210 アドレス順序生成部(バスマスタ)
 2301 アクセス調停部(アービタ)
 2302 メモリ制御部(アービタ)
 2303 マルチプレクサ(アービタ)
 2304 アドレス生成部(アービタ)
 2305 データ制御部(アービタ)
 231 リクエスト受け付け履歴取得部(リクエスト受け付け履歴取得部,メモリアクセス制御装置)
 2311 カウンタ部(リクエスト受け付け履歴取得部)
 2312 リクエスト受け付け履歴記憶部(リクエスト受け付け履歴取得部)
 500 メモリアクセス制御装置(メモリアクセス制御装置)
 520 高優先バスマスタ(バスマスタ,高優先バスマスタ,メモリアクセス制御装置)
 5210 アドレス順序生成部(バスマスタ)
 530 DMAバス調停部(アービタ,メモリアクセス制御装置)
 532 リクエスト受け付けマスク部(アービタ,メモリアクセス制御装置)

Claims (9)

  1.  アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
     前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
     前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
     を備え、
     前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、
     前記高優先バスマスタは、
     前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力する、
     メモリアクセス制御装置。
  2.  前記リクエスト受け付け履歴取得部は、
     少なくとも、前記アクセス要求において指定された前記バンクの情報と、前記メモリに対するアクセス方向を表す情報とを紐づけた前記リクエスト受け付け履歴情報を、前記アービタによって受け付けられたそれぞれの前記アクセス要求ごとに記憶し、
     前記高優先バスマスタは、
     前記リクエスト受け付け履歴情報に含まれる前記バンクの情報に基づいて、それぞれの前記アクセス要求によって指定する前記バンクの順序を、同一の前記バンクへの所定の時間内でのアクセスを回避する順序に決定する、
     請求項1に記載のメモリアクセス制御装置。
  3.  前記リクエスト受け付け履歴取得部は、さらに、
     前記アービタによって前記アクセス要求が受け付けられたタイミングを表す情報を取得し、取得したタイミングを表す情報を、対応する前記リクエスト受け付け履歴情報に紐づけて、前記リクエスト受け付け履歴情報として記憶する、
     請求項2に記載のメモリアクセス制御装置。
  4.  前記リクエスト受け付け履歴取得部は、
     前記アービタによって最後に受け付けられた前記アクセス要求から遡った予め定めた数、または現時点から過去の予め定めた一定期間の前記リクエスト受け付け履歴情報を記憶する、
     請求項3に記載のメモリアクセス制御装置。
  5.  前記リクエスト受け付け履歴取得部は、
     前記所定の時間に基づいて、前記リクエスト受け付け履歴情報を記憶する期間を設定する、
     請求項4に記載のメモリアクセス制御装置。
  6.  前記高優先バスマスタは、
     それぞれの前記アクセス要求によって指定する前記バンクの順序を決定する処理を開始するときから、最初に前記アクセス要求を出力するまでの期間中に、他の前記バスマスタから入力された前記アクセス要求の受け付けのマスクを指示するリクエスト受け付けマスク信号を出力し、
     前記アービタは、
     前記リクエスト受け付けマスク信号に応じて、前記高優先バスマスタ以外の他の前記バスマスタから入力された前記アクセス要求をマスクする、
     請求項1から請求項5のいずれか1つの項に記載のメモリアクセス制御装置。
  7.  前記アービタは、さらに、
     前記高優先バスマスタからそれぞれの前記アクセス要求が出力されている期間中に、他の前記バスマスタから入力された前記アクセス要求をマスクする、
     請求項6に記載のメモリアクセス制御装置。
  8.  アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
     前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
     前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
     を備え、
     前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、
     前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置、
     を備える、
     画像処理装置。
  9.  アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
     前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
     前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
     を備え、
     前記複数のバスマスタの内、優先度が高い少なくとも1つの前記バスマスタを高優先バスマスタとしたとき、
     前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置を備える画像処理装置、
     を備える、
     撮像装置。
PCT/JP2016/067527 2016-06-13 2016-06-13 メモリアクセス制御装置、画像処理装置、および撮像装置 WO2017216840A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2016/067527 WO2017216840A1 (ja) 2016-06-13 2016-06-13 メモリアクセス制御装置、画像処理装置、および撮像装置
JP2018523052A JP6676162B2 (ja) 2016-06-13 2016-06-13 メモリアクセス制御装置、画像処理装置、および撮像装置
US16/190,799 US20190079881A1 (en) 2016-06-13 2018-11-14 Memory access control device, image processing device, and imaging device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/067527 WO2017216840A1 (ja) 2016-06-13 2016-06-13 メモリアクセス制御装置、画像処理装置、および撮像装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/190,799 Continuation US20190079881A1 (en) 2016-06-13 2018-11-14 Memory access control device, image processing device, and imaging device

Publications (1)

Publication Number Publication Date
WO2017216840A1 true WO2017216840A1 (ja) 2017-12-21

Family

ID=60664590

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/067527 WO2017216840A1 (ja) 2016-06-13 2016-06-13 メモリアクセス制御装置、画像処理装置、および撮像装置

Country Status (3)

Country Link
US (1) US20190079881A1 (ja)
JP (1) JP6676162B2 (ja)
WO (1) WO2017216840A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100228B2 (en) * 2018-10-25 2021-08-24 Dell Products, L.P. System and method to recover FPGA firmware over a sideband interface
US10764455B2 (en) * 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10579317B1 (en) * 2018-12-31 2020-03-03 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
WO2020255087A1 (en) * 2019-06-20 2020-12-24 Smolka John Michael Memory module and processor contained in the memory module
US11030127B2 (en) * 2019-10-22 2021-06-08 Nxp Usa, Inc. Multi-threaded architecture for memory controller data paths

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342143A (ja) * 1992-06-05 1993-12-24 Mitsubishi Electric Corp Dmaコントローラ
JP2010108275A (ja) * 2008-10-30 2010-05-13 Mitsubishi Electric Corp バス制御装置
JP2010170489A (ja) * 2009-01-26 2010-08-05 Sharp Corp 処理装置、画像形成装置及び処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100585116B1 (ko) * 2003-12-13 2006-06-01 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
KR100694095B1 (ko) * 2005-03-05 2007-03-12 삼성전자주식회사 버스 연결 방법 및 장치
JP4752882B2 (ja) * 2008-07-24 2011-08-17 ソニー株式会社 メモリアクセスシステム、メモリ制御装置、メモリ制御方法、および、プログラム
US9069489B1 (en) * 2010-03-29 2015-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic random access memory front end

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342143A (ja) * 1992-06-05 1993-12-24 Mitsubishi Electric Corp Dmaコントローラ
JP2010108275A (ja) * 2008-10-30 2010-05-13 Mitsubishi Electric Corp バス制御装置
JP2010170489A (ja) * 2009-01-26 2010-08-05 Sharp Corp 処理装置、画像形成装置及び処理方法

Also Published As

Publication number Publication date
US20190079881A1 (en) 2019-03-14
JP6676162B2 (ja) 2020-04-08
JPWO2017216840A1 (ja) 2019-04-04

Similar Documents

Publication Publication Date Title
JP6676162B2 (ja) メモリアクセス制御装置、画像処理装置、および撮像装置
US7170553B2 (en) Image processing apparatus, image processing method and portable imaging apparatus
US9645957B2 (en) Data processing device and data transfer control device
US10719458B2 (en) Data transfer device, image processing device, and imaging device
US8732378B2 (en) Bus bandwidth monitoring device and bus bandwidth monitoring method
US9026697B2 (en) Data processing apparatus
US20190324646A1 (en) Memory access device, image-processing device, and imaging device
JP6539509B2 (ja) データ転送装置およびデータ転送方法
JP2008172410A (ja) 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
US11314664B2 (en) Memory access device, image processing device and imaging device
JP6210742B2 (ja) データ処理装置およびデータ転送制御装置
WO2019043822A1 (ja) メモリアクセス装置、画像処理装置、および撮像装置
JP2006039672A (ja) バス要求制御回路
US20140009478A1 (en) Image processing apparatus and control method
JP2006252341A (ja) 電子機器、制御方法、及びコンピュータプログラム
JP6564625B2 (ja) データ転送装置およびデータ転送方法
WO2020008522A1 (ja) バス調停装置、バス調停システム、および撮像装置
JP2006189919A (ja) 電子機器、制御方法及びコンピュータプログラム
US20120042111A1 (en) Bus bandwidth monitoring device and bus bandwidth monitoring method
JP2018005389A (ja) 画像変形回路、画像処理装置、及び画像変形方法
JP2008186479A (ja) デジタルカメラ
JP6056508B2 (ja) タイミング調整装置、処理装置、及びタイミング調整方法
JP2010218379A (ja) データ転送装置
JP2014127757A (ja) 撮像装置

Legal Events

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

Ref document number: 2018523052

Country of ref document: JP

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

Ref document number: 16905395

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: 16905395

Country of ref document: EP

Kind code of ref document: A1