WO2013014841A1 - データ処理装置およびデータ処理方法 - Google Patents

データ処理装置およびデータ処理方法 Download PDF

Info

Publication number
WO2013014841A1
WO2013014841A1 PCT/JP2012/003418 JP2012003418W WO2013014841A1 WO 2013014841 A1 WO2013014841 A1 WO 2013014841A1 JP 2012003418 W JP2012003418 W JP 2012003418W WO 2013014841 A1 WO2013014841 A1 WO 2013014841A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
write
data
read
master
Prior art date
Application number
PCT/JP2012/003418
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 パナソニック株式会社
Publication of WO2013014841A1 publication Critical patent/WO2013014841A1/ja
Priority to US14/158,619 priority Critical patent/US8924613B2/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/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
    • 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
    • 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
    • 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/1673Details of memory controller using buffers
    • 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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Definitions

  • the present invention relates to a data processing device that is connected to a plurality of bus masters and a memory device, and controls data transfer that occurs between the bus master and the memory device.
  • a data processing device using a memory device such as SDRAM (Synchronous Dynamic Random Memory) includes a memory access control circuit that controls data transfer to the memory device. Data transfer to the memory is performed based on the control by the memory access control circuit.
  • SDRAM Serial Dynamic Random Memory
  • FIG. 6 is a configuration diagram of a data processing device 400 used in the conventional configuration.
  • each of the plurality of bus masters 402 transfers data to the memory device 450, it is as follows.
  • the write command cannot be issued until the write data of the write command is stored in the data buffer 432.
  • the command selection unit 420 selects a command from the write command and the read command.
  • Patent Document 1 discloses a technique for overtaking a command by comparing an address to be accessed with a write command and an address to be accessed with a read command.
  • the selection method when the command selection unit 420 selects a command as selected by the master arbitration unit 410 is as follows.
  • the write command cannot be issued to the access control unit 440 unless the write data is stored in the data buffer 432. As a result, the issue time is delayed until the write data is stored, resulting in overhead.
  • the command selection unit 420 selects a write command or a read command without considering the information that the master arbitration unit 410 has selected.
  • the master arbitration unit 410 there is an order in which the read command is selected by the master arbitration unit 410. There is a subsequent write command in the subsequent order in which the subsequent order is selected by the master arbitration unit 410. It may happen that the access of the read command described above continues to be overtaken by such a write command. As a result, the order selected by the master arbitration unit 410 may be greatly destroyed.
  • FIG. 7 is a diagram illustrating an example in which the order selected by the master arbitration unit 410 is broken.
  • 700 indicates a column in which commands in one order are displayed in time series for commands from one bus master 402 of the plurality of bus masters 402 selected by the master arbitration unit 410.
  • 701 indicates a column showing the status of zero or more read commands stored in the read command buffer 430 in time series.
  • 702 indicates a column showing the status of zero or more write commands stored in the write command buffer 431 in time series.
  • 703 indicates a column in which the commands selected by the command selection unit 420 and issued to the memory device 450 are shown in time series.
  • the command of R (5) that has undergone master arbitration at time t4 is not issued to the access control unit 440 even at time t11.
  • the command of R (5) is overtaken one after another by subsequent commands. That is, the R (5) command is issued after each of the one or more subsequent commands.
  • the one or more subsequent commands are a command W (6) and a command W (7) in the example of FIG.
  • An object of the present invention is to provide a data processing apparatus that can protect the order selected by the master arbitration unit as much as possible, and that a read command can overtake a write command that cannot be issued due to a wait for write data and can realize overhead concealment. Is to provide.
  • a data processing device of the present invention is a data processing device that controls a plurality of bus masters to transfer data to a memory device, and selects the bus master from the plurality of bus masters, and the selected Appends additional information to the command from the bus master, and stores the write data of the write command when the generated command is a master arbitration unit that generates the command after the addition.
  • a first command which is the write command indicating that storage of the write data is completed by the issued signal stored by the write command buffer, and the read command.
  • the second commands that are the read commands stored by the buffer the one that is the one in which the order specified from the additional information given to the one command is the earlier order
  • a data processing apparatus comprising: a command order determination unit that selects the command as a command issued to the memory device.
  • additional information is information for specifying a relatively appropriate order from the additional information.
  • the additional information is an ID (ID 9Nr in FIGS. 3B and 3C) indicating the number of times the access request to the memory device by the command to which the additional information is assigned is selected by the master arbitration unit. 9Nw, etc.) or margin of processing time in accessing the memory device with the command from the bus master selected by the master arbitration unit (margins 9Jr and 9Jw in FIGS. 5B and 5C) Etc.).
  • the earlier order may be specified by the additional information that is the older order ID, and the relatively appropriate order may be specified.
  • a relatively appropriate order may be specified by specifying an earlier order with additional information having a relatively small margin.
  • the allowance is the length of time from the present to the time that it is necessary to finish by that time, for example, if the command of the allowance is not finished by that time, which will cause adverse effects.
  • the master arbitration unit gives additional information to the command when the bus master selects an access request.
  • the command order determination unit then issues information (described above) issued by the signal issuing unit indicating whether the added additional information and the write data in the command after being given have been stored in the data buffer. And select a command.
  • the order selected by the master arbitration unit can be kept as much as possible, and the read command can overtake the write command that cannot be issued due to the write data waiting, thereby realizing the overhead concealment.
  • Write command validity determination step for determining whether or not write command data that is a command from the bus master selected in the master selection step is usable, and identifying a valid write command that is determined to be usable May be executed.
  • the command selection from the write command and the read command can be performed without significantly breaking the order selected by the master arbitration unit.
  • the command can be issued to the access control unit more appropriately by selecting the read command, and the overhead to the memory device can be hidden. .
  • FIG. 1 is a configuration diagram of a data processing apparatus according to the first and second embodiments.
  • FIG. 2 is an operation flowchart in the first embodiment.
  • FIG. 3A is a command selection diagram according to the first embodiment.
  • FIG. 3B is a diagram showing a table of states of read commands with ID stored in the read command buffer.
  • FIG. 3C is a diagram showing a table of states of write commands with ID stored in the write command buffer.
  • FIG. 4 is an operation flowchart in the second embodiment.
  • FIG. 5A is a command selection diagram according to the second embodiment.
  • FIG. 5B is a diagram showing a table of read command states with a margin stored in the read command buffer.
  • FIG. 5C is a diagram showing a table of write command states with a margin stored in the write command buffer.
  • FIG. 6 is a configuration diagram of a data processing apparatus used in the conventional configuration.
  • FIG. 7 is an example of a command selection diagram in the prior art.
  • the data processing apparatus 100 (FIG. 1, etc.) of the embodiment is a data processing apparatus 100 that controls transfer of data to a memory device 150 by a plurality of bus masters 102, and the bus master 102 (for example, bus master 102 s) ) And predetermined information 110i (refer to IDs 9Nr and 9Nw in FIGS. 3B to 3C and margins 9Jr and 9Jw in FIGS. 5B to 5C) is assigned to the command 110c from the selected bus master.
  • the master arbitration unit 110 that generates the command 101c (FIG. 1) after the grant is provided.
  • a data buffer 122 that stores write data (data 122d) of the write command 101w is provided.
  • a write command buffer 121 that stores the command 101c (write command 101w) is provided.
  • a read command buffer 120 that stores the command 101c (read command 101r) is provided.
  • a signal issuing unit write data reception completion notification control unit 130
  • a first command is a write command 101w that is stored by the write command buffer 121 and that indicates that the storage of the write data 122d is completed by the issued signal (information 130i signal).
  • One command to be selected is a command (for example, command 121a) in which the order specified from the information 110i given to the one command is the earlier order (for example, command 121a).
  • the command order determination unit 131 is selected as the command 140c to be issued.
  • information 110i given to one command refer to information 110i given to each of the first and second commands, and IDs 9Nr and 9Nw and margins 9Jr and 9Jw described above.
  • the information 110i to be added is the number of times the access request to the memory device 150 by the command to which the information 110i is assigned is sent by the master arbitration unit 110. This is an ID indicating whether it is selected (see ID 9Nr, 9Nw), and the command order determination unit 131 uses this ID (ID 9Nr) among the first command (command 121a) and the second command (command 101m). , 9Nw) may select the smaller command (command 121a).
  • the information 110i to be given is the information in the access to the memory device 150 by the command 110c from the bus master 102 (bus master 102s) selected by the master arbitration unit 110 described above.
  • the write command buffer 121 stores the command 101c, which is the write command 101w, and then stores the command with the margin, which is the stored command 101c, after the processing time margin (see the margins 9Jr and 9Jw).
  • the read command buffer 120 reduces the margin of the command with margin that is the stored command 101c.
  • the first command (command 121a) and the second command (command 101m) the command having the smaller margin (see the margins 9Jr and 9Jw in FIGS. 5B and 5C) at the time of selection (for example, command 121a) may be selected.
  • FIG. 1 shows a data processing apparatus according to an embodiment of the present invention.
  • a data processing apparatus 100 is connected to a plurality of bus masters 102 and a memory device 150, and includes a master arbitration unit 110 and a memory control unit 101.
  • the memory control unit 101 includes a read command buffer 120, a write command buffer 121, a data buffer 122 shared by a plurality of bus masters 102 and used by any bus master 102, a write data reception completion notification control unit 130, The command order determination unit 131 and the access control unit 140 are configured.
  • each of the plurality of bus masters 102 issues a read access request and a write access request to the master arbitration unit 110.
  • one bus master 102 selected by the master arbitration unit 110 sends a write command (command) to the master arbitration unit 110 when the access request is a write access request. 110w).
  • write data data 122d
  • write command is issued to the data buffer 122.
  • the selected one bus master 102 issues a read command (command 110r) to the master arbitration unit 110.
  • the master arbitration unit 110 receives a command (command 110c) from the selected bus master.
  • An ID is assigned to the received command.
  • the ID to be given is given as information on the order in which the master arbitration unit 110 selected the access request with the command to which the grant was made, and the ID indicating the order ( Information 110i). Note that the ID to be given may be a value of the order, or a character string or a number associated with the value.
  • the master arbitration unit 110 When the access with the assigned command is a read access, the master arbitration unit 110 includes, in the read command buffer 120, a command (command) that partially includes the assigned ID after the grant. 101r).
  • the master arbitration unit 110 issues a command (command 101w) to which the ID is assigned and includes the assigned ID in the write command buffer 121. To do.
  • the read command buffer 120 holds the read command issued from the master arbitration unit 110, and issues the read command to the command order determination unit 131.
  • the write command buffer 121 holds the write command issued from the master arbitration unit 110, and issues the write command to the command order determination unit 131.
  • the write data reception completion notification control unit 130 observes the state of the write command buffer 121. Specifically, it is observed whether the write data (data 122d) for the command (command 110w) is stored in the data buffer 122. When the write data is stored, the command order determination unit 131 is notified of an identifier (information 130i) for identifying that the data has been stored.
  • the command order determination unit 131 selects one of a read command issued from the read command buffer 120 and a write command issued from the write command buffer 121. Specifically, when making a selection, an ID assigned to the read command, an ID assigned to the write command, and a completion identifier (information 130i) issued from the write data reception completion notification control unit 130 for the write command. ) To select a read command or a write command, whichever is appropriate.
  • the command order determination unit 131 issues a read command to the access control unit 140.
  • the access control unit 140 issues a read command to the memory device 150 to request transfer of read data.
  • the command order determination unit 131 issues a write command to the access control unit 140.
  • the access control unit 140 receives write data (data 122d) from the data buffer 122 simultaneously with the reception of the write command. Upon receiving this reception, the access control unit 140 issues a write command to the memory device 150 to transfer the received write data.
  • FIG. 2 is a processing flow of the data processing apparatus 100 of FIG.
  • step S200 the master arbitration unit 110 selects an access request from the access requests of the plurality of bus masters 102. Then, it receives a command (command 110c) from the bus master 102 that makes the selected access request. Then, the master arbitration unit 110 receives an ID indicating the selection order (the above-described information 110i) in the order as information indicating the selection of the access request at the reception of the access request. It is given to the received command.
  • step S201 the command order determination unit 131 makes the following determination on the read command issued from the read command buffer 120 and the write command issued from the write command buffer 121.
  • This state is a state in which the read command buffer 120 has a read command and the write command buffer 121 has a write command. In the above determination, it is determined whether or not this state is present. When it is determined that this state is present (Yes in S201), the process proceeds to step S202. On the other hand, if it is determined that not only this state but only one of a write command and a read command is issued (no in S201), the process proceeds to step S204.
  • step S202 the command order determination unit 131 receives an identifier from the write data reception completion notification control unit 130. By receiving this, it is determined whether or not the write command in the write command buffer 121 is valid. That is, when the received identifier indicates that the storage of the data of the write command is completed (Yes in S202), it is determined to be valid and indicates that it has not been completed. (No in S202), it is determined that it is not valid.
  • step S203 If there is a write command determined to be valid (YES in S202), the process proceeds to step S203.
  • step S207 the read command with the smallest ID is selected from among the read commands in the read command buffer 120.
  • step S203 the command order determination unit 131 compares the write command determined to have stored the write data from the identifier from the write data reception completion notification control unit 130 and the ID of the read command, The command having the smallest ID is selected from them.
  • Step S206 If the selected command is a write command (Yes in S203), the process proceeds to Step S206, whereas if the selected command is a read command (No in S203), the process proceeds to Step S207.
  • step S204 the process is performed when it is determined that no is determined in the above-described S201 and there is only one of the write command and the read command and only one of them can be issued.
  • step S204 if one of the commands is determined to be a read command (yes in step S204), the process proceeds to step S208, and the read command is selected.
  • step S205 if one of the commands is determined to be a write command (no in step S204), the process proceeds to step S205.
  • step S205 the command order determination unit 131 receives the identifier (previously described) from the write data reception completion notification control unit 130 to determine whether the write command is valid (see the description of S202 above).
  • step S205 If it is determined that the write command is valid (Yes in S205), the process proceeds to step S209, and the write command is selected. If it is invalid (no in S205), no selection is made and no command is selected.
  • FIG. 3A is a diagram illustrating a specific example of the processing in FIGS. 1 and 2.
  • 500 indicates a column in which commands from a plurality of bus masters 102 selected by the master arbitration unit 110 are displayed in time series.
  • 501 indicates a column showing the state of the read command with ID stored in the read command buffer 120 in time series.
  • Reference numeral 502 denotes a column showing the state of the write command with ID stored in the write command buffer 121 in time series.
  • 503 indicates a column in which the commands issued by the command order determination unit 131 and issued to the memory device 150 are shown in time series.
  • commands are expressed in the format of (attribute, ID number, data flag).
  • attributes include R (read command) and W (write command).
  • the ID number is a numerical value in the order indicated by the ID number.
  • Data flags include 0 (write data not stored) and l (write data stored).
  • the data flag is a flag related to whether or not the write data is not stored, and is related only to the write command. Therefore, in the following, this data flag is not shown for the read command, and is simply expressed as (attribute, ID number).
  • this read command with ID (R, 1) is selected by the command order determination unit 131 (see no in S201, yes in S204, S208, etc. in FIG. 2).
  • the command (read command with ID (R, 1)) selected at each time is illustrated in the time portion in the column 503. .
  • the table at time t1 in the column 501 in FIG. 3A is as follows. That is, the fourth row of this table indicates that there is the above-described read command with ID (R, 1). The second and third rows of this table are blank, indicating that the read command buffer 120 has only the above-described read command with ID (R, 1) in the fourth row.
  • any row is blank, and it is indicated that there is no single write command in the write command buffer 121.
  • 3C is “2”, and the ID of the above-described read command with ID (R, 5) at time t5 (see FIG. The ID is in the order earlier than “5” (the fourth row of the table at time t5 in the column 501), which is 3B ID 9Nr). Therefore, the above-described write command with ID (W, 2, 1) shown in the fourth row is selected (see yes in S201, yes in S202, yes in S203, S206, etc.).
  • the command order determination unit 131 selects a command from the plurality of bus masters 102 in consideration of information (refer to the above-described ID) for selecting the bus master 102. Since this can be done, the order selected by the master arbitration unit 110 can be kept as much as possible. That is, the order in which commands are issued to the memory device 150 can be set to a relatively appropriate order in consideration of the order of the commands selected by the master arbitration unit 110.
  • the memory device 150 performs data transfer by an address and an access attribute, such as an SDRAM, regardless of whether the memory device 150 is configured inside or outside an LSI such as an LSI in which the data processing device 100 is provided. Any device can be used.
  • the number of write commands stored in the write command buffer 121 is one or more.
  • the number of stored write commands may be one (see times t2, t3, t8, t9, etc. in FIG. 3A).
  • the process of S203 may be performed, and when it is determined that it has not been acquired (No in S202), the process of S207 may be performed.
  • the number of stored write commands may be two or more.
  • whether or not one or more of the included write commands for which the information 130i has been acquired includes a write command with an ID earlier than the ID of the read command stored in the read command buffer 120 is determined. It may be determined.
  • the number of read commands stored in the read command buffer 120 may be two or more.
  • the read command with the earliest ID among the two or more read commands may be processed. That is, it may be determined whether or not a write command with an ID earlier than the ID is included in one or more write commands for which the information 130i indicating the completion of storage is acquired.
  • each of the plurality of bus masters 102 issues a read access request and a write access request to the master arbitration unit 110 of the data processing device 100.
  • one bus master 102 selected by the master arbitration unit 110 issues a write command to the master arbitration unit 110 when the access request is a write access request.
  • the selected one bus master 102 issues the write data corresponding to the write command to the data buffer 122 at the same time as issuing the above.
  • the selected one bus master 102 issues a read command to the master arbitration unit 110.
  • the master arbitration unit 110 has a margin set for each of the plurality of bus masters 102. There is a time at which each bus master 102 must transfer to the memory device 150 by that time. Each margin is the length of time until this time in the bus master 102 of the margin.
  • the master arbitration unit 110 selects the bus master 102 having the smallest margin at the time when one bus master 102 is selected from the plurality of bus masters 102.
  • the master arbitration unit 110 assigns the margin at the time when the access request (bus master) is selected to the command for accessing the access request issued by the bus master.
  • the master arbitration unit 110 issues a command to the read command buffer 120 when the command to which the margin is given is a read command that is a read access command. On the other hand, if the write command is a write access command, the command is issued to the write command buffer 121.
  • the read command buffer 120 holds the read command issued from the master arbitration unit 110, and issues the read command to the command order determination unit 131. Note that while the read command is held, the margin given to the read command decreases.
  • the write command buffer 121 holds the write command issued from the master arbitration unit 110, and issues a write command access request to the command order determination unit 131. While the write command is held, the margin given to the write command decreases.
  • the write data reception completion notification control unit 130 observes the state of the write command buffer 121 and observes whether the write data corresponding to the write command has been stored in the data buffer. When the storage of the write data is completed, the command order determination unit 131 is notified of an identifier for identifying that the write data has been stored.
  • the command order determination unit 131 selects a command from one or more commands including at least one of a read command issued from the read command buffer 120 and a write command issued from the write command buffer 121, Process.
  • Each of the one or more signals is the above-described data storage completion signal from the write data reception completion notification control unit 130.
  • the one or more marginal write commands described above include one or more marginal write commands as follows. For any write command with margin included in the one or more write commands with margin, data storage of the write command with margin, which is one signal included in the one or more signals described above, is completed. The signal is valid. The data storage completion signal being valid means that the data storage completion signal indicates that the write data has already been acquired.
  • the allowances are included. Select the command with the smallest.
  • the command order determination unit 131 issues a read command to the access control unit 140.
  • the access control unit 140 issues a read command to the memory device 150 to request transfer of read data.
  • the command order determination unit 131 issues a write command to the access control unit 140.
  • the access control unit 140 extracts write data from the data buffer 122 simultaneously with reception of the write command.
  • the access control unit 140 issues a write command to the memory device 150 to transfer write data.
  • FIG. 4 is a processing flow of the data processing apparatus 100 of FIG.
  • step S300 the master arbitration unit 110 selects an access request from a plurality of access requests from the plurality of bus masters 102, and receives a command of the selected access request (bus master 102). Then, the master arbitration unit 110 gives the margin at the time when the access request is selected to the command issued by the bus master 102 to the master arbitration unit 110.
  • step S301 the command order determination unit 131 performs a determination process on commands issued from the read command buffer 120 and the write command buffer 121.
  • step S301 If both a write command and a read command are issued (Yes in S301), the process proceeds to step S302, and if only a write command or a read command (no in S301), the process proceeds to step S305. .
  • step S302 the command order determination unit 131 receives an identifier from the write data reception completion notification control unit 130 that notifies whether or not the write data for the write command has been stored in the data buffer 122. This determines whether the write data of the write command has been stored and is valid.
  • step S302 If a valid command exists in the write command (Yes in S302), the process proceeds to step S303. On the other hand, if there is no valid command (no in S302), the process proceeds to step S309, and the read command having the smallest margin at that time is selected in the read command in the read command buffer 120. To do.
  • step S303 the command order determination unit 131 processes a write command indicating that the write data is already stored from the identifier from the write data reception completion notification control unit 130. That is, the margin given to such a write command is compared with the margin given to the read command.
  • step S304 If there is a write command access request with a margin smaller than the margin of the read command (Yes in S303), the write command with the smallest margin at that time is selected in step S304. select.
  • the read command with the smallest margin at that time is selected in step S310.
  • step S303 As a method for selecting a write command or a read command in step S303, step S304, and step S310, for example, the smallest allowance is selected from valid write commands and read commands in the write command buffer 121. There is also a way to select a command.
  • step S305 when the command is only the read command (yes in S305), the process proceeds to step S308, and the read command with the smallest margin is selected. If the command access request is only a write command request (no in S305), the process proceeds to step S306.
  • step S306 the command order determination unit 131 receives an identifier from the write data reception completion notification control unit 130 that notifies whether or not the write data corresponding to the write command has been transferred to the data buffer 122, whereby the write command is received. Determine if it is valid. If there is a valid command for the write command (Yes in S306), in step S307, for each write command in the write command buffer 121, the write command with the smallest margin at that time is selected. To do. If it is invalid (no in S306), nothing is selected.
  • FIG. 5A is a diagram illustrating an example of specific processing according to FIGS. 1 and 4.
  • 600 indicates a column in which the commands of the master selected by the master arbitration unit 110 are displayed in time series.
  • 601 indicates a column showing the state of the read command with margin stored in the read command buffer 120 in time series.
  • Reference numeral 602 denotes a column showing the state of the write command with margin stored in the write command buffer 121 in time series.
  • 603 indicates a column in which the commands issued by the command order determination unit 131 and issued to the memory device 150 are shown in time series.
  • the command is expressed in the format of (attribute, margin, data flag).
  • Attribute has R (read command) and W (write command).
  • the margin is a numerical value.
  • Data flags include 0 (write data not stored) and l (write data stored).
  • this command with margin (R, 80) is selected by the command order determination unit 131.
  • the write command with margin (W, 52, 1) is selected (the margin command 9R of the read command with margin (R, 60 shown in FIG. 5B), with margin shown in FIG. 5C.
  • Write command (see W, 52, 1) margin 9Jw).
  • read commands with margins (R, 16) and (R, 52) stored in the read command buffer 120 and write commands with margins (W, 28, 1) stored in the write command buffer 121 are stored. There is.
  • the command order determination unit 131 can select a command while considering the information that the master arbitration unit 110 has selected a plurality of bus masters 102. That is, every time the command order determination unit 131 selects a command, the result selected by the master arbitration unit 110 can be reflected as needed, and the command can be issued to the memory device 150 more appropriately. .
  • the write command with margin (W, 60, 0) at time t3 in FIG. 5A can be selected, the quality of access to the memory device 150 can be prevented from being lowered, and the overhead can be concealed.
  • the memory device may be any device that transfers data by address and access attribute, such as SDRAM, regardless of whether it is configured internally or externally on the LSI.
  • the command order determination unit 131 determines a command and selects a command access request.
  • the order selected by the master arbitration unit 110 can be kept as much as possible, and the read command can overtake the write command that cannot be issued due to the write data waiting.
  • this effect may be caused by the following operations.
  • the order to be protected and protected as much as possible may be specified from the information 110i (FIG. 1).
  • This information 110i is information generated by the master arbitration unit 110, and specifically includes, for example, the above-described ID and margin.
  • the generated information 110i is included in the command after the information 110i is given to the command indicating the order of issue, and may be a part of the command.
  • command 110c in FIG. 1 there may be a read command (see read command 110r) and a write command (see write command 110w).
  • the read command may be stored by the read command buffer 120, and the write command may be stored by the write command buffer 121.
  • information 130 i indicating that storage of write data (data 122 d in FIG. 1), which is data to be written in the memory device 150, in the data buffer 122 is completed may be generated by the write command.
  • the issuance of the write command to the memory device 150 is possible only after the information 130i is generated, and may not be possible before the information 130i is generated.
  • a write command there may be one write command (for example, command 121a in FIGS. 3A and 3C) and the other write command (command 121b).
  • one of the write commands may be a write command (command 121a) that has been determined that the storage of the write data of the write command is completed and the information 130i indicating the completion is generated.
  • the other write command may be a write command (command 121b) determined that the storage of the write data is not completed and the information 130i indicating the completion is not generated.
  • the other command (command 121b) for which it is determined that the storage is not stored as described above may not be selected by the command order determination unit 131, and only another command may be selected.
  • the command order determination unit uses the first command (command 121a) as a command for executing access to the memory device 150 with the command prior to the second command (command 101m). 131 may be selected.
  • the second command (command 101m) may be selected by the command order determination unit 131.
  • each information 110i generated by the master arbitration unit 110 the selection from the first and second commands is performed, and the order of issuing commands selected by the master arbitration unit 110 is kept as much as possible.
  • the second command (command 101m) is selected earlier than the other command (command 121b) described above, in which the write data storage is not completed.
  • the above-described write command (command 121b) that cannot be issued due to the write data waiting can be overtaken by the read command (command 101m).
  • both the order selected by the master arbitration unit 110 can be kept as much as possible, and the read command (command 101m) can be overtaken by the write command (command 121b) that cannot be issued due to waiting for write data.
  • the present invention can be realized not only as a device, an integrated circuit, etc., but also as a method that uses processing means constituting the device, etc. as steps, or as a program that causes a computer to execute these steps. It can also be realized as a recording medium such as a computer-readable CD-ROM in which is recorded, or as information, data or a signal indicating the program. These programs, information, data, and signals may be distributed via a communication network such as the Internet.
  • the data processing device is suitable for a system LSI using a device for controlling data transfer to a memory device shared by a plurality of bus masters.
  • 9Nr, 9Nw ID 9Jr, 9Jw Margin 9Fn, 9Fm Flag 100 400 Data processing device 100s System 101, 401 Memory control unit 101m, 121a, 121b Command 101r Read command 101w Write command 102, 402 Bus master 110, 410 Master arbitration unit 110i Information 120, 430 Read command buffer 121, 431 Write command buffer 121a, 101m Command 122, 432 Data buffer 122d Write data 130 Write data reception completion notification control unit 130i Information 131 Command order determination unit 140, 440 Access control unit 150, 450 Memory device 420 Command selection unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)

Abstract

 データ処理装置が、マスタ調停部で選択した順序を極力守ることができ、かつ、ライトデータ待ちにより発行できないライトコマンドを、リードコマンドが、追い越すことができ、選択されたバスマスタからのコマンドに情報(110i)を付与するマスタ調停部(110)と、データバッファ(122)と、ライトコマンドバッファ(121)と、リードコマンドバッファ(120)と、ライトデータ(122d)の格納が完了したことを示す信号を発行するライトデータ受付完了通知制御部(130)と、前記信号で完了が示される第1のコマンド(121a)と、リードコマンドである第2のコマンド(101m)の中で、情報(110i)から特定される順序がより早い方を選択するコマンド順序判定部(131)とを備える。

Description

データ処理装置およびデータ処理方法
 本発明は、複数のバスマスタとメモリ装置とに接続され、バスマスタとメモリ装置との間で生じるデータ転送を制御するデータ処理装置に関する。
 SDRAM(Synchronous Dynamic Random Memory)などのメモリ装置を用いたデータ処理装置では、メモリ装置へのデータ転送を制御するメモリアクセス制御回路を備えている。そして、このメモリアクセス制御回路による制御に基づいて、メモリへのデータ転送を行っている。
 図6は、従来構成で用いられるデータ処理装置400の構成図である。
 図6に示されるように、複数のバスマスタ402のそれぞれが、メモリ装置450へデータ転送をする際において、次の通りである。
 つまり、ライトコマンドでのアクセスがされる時には、データバッファ432に、そのライトコマンドのライトデータが格納されるまで、そのライトコマンドが発行できない。
 図6のデータ処理装置において、リードコマンドバッファ430と、ライトコマンドバッファ431とを別々に備えている。そして、コマンド選択部420が、ライトコマンドと、リードコマンドとから、コマンドを選択する。
 ここで、ライトコマンドによるアクセスと、リードコマンドによるアクセスとから、アクセスを、コマンド選択部420で選択する方法としては、様々な方法がある。
 特許文献1では、ライトコマンドでの、アクセスするアドレスと、リードコマンドでの、アクセスするアドレスとを比較して、コマンドの追い越しをする技術を開示している。
特開平02-128249号公報
 コマンド選択部420での選択方法別に、課題を説明する。
 (1)マスタ調停部410が選択した通りに、コマンド選択部420がコマンドの選択を行った場合の選択方法では、次の通りである。
 つまり、アクセス制御部440が、ライトコマンドのアクセスを選択したい時には、ライトデータが、データバッファ432に格納されていないと、アクセス制御部440に、ライトコマンドを発行できない。その結果、その発行がされる時刻が、ライトデータが格納される時刻まで遅延して、オーバーヘッドが生じる。
 一方、マスタ調停部410が選択したのが何れであるかの情報を考慮せずに、コマンド選択部420で、ライトコマンドや、リードコマンドを選択する方法もある、このような方法には、固定優先の方法や、ラウンドロビン方式の方法などがある。
 (2)ライトコマンドを優先にする固定優先を行った場合の選択方法では、次の通りである。
 つまり、リードコマンドの、マスタ調停部410で選択された順序がある。この順序よりも後続の順序がマスタ調停部410で選択された、後続の順序の、後続からきたライトコマンドがある。上述のリードコマンドのアクセスが、このようなライトコマンドに追い越され続けるということが発生することが起こる。これにより、マスタ調停部410で選択した順序を、大幅に崩してしまう恐れがある。
 図7は、マスタ調停部410で選択した順序を崩してしまう例を示す図である。
 700は、マスタ調停部410で選択された、複数のバスマスタ402のうちの1つのバスマスタ402からのコマンドについて、時系列に、それぞれの順序でのコマンドを表示した欄を指す。
 701は、リードコマンドバッファ430に格納された、0個以上のリードコマンドの状態を、時系列に示した欄を指す。
 702は、ライトコマンドバッファ431に格納された、0個以上のライトコマンドの状態を、時系列に示した欄を指す。
 703は、コマンド選択部420に選択されて、メモリ装置450に発行されるコマンドを、時系列に示した欄を指す。
 時刻t4で、マスタ調停された、R(5)のコマンドは、時刻t11になっても、アクセス制御部440へと、コマンド発行されない。このR(5)のコマンドは、後続からきたコマンドに、次々追い越されてしまう。すなわち、R(5)のコマンドの発行が、1つ以上の後続のコマンドのうちのそれぞれの発行よりも後になる。なお、それらの1つ以上の後続のコマンドは、図7の例では、W(6)のコマンドと、W(7)のコマンドとである。
 (3)ライトコマンドとリードコマンドとを、ラウンドロビン方式で選択する場合の選択方法では、次の通りである。
 つまり、マスタ調停部410による処理の結果として、幾つかのライトコマンドが、連続して、ライトコマンドバッファ431に発行される。そして、それらのライトコマンドに対応する、全てのライトデータが、データバッファ432に格納されるのが完了する。この完了をした後に、リードコマンドが、リードコマンドバッファ430に発行された場合を考える。この場合に、そのリードコマンドは、先に発行された各ライトコマンドを追い越して、大幅な追い越し(例えば、それら幾つかのライトコマンドの全ての追い越しなど)を行う。これにより、マスタ調停部410の選択結果を、大幅に崩してしまうという課題がある。つまり、マスタ調停部410により選択された、そのリードコマンドの順序がある。この順序から、そのような、大幅な追い越しをした幅だけ、より早い順序で、そのリードコマンドの、アクセス制御部440への発行がされて、順序が大きく変化してしまう課題がある。
 本発明の目的は、マスタ調停部で選択した順序を極力守ることができ、かつ、ライトデータ待ちにより発行できないライトコマンドを、リードコマンドが、追い越すことができ、オーバーヘッド隠蔽を実現できるデータ処理装置を提供することである。
 上記課題を解決するため、本発明のデータ処理装置は、複数のバスマスタがメモリ装置にデータ転送することを制御するデータ処理装置であって、前記複数のバスマスタからバスマスタを選択し、選択された前記バスマスタからのコマンドに付加情報を付与して、付与がされた後の前記コマンドを生成するマスタ調停部と、生成された前記コマンドが、ライトコマンドである場合に、前記ライトコマンドのライトデータを格納するデータバッファと、生成された前記コマンドが前記ライトコマンドである場合に、前記ライトコマンドを格納するライトコマンドバッファと、生成された前記コマンドがリードコマンドである場合に、前記リードコマンドを格納するリードコマンドバッファと、前記ライトデータの格納が完了したことを示す信号を発行する信号発行部と、前記ライトコマンドバッファにより格納される、発行された前記信号で、前記ライトデータの格納が完了したことが示される前記ライトコマンドである第1のコマンドと、前記リードコマンドバッファにより格納される前記リードコマンドである第2のコマンドの中で、当該一のコマンドに付与された前記付加情報から特定される順序が、より早い方の順序である一のコマンドである方の前記コマンドを、前記メモリ装置に発行されるコマンドとして選択するコマンド順序判定部とを備えるデータ処理装置である。
 なお、上述の付加情報とは、その付加情報から、比較的適切である順序が特定される情報である。
 つまり、付加情報は、当該付加情報が付与される前記コマンドによる、前記メモリ装置へのアクセス要求が、何番目に、前記マスタ調停部により選択されたか示すID(図3B、図3CのID 9Nr、9Nw等を参照)、または、前記マスタ調停部により選択された前記バスマスタからの前記コマンドでの、前記メモリ装置へのアクセスにおける、処理時間の余裕度(図5B、図5Cの余裕度9Jr、9Jw等を参照)などである。
 つまり、より古い順番のIDである付加情報により、より早い順序が特定されて、比較的適切である順序が特定されてもよい。また、比較的小さい余裕度である付加情報により、より早い順序が特定されることにより、比較的適切である順序が特定されてもよい。
 余裕度は、その余裕度のコマンドのアクセスが、その時刻までに終了しないと、弊害が生じるなどで、その時刻までに終了するのが必要である時刻までの、現在からの時間の長さ等をいう。
 なお、上述の時刻は、推定された時刻などをいう。
 すなわち、前記マスタ調停部は、バスマスタが、アクセス要求を選択したときに、付加情報をコマンドに付与する。そして、コマンド順序判定部は、付与された後のコマンドにおける、付与された付加情報と、ライトデータが、データバッファ格納済みであるかを示す、信号発行部により発行された情報(上述の信号)とを入力として、コマンドを選択する。
 これにより、マスタ調停部で選択した順序を極力守ることができ、かつ、ライトデータ待ちにより発行できないライトコマンドを、リードコマンドが、追い越すことができ、オーバーヘッド隠蔽を実現できる。
 なお、マスタ選択ステップで選択されたバスマスタからのコマンドであるライトコマンドのデータが利用可能であるかを判定し、利用可能であると判定される、有効なライトコマンドを識別するライトコマンド有効判定ステップが実行されてもよい。
 マスタ調停部が付与した付加情報により、ライトコマンドと、リードコマンドとからの、コマンドの選択は、マスタ調停部で選択した順序を大幅に崩すことなくされる。これにより、ライトコマンドと、リードコマンドとのうちで、このような、大幅に崩すことのない選択で選択された方のコマンドを、アクセス制御部に発行することができる。かつ、ライトデータ待ちのライトコマンドが存在している際には、リードコマンドを選択することで、アクセス制御部に、より適切に、コマンドが発行でき、メモリ装置へのオーバーヘッドを隠蔽することができる。
図1は、第1、2の実施の形態に係るデータ処理装置の構成図である。 図2は、第1の実施の形態における動作フロー図である。 図3Aは、第1の実施の形態におけるコマンド選択図である。 図3Bは、リードコマンドバッファに格納されたID付リードコマンドの状態の表を示す図である。 図3Cは、ライトコマンドバッファに格納されたID付ライトコマンドの状態の表を示す図である。 図4は、第2の実施の形態における動作フロー図である。 図5Aは、第2の実施の形態におけるコマンド選択図である。 図5Bは、リードコマンドバッファに格納された余裕度付リードコマンドの状態の表を示す図である。 図5Cは、ライトコマンドバッファに格納された余裕度付ライトコマンドの状態の表を示す図である。 図6は、従来構成で用いられるデータ処理装置の構成図である。 図7は、従来技術におけるコマンド選択図の一例である。
 本発明の実施の形態については、図面を参照して説明する。なお、以下で説明する実施の形態は、何れも本発明の比較的好ましい一具体例を示すものである。以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などについては、何れも、単なる一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、比較的好ましい形態を構成するものとして説明される。
 実施形態のデータ処理装置100(図1など)は、複数のバスマスタ102がメモリ装置150にデータ転送することを制御するデータ処理装置100であって、それらの複数のバスマスタからバスマスタ102(例えばバスマスタ102s)を選択し、選択されたバスマスタからのコマンド110cに、予め定められた情報110i(図3B~図3CにおけるID 9Nr、9Nw、図5B~図5Cにおける余裕度9Jr、9Jwなどを参照)を付与して、付与がされた後のコマンド101c(図1)を生成するマスタ調停部110を備える。また、生成されたコマンド101cが、ライトコマンド101wである場合に、そのライトコマンド101wのライトデータ(データ122d)を格納するデータバッファ122を備える。また、生成されたコマンド101cがライトコマンド101wである場合に、そのコマンド101c(ライトコマンド101w)を格納するライトコマンドバッファ121を備える。また、生成されたコマンド101cがリードコマンド101rである場合に、そのコマンド101c(リードコマンド101r)を格納するリードコマンドバッファ120を備える。また、上述のライトデータ122dの、データバッファ122への格納が完了したことを示す信号(情報130iの信号)を発行する信号発行部(ライトデータ受付完了通知制御部130)を備える。また、ライトコマンドバッファ121により格納される、発行された上述の信号(情報130iの信号)で、ライトデータ122dの格納が完了したことが示されるライトコマンド101wである第1のコマンド(例えば、図3A、図3Cのコマンド121a)と、リードコマンドバッファ120により格納されるリードコマンド101rである第2のコマンド(例えば、図3A、図3Bのコマンド101m)のうちから、一のコマンドを選択し、選択される一のコマンドは、当該一のコマンドに付与された情報110iから特定される順序が、より早い方の順序であるコマンド(例えばコマンド121a)であり、当該一のコマンドを、メモリ装置150に発行されるコマンド140cとして選択するコマンド順序判定部131を備える。なお、一のコマンドに付与された情報110iについては、第1、第2のコマンドの各々に付与された情報110i、および、先述のID 9Nr、9Nw、余裕度9Jr、9Jwを参照されたい。
 すなわち、例えば、このデータ処理装置100では、上述された、付与される情報110iは、当該情報110iが付与されるコマンドによる、メモリ装置150へのアクセス要求が、何番目に、マスタ調停部110により選択されたか示すID(ID 9Nr、9Nwを参照)であり、コマンド順序判定部131は、第1のコマンド(コマンド121a)および第2の前記コマンド(コマンド101m)のうちで、このID(ID 9Nr、9Nw)が、より小さい方のコマンド(コマンド121a)を選択してもよい。
 また、例えば、このデータ処理装置100では、付与される情報110iは、上述された、マスタ調停部110により選択されたバスマスタ102(バスマスタ102s)からのコマンド110cでの、メモリ装置150へのアクセスにおける、処理時間の余裕度(余裕度9Jr、9Jwを参照)であり、ライトコマンドバッファ121は、ライトコマンド101wであるコマンド101cを格納した後に、格納されたそのコマンド101cである余裕度付コマンドの余裕度を減少させ、リードコマンドバッファ120は、リードコマンド101rであるコマンド101cを格納した後に、格納されたそのコマンド101cである余裕度付コマンドの余裕度を減少させ、コマンド順序判定部131は、上述された、第1のコマンド(コマンド121a)および第2のコマンド(コマンド101m)の中で、選択をする時刻での上述の余裕度(図5B、図5Cの余裕度9Jr、9Jwを参照)が、より小さい方のコマンド(例えばコマンド121a)を選択してもよい。
 図1は、本発明の一実施形態に係るデータ処理装置を示している。
 本発明の一実施形態に係るデータ処理装置100は、複数のバスマスタ102と、メモリ装置150とにそれぞれ接続され、マスタ調停部110と、メモリ制御部101とにより構成される。
 メモリ制御部101は、リードコマンドバッファ120と、ライトコマンドバッファ121と、複数のバスマスタ102が共有して、何れのバスマスタ102もが使用するデータバッファ122と、ライトデータ受付完了通知制御部130と、コマンド順序判定部131と、アクセス制御部140とで構成される。
 (実施形態1)
 図1の構成にて、複数のバスマスタ102のそれぞれは、リードアクセス要求や、ライトアクセス要求を、マスタ調停部110に発行する。
 そして、マスタ調停部110によって選択された1つのバスマスタ102(例えば、図1の例では、バスマスタ102s)は、アクセス要求が、ライトアクセス要求の場合には、マスタ調停部110に、ライトコマンド(コマンド110w)を発行する。そして、こうして、ライトコマンドを発行するのと同時に、データバッファ122に、そのライトコマンドに対するライトデータ(データ122d)を発行する。
 一方、選択された1つのバスマスタ102は、アクセス要求が、リードアクセス要求の場合には、マスタ調停部110に、リードコマンド(コマンド110r)を発行する。
 マスタ調停部110は、選択したバスマスタからのコマンド(コマンド110c)を受け取る。そして、受け取ったコマンドに対して、IDを付与する。付与されるIDは、マスタ調停部110が、何番目に、その付与がされるコマンドでのアクセス要求を選択したかという、選択がされた順番の情報として付与される、その順番を示すID(情報110i)である。なお、付与されるIDは、その順番の値などでもよいし、その値に対応付けられた文字列、数字などでもよい。
 マスタ調停部110は、付与がされたコマンドでのアクセスが、リードアクセスであった場合、リードコマンドバッファ120に、付与された後の、付与がされたIDを一部に含んでなるコマンド(コマンド101r)を発行する。
 他方、マスタ調停部110は、受け取ったコマンドによるアクセスが、ライトアクセスであった場合、ライトコマンドバッファ121に、IDが付与されて、付与されたIDが含まれてなるコマンド(コマンド101w)を発行する。
 リードコマンドバッファ120は、マスタ調停部110から発行されたリードコマンドを保持し、コマンド順序判定部131に、そのリードコマンドを発行する。
 ライトコマンドバッファ121は、マスタ調停部110から発行されたライトコマンドを保持し、コマンド順序判定部131に、そのライトコマンドを発行する。
 ライトデータ受付完了通知制御部130は、ライトコマンドバッファ121の状態を観測する。具体的には、コマンド(コマンド110w)に対するライトデータ(データ122d)が、データバッファ122に格納されたかを観測する。そして、ライトデータが、格納済みになると、データが格納完了されたことを識別する識別子(情報130i)を、コマンド順序判定部131に通知する。
 コマンド順序判定部131は、リードコマンドバッファ120から発行されるリードコマンドと、ライトコマンドバッファ121から発行されるライトコマンドとのうちの、何れかのコマンドを選択する。具体的には、選択をする際に、リードコマンドに付与されたIDと、ライトコマンドに付与されたIDと、ライトコマンドに対する、ライトデータ受付完了通知制御部130から発行される完了識別子(情報130i)とを用いることにより、リードコマンドか、ライトコマンドか、何れかの適切な方を選択する。
 コマンド順序判定部131にて選択されたコマンドが、リードコマンドの場合には、コマンド順序判定部131は、アクセス制御部140に、リードコマンドを発行する。そして、この発行がされると、アクセス制御部140は、メモリ装置150に、リードコマンドを発行し、リードデータの転送を要求する。
 選択されたコマンドが、ライトコマンドの場合には、コマンド順序判定部131は、アクセス制御部140に、ライトコマンドを発行する。アクセス制御部140は、このライトコマンドの受付と同時に、データバッファ122から、ライトデータ(データ122d)を受け付ける。アクセス制御部140は、この受け付けをすると、メモリ装置150に、ライトコマンドを発行し、受け付けられたライトデータの転送をさせる。
 図2は、図1のデータ処理装置100の処理フローである。
 ステップS200において、マスタ調停部110は、複数のバスマスタ102のアクセス要求から、アクセス要求を選択する。そして、選択されたアクセス要求をする、バスマスタ102からのコマンド(コマンド110c)を受け取る。そして、マスタ調停部110が、その受け取りでの、アクセス要求の選択が、何番目における、アクセス要求の選択かという情報として、その選択の順番を示すID(上述の情報110i)を、その順番で受け取ったコマンドに付与する。
 ステップS201において、コマンド順序判定部131は、リードコマンドバッファ120から発行されるリードコマンドと、ライトコマンドバッファ121から発行されるライトコマンドとについて、次のような判定をする。
 すなわち、ライトコマンドと、リードコマンドとが、何れも発行可能である状態がある。この状態は、リードコマンドバッファ120に、リードコマンドがあり、かつ、ライトコマンドバッファ121に、ライトコマンドがある状態である。上述の判定では、この状態であるか否かが判定される。この状態と判定される場合には(S201のyes)、ステップS202に移行する。一方で、この状態でなく、ライトコマンドか、リードコマンドかのどちらか一方のみが発行される状態と判定される場合であれば(S201のno)、ステップS204に移行する。
 ステップS202において、コマンド順序判定部131は、ライトデータ受付完了通知制御部130からの識別子を受け取る。この受け取りをすることで、ライトコマンドバッファ121にあるライトコマンドが、有効かどうかを判定する。すなわち、受け取った識別子より、先述された、そのライトコマンドのデータの格納が完了したことが示される場合には(S202のyes)、有効と判定され、完了してないことが示される場合には(S202のno)、有効でないと判定される。
 有効と判定されたライトコマンドがあれば(S202のyes)、ステップS203に移行する。
 他方、無効と判定されれば(S202のno)、ステップS207に移行し、リードコマンドバッファ120にある各リードコマンドの中で、IDの一番小さいリードコマンドを選択する。
 ステップS203において、コマンド順序判定部131は、ライトデータ受付完了通知制御部130からの識別子から、ライトデータが格納済となっていると判定されたライトコマンド、および、リードコマンドのIDを比較し、それらの中から、最も小さいIDを有するコマンドを選択する。
 選択されたコマンドが、ライトコマンドの場合には(S203のyes)、ステップS206に移行する一方で、選択されたコマンドが、リードコマンドの場合には(S203のno)、ステップS207に移行する。
 他方、ステップS204において、先述のS201でnoの判定がされて、ライトコマンドと、リードコマンドとのうちの一方のみがあり、その一方のみが発行可能であることが判定された場合の処理がされる。このステップS204の処理では、その一方のコマンドが、リードコマンドと判定される場合には(ステップS204のyes)、ステップS208に移行して、リードコマンドを選択する。他方、その一方のコマンドが、ライトコマンドと判定される場合には(ステップS204のno)、ステップS205に移行する。
 ステップS205において、コマンド順序判定部131は、ライトデータ受付完了通知制御部130からの識別子(先述)を受け取ることで、ライトコマンドが、有効かどうかを判定する(先述のS202の説明を参照)。
 ライトコマンドが有効と判定されれば(S205のyes)、ステップS209に移行し、ライトコマンドを選択する。無効であれば(S205のno)、なにも選択せず、何れのコマンドも選択しない。
 図3Aは、図1と図2での処理の具体的な一例を示す図である。
 500は、マスタ調停部110で選択された、複数のバスマスタ102からのコマンドを、時系列に表示した欄を指す。
 501は、リードコマンドバッファ120に格納されたID付リードコマンドの状態を時系列に示した欄を指す。
 502は、ライトコマンドバッファ121に格納されたID付ライトコマンドの状態を時系列に示した欄を指す。
 503は、コマンド順序判定部131に選択されて、メモリ装置150に発行されるコマンドを時系列に示した欄を指す。
 なお、以下の説明では、本具体例における、比較的特徴的な点が現れた各時刻の処理についてのみ、詳しい説明をする。
 なお、以下の説明では、コマンドは、(属性、ID番号、データフラグ)の形式で表現される。
 なお、この表現のなかで、「属性」としては、R(リードコマンド)と、W(ライトコマンド)とがある。
 ID番号は、そのID番号により示される順番の数値である。
 データフラグとしては、0(ライトデータ未格納)と、l(ライトデータ格納済)とがある。
 なお、このように、データフラグは、ライトデータが未格納か否かに関するフラグであり、ライトコマンドのみに関係する。そこで、以下では、リードコマンドについては、このデータフラグが示されず、単に、(属性、ID番号)との表現がされる。
 図3Aの時刻t1では、リードコマンドバッファ120に格納されているID付リードコマンド(R、1)のみがある。このため、このID付リードコマンド(R、1)が、コマンド順序判定部131により選択される(図2のS201のno、S204のyes、S208などを参照)。
 なお、図3Aで示されるように、それぞれの時刻(例えば上述の時刻t1)で選択されるコマンド(ID付リードコマンド(R、1))は、欄503における、その時刻の部分に図示される。
 なお、図3Aの、欄501における、時刻t1での表について、次の通りである。すなわち、この表の第4行において、上述されたID付リードコマンド(R、1)があることが示される。そして、この表の第2、第3行が空欄で、リードコマンドバッファ120には、上述された、第4行のID付リードコマンド(R、1)のみがあるのが示される。
 また、欄502における、時刻t1の表では、何れの行も空欄で、ライトコマンドバッファ121には、1つのライトコマンドもないことが示される。
 時刻t3では、リードコマンドバッファ120に格納されたID付リードコマンド(R、3)と、ライトコマンドバッファ121に格納されたID付ライトコマンド(W、2、0)とがある。そして、後者のID付ライトコマンド(W、2、0)における、上述のデータフラグは0である(欄502での表の第4行における、flgの項目(第2列)の記号「0」を参照)。つまり、このID付ライトコマンド(W、2、0)についての、上述された、データの格納が、未完であることが示される。このため、他方のID付リードコマンド(R、3)が選択される(S201のyes、S202のno、S207を参照)。
 時刻t5では、リードコマンドバッファ120に格納されたID付リードコマンド(R、5)がある。また、ライトコマンドバッファ121に格納された2つのID付ライトコマンド(W、2、1)、(W、4、0)がある。そして、これら2つのID付ライトコマンド(W、2、1)、(W、4、0)のうちで、前者のID付ライトコマンド(W、2、1)のデータフラグ(図3Cのフラグ9Fm)は、データの格納が完了したことを示す「1」である(欄502の、時刻t5の表の第4行第2列の記号「1」を参照)。そして、このID付ライトコマンド(W、2、1)のID(図3CのID 9Nw)は「2」であり、時刻t5にある、上述のID付リードコマンド(R、5)のID(図3BのID 9Nr)である「5」(欄501の時刻t5の表の第4行)よりも早い順番のIDである。こうであるので、第4行に示される、上述のID付ライトコマンド(W、2、1)が選択される(S201のyes、S202のyes、S203のyes、S206などを参照)。
 時刻t7では、リードコマンドバッファ120に格納されたID付リードコマンド(R、5)がある。また、ライトコマンドバッファ121に格納された2つのID付ライトコマンド(W、4、1)、(W、6、0)がある。こうであるので、上述の時刻t5で、先述のようにして、ID付ライトコマンド(W、2、1)が選択されるのと同様にして、この時刻t7では、欄502の表の第4行のID付ライトコマンド(W、4、1)が選択される。
 時刻t9では、リードコマンドバッファ120に格納されたID付リードコマンド(R、5)と、ライトコマンドバッファ121に格納されたID付ライトコマンド(W、6、1)とがある。そして、前者のID付リードコマンド(R、5)のIDは「5」で、後者におけるIDである「6」よりも小さい。こうであるので、前者のID付リードコマンド(R、5)が選択される(S201のyes、S202のyes、S203のno、S207などを参照)。
 以上のように、コマンド順序判定部131は、マスタ調停部110が、複数のバスマスタ102から、バスマスタ102を選択した情報(上述のIDを参照)を考慮しながら、コマンドを選択する。このことができるので、マスタ調停部110が選択した順序を、極力守ることができる。すなわち、メモリ装置150にコマンドを発行する順序を、そのコマンドの、マスタ調停部110により選択された順序が考慮された比較的適切な順序にすることができる。
 また、データバッファ122に、ライトデータを転送している途中で、その転送による、ライトデータの格納が完了するまでの間には、発行できないライトコマンドが存在するときがある。このときには、リードコマンドを選択して(S202のno、S207を参照)、そのリードコマンドでの、メモリ装置150へのアクセスをすることができ、メモリ装置150へのアクセスの質が低下するのを防ぐことができる。例えば、オーバーヘッドの隠蔽も可能となる。
 なお、メモリ装置150は、例えば、データ処理装置100が設けられるLSIなどのLSIの内部、外部の何れに構成するのを問わず、SDRAMなどのような、アドレスと、アクセス属性とによりデータ転送を行う装置であればよい。
 なお、図2のS201で、yesの場合には、ライトコマンドバッファ121により記憶されるライトコマンドの個数が、1個以上である。
 例えば、ある局面などでは、このような、記憶されるライトコマンドの個数が、1個でもよい(図3Aの時刻t2、t3、t8、t9などを参照)。
 そして、S202では、その1個のライトコマンドのライトデータの格納の完了を示す情報130iが、コマンド順序判定部131により取得されたか否かが判定されてもよい。
 そして、取得されたと判定される場合に(S202のyes)、S203の処理がされ、取得されてないと判定される場合に(S202のno)、S207の処理がされてもよい。
 他方、記憶されるライトコマンドの個数が、2個以上でもよい。
 そして、S202において、それら2個以上のライトコマンドのうちに、そのライトコマンドでは、上述の格納が完了したことを示す情報130iが取得されたライトコマンドが含まれるか否かが判定されてもよい。
 S203では、含まれる、それらの、情報130iが取得されたライトコマンドの1個以上が、リードコマンドバッファ120により記憶されるリードコマンドのIDよりも早い順番のIDのライトコマンドを含むか否かが判定されてもよい。
 含むと判定された場合に(S203のyes)、その判定がされた、早い順番のIDのライトコマンドの1つが、メモリ装置150へと発行され(S206)、含まれないと判定された場合に(S203のno)、リードコマンドが発行されてもよい(S207)。
 なお、さらに具体的には、ある局面などでは、リードコマンドバッファ120により記憶されるリードコマンドの個数が、2個以上でもよい。
 そして、S203では、それらの2個以上のリードコマンドのうちで、最も早い順番のIDのリードコマンドの処理がされてもよい。つまり、そのIDよりも早い順番のIDのライトコマンドが、先述された、格納の完了を示す情報130iが取得された1個以上ライトコマンドに含まれるか否かが判定されてもよい。
 そして、含まれないと判定された場合には(S203のno)、上述された、最も早い順番のIDのリードコマンドの発行がされてもよい(S207)。
 (実施形態2)
 実施形態1で説明した通り、図1の構成にて、複数のバスマスタ102のそれぞれは、リードアクセス要求やライトアクセス要求を、データ処理装置100のマスタ調停部110に発行する。
 そして、マスタ調停部110によって選択された1つのバスマスタ102(先述のバスマスタ102s)は、アクセス要求が、ライトのアクセス要求である場合には、マスタ調停部110に、ライトコマンドを発行する。
 そして、選択された1つのバスマスタ102は、上述の発行をするのと同時に、データバッファ122に、そのライトコマンドに対するライトデータを発行する。
 他方、選択された1つのバスマスタ102は、アクセス要求がリードの場合には、マスタ調停部110に、リードコマンドを発行する。
 そして、この実施形態2では、マスタ調停部110は、複数のバスマスタ102の各々に対して設定されている余裕度を有している。それぞれのバスマスタ102が、メモリ装置150に、その時刻までに転送をしなければならない時刻がある。それぞれの余裕度は、その余裕度のバスマスタ102におけるこの時刻までの時間の長さなどである。
 そして、複数のバスマスタ102のうちのそれぞれのバスマスタ102が、マスタ調停部110に、アクセス要求を出してから、そのバスマスタ102の余裕度は減少していく。そして、マスタ調停部110は、それら複数のバスマスタ102から、1つのバスマスタ102を選択する時刻において、余裕度の一番小さいバスマスタ102を選択する。
 マスタ調停部110は、アクセス要求(バスマスタ)を選択した時刻での余裕度を、バスマスタが発行してきた、そのアクセス要求のアクセスをするコマンドに付与する。
 マスタ調停部110は、余裕度が付与されたコマンドが、リードアクセスのコマンドであるリードコマンドであった場合、リードコマンドバッファ120に、そのコマンドを発行する。他方、ライトアクセスのコマンドであるライトコマンドであった場合、ライトコマンドバッファ121に、そのコマンドを発行する。
 リードコマンドバッファ120は、マスタ調停部110から発行されたリードコマンドを保持し、コマンド順序判定部131に、そのリードコマンドを発行する。なお、リードコマンドを保持している間には、そのリードコマンドに付与された余裕度は減少していく。
 ライトコマンドバッファ121は、マスタ調停部110から発行されたライトコマンドを保持し、コマンド順序判定部131に、ライトコマンドアクセス要求を発行する。ライトコマンドを保持している間には、そのライトコマンドに付与された余裕度は減少していく。
 ライトデータ受付完了通知制御部130は、ライトコマンドバッファ121の状態を観測し、そのライトコマンドに対するライトデータが、データバッファに格納されるのが完了したかを観測する。ライトデータが格納されるのが完了すると、ライトデータが格納完了されたことを識別する識別子を、コマンド順序判定部131に通知する。
 コマンド順序判定部131は、リードコマンドバッファ120から発行されるリードコマンドと、ライトコマンドバッファ121から発行されるライトコマンドの少なくとも一方を含んでなる1以上のコマンドから、コマンドを選択する際に、次の処理をする。
 その処理では、リードコマンドバッファ120からの、一つ以上の余裕度付リードコマンドと、ライトコマンドバッファ121からの、一つ以上の余裕度付ライトコマンドと、後述される、一つ以上の信号を入力として行われる。一つ以上の信号のそれぞれは、ライトデータ受付完了通知制御部130からの上述のデータ格納完了信号である。
 つまり、上述の一つ以上の余裕度付ライトコマンドは、次のような、一つ以上の余裕度付ライトコマンドを含む。この一つ以上の余裕度付ライトコマンドに含まれる、何れの余裕度付ライトコマンドについても、上述の一つ以上の信号に含まれる1の信号である、その余裕度付ライトコマンドのデータ格納完了信号が有効である。データ格納完了信号が有効であるとは、そのデータ格納完了信号により、ライトデータが既に取得されたことが示されることをいう。
 これらの、一つ以上の余裕度付リードコマンド、および、データ格納完了信号が有効な、上述された一つ以上の余裕度付ライトコマンドとが含まれてなる複数のコマンドの中で、余裕度が一番小さいコマンドを選択する。
 コマンド順序判定部131にて選択されたコマンドが、リードコマンドの場合には、コマンド順序判定部131は、アクセス制御部140に、リードコマンドを発行する。アクセス制御部140は、メモリ装置150に、リードコマンドを発行し、リードデータの転送を要求する。
 選択されたコマンドが、ライトコマンドの場合には、コマンド順序判定部131は、アクセス制御部140に、ライトコマンドを発行する。アクセス制御部140は、ライトコマンドの受け付けと同時に、データバッファ122から、ライトデータを引き抜く。アクセス制御部140は、メモリ装置150に、ライトコマンドを発行し、ライトデータの転送をさせる。
 図4は、図1のデータ処理装置100の処理フローである。
 ステップS300において、マスタ調停部110は、複数のバスマスタ102からの複数のアクセス要求から、アクセス要求を選択し、選択されたアクセス要求(バスマスタ102)のコマンドを受け取る。そして、マスタ調停部110は、アクセス要求を選択した時刻での余裕度を、そのバスマスタ102が、当該マスタ調停部110へと発行してきたコマンドに付与する。
 ステップS301において、コマンド順序判定部131は、リードコマンドバッファ120と、ライトコマンドバッファ121から発行されるコマンドについての判定の処理をする。
 ライトコマンドと、リードコマンドが何れも発行された場合には(S301のyes)、ステップS302に移行し、ライトコマンドかリードコマンドのどちらかのみであれば(S301のno)、ステップS305に移行する。
 ステップS302において、コマンド順序判定部131は、ライトコマンドに対するライトデータが、データバッファ122に格納完了したかどうかを通知する、ライトデータ受付完了通知制御部130からの識別子を受け取る。このことで、ライトコマンドのライトデータが格納済で、有効かどうかを判定する。
 ライトコマンドで、有効なコマンドが存在していたら(S302のyes)、ステップS303に移行する。他方、有効なコマンドが存在していない場合には(S302のno)、ステップS309に移行し、リードコマンドバッファ120の中のリードコマンドにおいて、その時刻での余裕度が一番小さいリードコマンドを選択する。
 ステップS303において、コマンド順序判定部131は、ライトデータ受付完了通知制御部130からの識別子から、ライトデータが格納済となっているのが示されるライトコマンドの処理をする。つまり、そのようなライトコマンドに付与された余裕度と、リードコマンドに付与された余裕度とを比較する。
 そして、リードコマンドの余裕度よりも小さい余裕度のライトコマンドのアクセス要求が存在している場合には(S303のyes)、ステップS304にて、その時刻での余裕度が一番小さいライトコマンドを選択する。
 一方、ライトコマンドの余裕度よりも小さい余裕度のリードコマンドが存在している場合(S303のno)、ステップS310にて、その時刻での余裕度が一番小さいリードコマンドを選択する。
 なお、ステップS303、ステップS304、ステップS310での、ライトコマンドまたはリードコマンドの選択方法としては、例えば、ライトコマンドバッファ121の、有効なライトコマンド、および、リードコマンドの中から、最も余裕度の小さなコマンドを選択する方法もある。
 ステップS305において、コマンドが、リードコマンドだけの場合には(S305のyes)、ステップS308に移行して、余裕度が一番小さいリードコマンドを選択する。コマンドアクセス要求が、ライトコマンドの要求だけの場合には(S305のno)、ステップS306に移行する。
 ステップS306において、コマンド順序判定部131は、ライトコマンドに対するライトデータが、データバッファ122に転送完了したかどうかを通知する、ライトデータ受付完了通知制御部130からの識別子を受け取ることで、ライトコマンドが有効かどうかを判定する。ライトコマンドの、有効なコマンドが存在していたら(S306のyes)、ステップS307にて、ライトコマンドバッファ121の中の各ライトコマンドにおいて、その時刻での、余裕度が一番小さいライトコマンドを選択する。無効であれば(S306のno)、なにも選択しない。
 図5Aは、図1と図4による具体的な処理の例を示す図である。
 600は、マスタ調停部110で選択されたマスタのコマンドを、時系列に表示した欄を指す。
 601は、リードコマンドバッファ120に格納された余裕度付リードコマンドの状態を時系列に示した欄を指す。
 602は、ライトコマンドバッファ121に格納された余裕度付ライトコマンドの状態を時系列に示した欄を指す。
 603は、コマンド順序判定部131に選択されて、メモリ装置150に発行されるコマンドを時系列に示した欄を指す。
 以下の説明では、本例の、比較的特徴的な時刻での処理についてのみ、詳しく説明する。
 コマンドは、(属性、余裕度、データフラグ)の形式で表現される。
 属性としては、R(リードコマンド)と、W(ライトコマンド)とがある。
 余裕度は、数値である。
 データフラグとしては、0(ライトデータ未格納)と、l(ライトデータ格納済)とがある。
 時刻t1では、リードコマンドバッファ120に格納されている余裕度付リードコマンド(R、80)のみがある(時刻t1における、欄601の表、および、欄602の表を参照)。
 このため、この余裕度付リードコマンド(R、80)がコマンド順序判定部131により選択される。
 時刻t3では、リードコマンドバッファ120に格納された余裕度付リードコマンド(R、70)と、ライトコマンドバッファ121に格納された余裕度付ライトコマンド(W、60、0)とがある。
 このため、余裕度付リードコマンド(R、70)が選択される。
 時刻t5では、リードコマンドバッファ120に格納された余裕度付リードコマンド(R、60)と、ライトコマンドバッファ121に格納された余裕度付ライトコマンド(W、52、1)、(W、36、0)とがある。
 このため、余裕度付ライトコマンド(W、52、1)が選択される(図5Bで示される、余裕度付リードコマンド(R、60)の余裕度9Jr、図5Cで示される、余裕度付ライトコマンド(W、52、1)の余裕度9Jwを参照)。
 時刻t7では、リードコマンドバッファ120に格納された余裕度付リードコマンド(R、16)、(R、52)と、ライトコマンドバッファ121に格納された余裕度付ライトコマンド(W、28、1)、とがある。
 このため、余裕度付リードコマンド(R、16)が選択される。
 以上のように、コマンド順序判定部131は、マスタ調停部110が、複数のバスマスタ102を選択した情報を考慮しながら、コマンドを選択することができる。つまり、コマンド順序判定部131が、コマンドを選択する毎に、マスタ調停部110が選択した結果を、随時反映することが可能となり、メモリ装置150に、より適切に、コマンドを発行することができる。
 また、データバッファ122に、ライトデータを転送している間、発行できないライトコマンドが存在すると(例えば、図5Aの時刻t3での、余裕度付ライトコマンド(W、60、0)などを参照)、リードコマンド(時刻t3での余裕度付リードコマンド(R、70))を選択することができ、メモリ装置150へのアクセスの質の低下を防ぐことができ、オーバーヘッドの隠蔽も可能となる。
 なお、メモリ装置は、LSI上において、内部、外部に構成するのを問わず、SDRAMのような、アドレスとアクセス属性によりデータ転送を行う装置であればよい。
 なお、アクセス要求が何番目に選択されたのか示すIDを、さらにコマンドに付与し、コマンド順序判定部131がコマンドを選択する際に、余裕度が同一である2つのコマンドが存在した場合においては、IDの小さい方のコマンドを選択してもよい。
 こうして、要するに、次の課題が解決される。すなわち、マスタ調停部110が選択した順番通りに、コマンド選択部(コマンド順序判定部131)が選択を行った場合には([…とする課題]の欄の(1)を参照)、次の問題が生じる。つまり、ライトコマンドを選択する際に、ライトデータがデータバッファ122に格納されていないと、アクセス制御部140にアクセスすることができず、その結果、オーバーヘッドが生じる。それを防ぐために、マスタ調停した後のライトコマンド、リードコマンドについて、固定優先(ライト優先)などで、コマンドを選択し、アクセス制御部にコマンドを発行する方法がある((2)を参照)。しかし、マスタ調停で選択した選択順番を考慮せずに、ライトコマンド、リードコマンドから、コマンドを選択し、アクセス制御部140に、選択されたコマンドを発行すると、例えば、リードコマンドが選択できず、後続のライトコマンドに追い越され続けるということが発生し、マスタ調停部110で選択した順序を大幅に崩してしまうことが起きる。そこで、上述のように、マスタ調停部110が選択したときの情報をコマンドに付与し、付与されたコマンドの情報と、ライトデータのデータ格納完了信号が、格納完了済であるのを示すという情報で、コマンド順序判定部131が、コマンド判断し、コマンドアクセス要求を選択する。
 なお、このように、例えばある局面などで、次の動作がされてもよい。
 すなわち、先述のように、本技術によれば、マスタ調停部110で選択した順序を極力守ることができ、かつ、ライトデータ待ちにより発行できないライトコマンドを、リードコマンドが、追い越すことができる。
 例えば、この効果が、以下の動作がされることにより生じてもよい。
 すなわち、上述された、守られるべきであり、極力守られる順序が、情報110i(図1)から特定されてもよい。
 この情報110iは、マスタ調停部110により生成される情報であり、具体的には、例えば、先述されたID、余裕度などである。
 生成された情報110iは、その情報110iにより、発行の順序が示されるコマンドに付与された後には、そのコマンドに含まれ、そのコマンドの一部でもよい。
 一方で、コマンド(図1のコマンド110cを参照)としては、リードコマンド(リードコマンド110rを参照)と、ライトコマンド(ライトコマンド110wを参照)とがあってもよい。
 そして、リードコマンドが、リードコマンドバッファ120により記憶され、ライトコマンドが、ライトコマンドバッファ121により記憶されてもよい。
 そして、ライトコマンドにより、メモリ装置150に書き込まれるデータであるライトデータ(図1のデータ122d)の、データバッファ122への格納が完了したことを示す情報130iが生成されてもよい。
 ライトコマンドの、メモリ装置150への発行は、この情報130iが生成された後にのみ可能であり、生成される前には、可能でなくてもよい。
 なお、可能であるとは、例えば、その発行が適切に行われることなどをいう。
 そして、ライトコマンドとして、一方のライトコマンド(例えば、図3A、図3Cのコマンド121a)と、他方のライトコマンド(コマンド121b)とがあってもよい。
 すなわち、一方のライトコマンドは、そのライトコマンドのライトデータの格納が完了して、その完了を示す情報130iが生成されたものと判定されたライトコマンド(コマンド121a)でもよい。
 そして、他方のライトコマンドは、ライトデータの格納が完了していず、その完了を示す情報130iが生成されてないと判定されたライトコマンド(コマンド121b)でもよい。
 そこで、上述された、格納が格納してないことの判定がされた他方のコマンド(コマンド121b)は、コマンド順序判定部131により選択されず、他のコマンドのみが選択されてもよい。
 すなわち、選択される他のコマンドとしては、上述された、完了したことの判定がされた第1のコマンド(コマンド121a)と、リードコマンドである第2のコマンド(コマンド101m)とがあってもよい。
 そして、第1のコマンドにおける上記の情報110iから特定される順序が、第2のコマンドにおける上記の情報110iから特定される順序よりも早い順序である場合には、次の処理がされてもよい。
 つまり、その処理では、第1のコマンド(コマンド121a)が、第2のコマンド(コマンド101m)よりも先に、そのコマンドでの、メモリ装置150へのアクセスを実行させるコマンドとして、コマンド順序判定部131により選択されてもよい。
 他方、第1のコマンドでの情報110iから特定される順序が、第2のコマンドでの情報110iから特定される順序よりも早い順序ではない場合には、次の処理がされてもよい。
 つまり、その処理では、第2のコマンド(コマンド101m)が、コマンド順序判定部131により選択されてもよい。
 これにより、マスタ調停部110で生成された各情報110iに従って、第1、第2のコマンドからの選択がされて、マスタ調停部110で選択された、コマンドの発行の順序が、極力守れる。
 しかも、第1のコマンドでの情報110iから特定される順序が、より早い順序でなくて、第2のコマンドでの情報110iから特定される順序の方が、より早い場合などには、次の通りである。
 すなわち、ライトデータの格納が完了してない、上述された他方のコマンド(コマンド121b)よりも、第2のコマンド(コマンド101m)が早く選択される。これにより、先述された、ライトデータ待ちにより発行できないライトコマンド(コマンド121b)の、リードコマンド(コマンド101m)による追い越しができる。
 これにより、マスタ調停部110で選択した順序を極力守ることと、ライトデータ待ちにより発行できないライトコマンド(コマンド121b)を、リードコマンド(コマンド101m)が追い越せることとが両立できる。
 本技術は、これらの点で、従来例とは相違する。
 なお、本発明は、装置、集積回路などとして実現できるだけでなく、その装置等を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD-ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
 以上説明してきたとおり、本発明に係るデータ処理装置は、複数のバスマスタが共有するメモリ装置にデータ転送することを制御する装置を用いたシステムLSIに適している。
 9Nr、9Nw ID
 9Jr、9Jw 余裕度
 9Fn、9Fm フラグ
 100、400 データ処理装置
 100s システム
 101、401 メモリ制御部
 101m、121a、121b コマンド
 101r リードコマンド
 101w ライトコマンド
 102、402 バスマスタ
 110、410 マスタ調停部
 110i 情報
 120、430 リードコマンドバッファ 
 121、431 ライトコマンドバッファ
 121a、101m コマンド
 122、432 データバッファ
 122d ライトデータ
 130 ライトデータ受付完了通知制御部
 130i 情報
 131 コマンド順序判定部
 140、440 アクセス制御部
 150、450 メモリ装置
 420 コマンド選択部

Claims (8)

  1.  複数のバスマスタがメモリ装置にデータ転送することを制御するデータ処理装置であって、
     前記複数のバスマスタからバスマスタを選択し、選択された前記バスマスタからのコマンドに付加情報を付与して、付与がされた後の前記コマンドを生成するマスタ調停部と、
     生成された前記コマンドが、ライトコマンドである場合に、前記ライトコマンドのライトデータを格納するデータバッファと、
     生成された前記コマンドが前記ライトコマンドである場合に、前記ライトコマンドを格納するライトコマンドバッファと、
     生成された前記コマンドがリードコマンドである場合に、前記リードコマンドを格納するリードコマンドバッファと、
     前記ライトデータの格納が完了したことを示す信号を発行する信号発行部と、
     前記ライトコマンドバッファにより格納される、発行された前記信号で、前記ライトデータの格納が完了したことが示される前記ライトコマンドである第1のコマンドと、前記リードコマンドバッファにより格納される前記リードコマンドである第2のコマンドの中で、付与された前記付加情報から特定される順序が、より早い方の前記コマンドを、前記メモリ装置に発行されるコマンドとして選択するコマンド順序判定部と
     を備えるデータ処理装置。
  2.  付与される前記付加情報は、当該付加情報が付与される前記コマンドによる、前記メモリ装置へのアクセス要求が、何番目に、前記マスタ調停部により選択されたか示すIDであり、
     前記コマンド順序判定部は、第1の前記コマンドおよび第2の前記コマンドのうちで、前記IDが小さい方の前記コマンドを選択する
     請求項1記載のデータ処理装置。
  3.  付与される前記付加情報は、前記マスタ調停部により選択された前記バスマスタからの前記コマンドでの、前記メモリ装置へのアクセスにおける、処理時間の余裕度であり、
     前記ライトコマンドバッファは、前記ライトコマンドである前記コマンドを格納した後に、格納された前記コマンドである余裕度付コマンドの前記余裕度を減少させ、
     前記リードコマンドバッファは、前記リードコマンドである前記コマンドを格納した後に、格納された前記コマンドである前記余裕度付コマンドの前記余裕度を減少させ、
     前記コマンド順序判定部は、前記第1のコマンドおよび前記第2のコマンドの中で、選択をする時刻での前記余裕度が小さい方の前記コマンドを選択する
     請求項1記載のデータ処理装置。
  4.  請求項3記載のデータ処理装置であって、
     前記マスタ調停部は、前記付加情報として、前記コマンドへと、前記余裕度である第1の付加情報を付与すると共に、そのコマンドによるアクセス要求が、何番目の順番に、前記マスタ調停部により選択されたのか示すIDである第2の付加情報をさらに付与し、
     前記コマンド順序判定部は、第1の前記コマンドと、第2の前記コマンドの前記余裕度が互いに同一である場合において、それら第1、第2の前記コマンドのうちで、付与された前記IDの小さい方の前記コマンドを選択する
     データ処理装置。
  5.  請求項3記載のデータ処理装置であって、
     前記マスタ調停部は、前記複数のバスマスタに対して各々設定される、前記メモリ装置にアクセスしなければならない余裕度を有し、それぞれの前記バスマスタがアクセス要求を出してから、そのバスマスタの前記余裕度を減少させ、前記複数のバスマスタのうちで、選択をする時刻において、最も小さい前記余裕度の前記バスマスタを選択する
     データ処理装置。
  6.  複数のバスマスタがメモリ装置にデータ転送することをデータ処理装置が制御するデータ処理方法であって、
     前記複数のバスマスタからバスマスタを選択し、選択された前記バスマスタからのコマンドに付加情報を付与して、付与がされた後の前記コマンドを生成するマスタ調停ステップと、
     生成された前記コマンドが、ライトコマンドである場合に、前記ライトコマンドのライトデータをデータバッファが格納する第1の格納ステップと、
     生成された前記コマンドが前記ライトコマンドである場合に、前記ライトコマンドをライトコマンドバッファが格納する第2の格納ステップと、
     生成された前記コマンドがリードコマンドである場合に、前記リードコマンドをリードコマンドバッファが格納する第3の格納ステップと、
     前記ライトデータの格納が完了したことを示す信号を発行する信号発行ステップと、
     前記ライトコマンドバッファにより格納される、発行された前記信号で、前記ライトデータの格納が完了したことが示される前記ライトコマンドである第1のコマンドと、前記リードコマンドバッファにより格納される前記リードコマンドである第2のコマンドの中で、付与された前記付加情報から特定される順序が、より早い方の前記コマンドを、前記メモリ装置に発行されるコマンドとして選択するコマンド順序判定ステップと
     を含むデータ処理方法。
  7.  複数のバスマスタがメモリ装置にデータ転送することをデータ処理装置が制御するデータ処理方法であって、
     前記複数のバスマスタからバスマスタを選択し、選択された前記バスマスタからのコマンドに、そのコマンドを、何番目に選択したかを示すIDを付与するマスタ選択ステップと、
     前記マスタ選択ステップで選択された前記コマンドであるライトコマンドのデータが利用可能であるか判定し、有効な前記ライトコマンドを識別するライトコマンド有効判定ステップと、
     前記ライトコマンド有効判定ステップで識別された、有効な前記ライトコマンドである第1のコマンドと、リードコマンドである第2のコマンドとの中で、小さい方の番号の前記IDが付与された前記コマンドを、前記メモリ装置に発行されるコマンドとして選択するコマンド選択ステップと
     を含むデータ処理方法。
  8.  複数のバスマスタがメモリ装置にデータ転送することをデータ処理装置が制御するデータ処理方法であって、
     前記複数のバスマスタからバスマスタを選択し、選択された前記バスマスタからのコマンドに、前記メモリ装置にアクセス完了するために残された時間を示す余裕度を付与するマスタ選択ステップと、
     前記マスタ選択ステップで選択された前記コマンドであるライトコマンドのデータが利用可能であるか判定し、有効な前記ライトコマンドを識別するライトコマンド有効判定ステップと、
     前記ライトコマンド有効判定ステップで識別された、有効な前記ライトコマンドである第1のコマンドと、リードコマンドである第2のコマンドの中で、小さい方の前記余裕度の前記コマンドを、前記メモリ装置に発行されるコマンドとして選択するコマンド選択ステップと
     を含むデータ処理方法。
PCT/JP2012/003418 2011-07-22 2012-05-25 データ処理装置およびデータ処理方法 WO2013014841A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/158,619 US8924613B2 (en) 2011-07-22 2014-01-17 Data processing device and data processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011161340 2011-07-22
JP2011-161340 2011-07-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/158,619 Continuation US8924613B2 (en) 2011-07-22 2014-01-17 Data processing device and data processing method

Publications (1)

Publication Number Publication Date
WO2013014841A1 true WO2013014841A1 (ja) 2013-01-31

Family

ID=47600719

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003418 WO2013014841A1 (ja) 2011-07-22 2012-05-25 データ処理装置およびデータ処理方法

Country Status (3)

Country Link
US (1) US8924613B2 (ja)
JP (1) JPWO2013014841A1 (ja)
WO (1) WO2013014841A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015040750A1 (ja) * 2013-09-20 2015-03-26 富士通株式会社 データ転送装置、情報処理装置及びio制御方法
WO2018003244A1 (ja) * 2016-06-29 2018-01-04 ソニー株式会社 メモリコントローラ、メモリシステムおよび情報処理システム
CN114503089A (zh) * 2019-12-05 2022-05-13 奥林巴斯株式会社 数据传送装置和数据传送方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11393550B2 (en) 2018-09-14 2022-07-19 Rambus Inc. Memory system with error detection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412030B1 (en) * 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
JP2007026366A (ja) * 2005-07-21 2007-02-01 Canon Inc メモリコントローラ
WO2009147744A1 (ja) * 2008-06-06 2009-12-10 三菱電機株式会社 バス調停装置
JP2010244408A (ja) * 2009-04-08 2010-10-28 Fujitsu Semiconductor Ltd メモリコントローラおよびメモリインターフェース方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02128249A (ja) 1988-11-09 1990-05-16 Hitachi Ltd 記憶制御方式
US6988154B2 (en) * 2000-03-10 2006-01-17 Arc International Memory interface and method of interfacing between functional entities
US6704817B1 (en) * 2000-08-31 2004-03-09 Hewlett-Packard Development Company, L.P. Computer architecture and system for efficient management of bi-directional bus
US6829689B1 (en) * 2002-02-12 2004-12-07 Nvidia Corporation Method and system for memory access arbitration for minimizing read/write turnaround penalties
FR2864320A1 (fr) * 2003-12-19 2005-06-24 St Microelectronics Sa Nouvelle architecture de memoire fifo et procede de gestion d'une telle memoire.
JP4714433B2 (ja) 2004-07-12 2011-06-29 パナソニック株式会社 メモリアクセス装置及び方法
US7272692B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Arbitration scheme for memory command selectors
US7685374B2 (en) * 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
JP4752882B2 (ja) * 2008-07-24 2011-08-17 ソニー株式会社 メモリアクセスシステム、メモリ制御装置、メモリ制御方法、および、プログラム
US8521980B2 (en) * 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US8699277B2 (en) * 2011-11-16 2014-04-15 Qualcomm Incorporated Memory configured to provide simultaneous read/write access to multiple banks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412030B1 (en) * 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
JP2007026366A (ja) * 2005-07-21 2007-02-01 Canon Inc メモリコントローラ
WO2009147744A1 (ja) * 2008-06-06 2009-12-10 三菱電機株式会社 バス調停装置
JP2010244408A (ja) * 2009-04-08 2010-10-28 Fujitsu Semiconductor Ltd メモリコントローラおよびメモリインターフェース方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015040750A1 (ja) * 2013-09-20 2015-03-26 富士通株式会社 データ転送装置、情報処理装置及びio制御方法
JP6037029B2 (ja) * 2013-09-20 2016-11-30 富士通株式会社 データ転送装置、情報処理装置及びio制御方法
JPWO2015040750A1 (ja) * 2013-09-20 2017-03-02 富士通株式会社 データ転送装置、情報処理装置及びio制御方法
WO2018003244A1 (ja) * 2016-06-29 2018-01-04 ソニー株式会社 メモリコントローラ、メモリシステムおよび情報処理システム
JPWO2018003244A1 (ja) * 2016-06-29 2019-04-18 ソニー株式会社 メモリコントローラ、メモリシステムおよび情報処理システム
US11029881B2 (en) 2016-06-29 2021-06-08 Sony Corporation Memory controller, memory system, and information processing system
JP6992750B2 (ja) 2016-06-29 2022-01-13 ソニーグループ株式会社 メモリコントローラ、メモリシステムおよび情報処理システム
CN114503089A (zh) * 2019-12-05 2022-05-13 奥林巴斯株式会社 数据传送装置和数据传送方法
CN114503089B (zh) * 2019-12-05 2024-05-14 奥林巴斯株式会社 数据传送装置和数据传送方法

Also Published As

Publication number Publication date
US8924613B2 (en) 2014-12-30
JPWO2013014841A1 (ja) 2015-02-23
US20140136743A1 (en) 2014-05-15

Similar Documents

Publication Publication Date Title
US10572401B2 (en) Direct memory access descriptor processing using timestamps
US8661440B2 (en) Method and apparatus for performing related tasks on multi-core processor
US9032162B1 (en) Systems and methods for providing memory controllers with memory access request merging capabilities
JP4752882B2 (ja) メモリアクセスシステム、メモリ制御装置、メモリ制御方法、および、プログラム
JP2010157270A (ja) ハブベースのシステムメモリにおける書込みコマンドを終了させる方法とシステム
WO2016107340A1 (zh) 业务请求处理方法和装置
WO2013014841A1 (ja) データ処理装置およびデータ処理方法
JP2010134627A (ja) バス中継装置
JP2009015832A (ja) アクセス間調停回路、半導体装置およびアクセス間調停方法
KR102308224B1 (ko) 다이내믹 랜덤 액세스 메모리 모듈 및 그것의 리프레쉬 방법
US10157123B1 (en) Methods and apparatus for a scheduler for memory access
TW201935259A (zh) 半導體裝置及匯流排產生器
US9761296B2 (en) Smart in-module refresh for DRAM
KR101110550B1 (ko) 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
JPH08161254A (ja) 情報処理システムおよびそのバス調停方式
US9619423B1 (en) Memory-mapped state bus for integrated circuit
JP5383159B2 (ja) バス中継装置及び制御方法
CN106598742B (zh) 一种ssd主控内部负载均衡***及方法
US20140173225A1 (en) Reducing memory access time in parallel processors
CN112559628A (zh) 一种多集群消息的同步方法、装置、介质及电子设备
JP4924970B2 (ja) データ処理システム
JP2007304830A (ja) 情報先行取得による調停方法および調停装置
JP4900381B2 (ja) メモリ制御装置およびメモリ制御装置の制御方法
JP4862593B2 (ja) データ転送装置及び画像形成装置
JP2008009763A (ja) 情報処理装置及びバス制御方法

Legal Events

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

Ref document number: 12817603

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013525542

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12817603

Country of ref document: EP

Kind code of ref document: A1