WO2016039198A1 - アクセス制御方法、バスシステム、および半導体装置 - Google Patents

アクセス制御方法、バスシステム、および半導体装置 Download PDF

Info

Publication number
WO2016039198A1
WO2016039198A1 PCT/JP2015/074640 JP2015074640W WO2016039198A1 WO 2016039198 A1 WO2016039198 A1 WO 2016039198A1 JP 2015074640 W JP2015074640 W JP 2015074640W WO 2016039198 A1 WO2016039198 A1 WO 2016039198A1
Authority
WO
WIPO (PCT)
Prior art keywords
write
memory
request
access
transfer
Prior art date
Application number
PCT/JP2015/074640
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 JP2016547381A priority Critical patent/JP6497392B2/ja
Priority to US15/502,751 priority patent/US11392517B2/en
Publication of WO2016039198A1 publication Critical patent/WO2016039198A1/ja

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/1689Synchronisation and timing concerns
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Definitions

  • the present disclosure relates to an access control method, a bus system that performs access control using such an access control method, and a semiconductor device including such a bus system.
  • the processor is often connected to the memory via, for example, a bus and a memory controller. Then, the processor writes data into the memory or reads data from the memory when performing arithmetic processing.
  • a control method when the processor writes data to the memory there are, for example, posted transfer (also referred to as bufferable) and non-posted transfer (for example, Patent Document 1).
  • non-posted transfer for example, when the processor (master) makes a write request to the memory controller (slave), the memory controller sends a response to the processor after completing the writing of data to the memory.
  • the response return timing since the response return timing is late compared to the posted transfer, the transfer performance may be reduced and the processing speed of the entire system may be reduced, but the occurrence of problems related to coherency can be suppressed.
  • An access control method causes one master device of a plurality of master devices to generate an access request to an access target device, and sends an access request to a slave device based on the access request.
  • the generated one master device is specified, and the slave device is caused to respond to the one master device at a response timing corresponding to the specified one master device.
  • the bus system includes a plurality of master devices and slave devices.
  • the plurality of master devices are configured to be able to generate an access request to the access target device.
  • the slave device responds to one master device at a response timing corresponding to one master device that generated the access request among the plurality of master devices based on the access request.
  • the semiconductor device includes a plurality of master devices and slave devices.
  • the plurality of master devices are configured to be able to generate an access request to the access target device.
  • the slave device responds to one master device at a response timing corresponding to one master device that generated the access request among the plurality of master devices based on the access request.
  • an access request is generated by one master device of a plurality of master devices, and an access target device is generated based on the access request. Is performed. At that time, the response from the slave device to the one master device is performed at a response timing corresponding to the one master device.
  • the response to the one master device is performed at the response timing according to the one master device. It is possible to improve transfer performance while suppressing the occurrence of occurrences.
  • the effect described here is not necessarily limited, and there may be any effect described in the present disclosure.
  • FIG. 2 is a block diagram illustrating a configuration example of a memory controller illustrated in FIG. 1.
  • FIG. 3 is a block diagram illustrating a configuration example of a response control unit illustrated in FIG. 2.
  • 4 is a table illustrating an operation example of the response control unit illustrated in FIG. 3.
  • FIG. 3 is a block diagram illustrating a configuration example of another memory controller illustrated in FIG. 1.
  • FIG. 3 is an explanatory diagram illustrating an operation example of the bus system illustrated in FIG. 1.
  • FIG. 10 is an explanatory diagram illustrating another example of operation of the bus system illustrated in FIG. 1.
  • FIG. 10 is an explanatory diagram illustrating another example of operation of the bus system illustrated in FIG. 1.
  • FIG. 10 is an explanatory diagram illustrating an operation example of a bus system according to Comparative Example 1.
  • FIG. 12 is an explanatory diagram illustrating an operation example of a bus system according to Comparative Example 2.
  • FIG. 10 is an explanatory diagram illustrating another operation example of the bus system according to Comparative Example 2.
  • FIG. 12 is an explanatory diagram illustrating an operation example of a bus system according to Comparative Example 3.
  • FIG. 12 is an explanatory diagram illustrating another operation example of the bus system according to Comparative Example 3.
  • FIG. It is a block diagram showing the example of 1 structure of the response control part which concerns on a modification. It is explanatory drawing showing the operation example of the bus system which concerns on another modification.
  • FIG. 16 is an explanatory diagram illustrating another operation example of the bus system illustrated in FIG. 15.
  • FIG. 15 is an explanatory diagram illustrating another operation example of the bus system illustrated in FIG. 15.
  • 16 is a block diagram illustrating a configuration example of a response control unit according to the bus system illustrated in FIG. 15. It is a block diagram showing the example of 1 structure of the bus system which concerns on another modification. It is a block diagram showing the example of 1 structure of the interconnect part which concerns on another modification. It is a block diagram showing the example of 1 structure of the bus system which concerns on another modification.
  • FIG. 1 illustrates a configuration example of a bus system according to an embodiment.
  • the bus system 1 is a so-called SoC (System on Chip) system configured by one chip.
  • SoC System on Chip
  • the access control method and the semiconductor device according to the embodiment of the present disclosure are embodied by the present embodiment and will be described together.
  • the bus system 1 includes an information processing unit 9, a DMA (Direct Memory Access) controller 20, an interconnect unit 30, memory controllers 40 and 60, and memories 50 and 70.
  • a DMA (Direct Memory Access) controller 20 controls access to the bus system 1
  • memory controllers 40 and 60 controls access to the bus system 1
  • memories 50 and 70 are integrated on one chip.
  • the present invention is not limited to this, and all these circuits may be integrated on one chip.
  • the information processing unit 9 performs arithmetic processing.
  • the information processing unit 9 includes a cache 10 and two cores 11 and 12.
  • the cache 10 is a level 2 (L2) cache memory.
  • the cores 11 and 12 are so-called processor cores.
  • the information processing unit 9 is connected to the interconnect unit 30 via the bus B1.
  • IP Intelligent Property
  • ARM processor for example, Cortex-A9AMPCore
  • ARM level 2 cache controller for example, L2C-310
  • AXI Advanced eXtensive Interface
  • the identifier MI is an 8-bit parameter. Specifically, in this example, the identifier MI of the cache 10 is “0x10” in hexadecimal notation (“00010000” in binary notation), and the identifier MI of the core 11 is “0x11” (in binary notation “0x11”). The identifier MI of the core 12 is “0x12” (“00010010” in binary notation). The upper 4 bits (bits b4 to b7) of the identifier MI of the cache 10 and the cores 11 and 12 are the same.
  • the upper 4 bits of the identifier MI are made the same. ing.
  • the lower 4 bits (bits b0 to b3) of the identifier MI of the cache 10 and the cores 11 and 12 are made different from each other.
  • the write address WrADD includes an identifier MI, transfer mode information MODE and the like in addition to address information.
  • the transfer mode information MODE indicates whether a device that makes a write request (information processing unit 9 in this example) requests posted transfer or non-posted transfer. Specifically, the information processing unit 9 sets the transfer mode information MODE to “1” when performing a write request by posted transfer, and transfers the transfer mode information when performing a write request by non-posted transfer. Set MODE to “0”.
  • the write address WrADD may include information on the bit width and burst length of data to be written, security information, and the like.
  • the transfer mode information MODE corresponds to the AXI parameter AWCACHE [0].
  • the identifier MI can be assigned to an AXI sideband signal.
  • an existing sideband signal such as the parameter AWUSER may be used, or a new sideband signal may be defined.
  • the information processing unit 9 supplies the read address RdADD to the interconnect unit 30 and receives read data RdDATA from the interconnect unit 30.
  • the DMA controller 20 is a controller that controls DMA transfer to the memories 50 and 70.
  • An identifier MI is assigned to the DMA controller 20 in the same manner as each block of the information processing unit 9. Specifically, in this example, the identifier MI of the DMA controller 20 is “0x20” (“00100000” in binary notation).
  • the DMA controller 20 is connected to the interconnect unit 30 via the bus B2 in the same manner as the information processing unit 9. Then, when making a write request to the memory 50 or 70, the DMA controller 20 supplies the write address WrADD and the write data WrDATA to the interconnect unit 30 in the same manner as the information processing unit 9, and A response RE is received from the unit 30.
  • the DMA controller 20 when making a read request to the memory 50 or 70, supplies the read address RdADD to the interconnect unit 30 and receives the read data RdDATA from the interconnect unit 30 in the same manner as the information processing unit 9. It is supposed to receive.
  • the information processing unit 9 and the DMA controller 20 are connected to the interconnect unit 30, but the present invention is not limited to this, and other devices may be connected. In that case, it is desirable to assign an identifier MI different from the identifier MI of the information processing unit 9 (cache 10, two cores 11 and 12) and the DMA controller 20 to this device. For example, when another DMA controller 120 having substantially the same data transfer performance as the DMA controller 20 is connected, for example, the identifier MI of the DMA controller 120 is set to “0x21” (“00100001” in binary notation). Can do. That is, in this example, considering that the data transfer performance of the DMA controllers 20 and 120 is almost the same, the upper 4 bits of the identifier MI are made the same.
  • the interconnect unit 30 mediates access to the memories 50 and 70 from the information processing unit 9 and the DMA controller 20.
  • the interconnect unit 30 is connected to the information processing unit 9 via the bus B1, connected to the DMA controller 20 via the bus B2, connected to the memory controller 40 via the bus B11, and connected to the memory controller 60 via the bus B12. It is connected to the.
  • the interconnect unit 30 receives the write address WrADD and the write data WrDATA supplied from the device that has made the write request. The data is delivered to the memory controller 40, and the response signal RE supplied from the memory controller 40 is delivered to the device that has made the write request.
  • the interconnect unit 30 delivers the read address RdADD supplied from the device that has made the read request to the memory controller 40. Then, the read data RdDATA supplied from the memory controller 40 is delivered to the device that has made the read request.
  • the interconnect unit 30 writes the write address WrADD and the write supplied from the device that has made the write request.
  • the data WrDATA is delivered to the memory controller 60
  • the response signal RE supplied from the memory controller 60 is delivered to the device that has made the write request.
  • the interconnect unit 30 delivers the read address RdADD supplied from the device that has made the read request to the memory controller 60.
  • the read data RdDATA supplied from the memory controller 60 is delivered to the device that has made the read request.
  • the memory controller 40 controls the operation of the memory 50.
  • the memory controller 40 is connected to the interconnect unit 30 via the bus B11.
  • the memory controller 40 generates a control command COM based on the write address WrADD and the read address RdADD supplied from the interconnect unit 30 and supplies the control command COM to the memory 50.
  • the memory controller 40 generates an address ADD based on the write address WrADD and the read address RdADD supplied from the interconnect unit 30, and supplies the address ADD to the memory 50.
  • the memory controller 40 supplies the write data WrDATA supplied from the interconnect unit 30 to the memory 50 as data DATA, and supplies the data DATA supplied from the memory 50 to the interconnect unit 30 as read data RdDATA. To do.
  • the memory controller 40 When writing data to the memory 50, the memory controller 40 temporarily stores a write address WrADD and write data WrDATA in a built-in write buffer 44 (described later), and then writes the write buffer. Based on the information stored in the memory 44, data is written to the memory 50.
  • the memory controller 40 sets the transfer method based on the identifier MI. select. That is, when the information processing unit 9 (the cache 10 and the cores 11 and 12) makes a write request, the response signal RE is generated at the timing when the data writing to the memory 50 is completed, and the response The signal RE is supplied to the device that has made the write request via the interconnect unit 30. That is, in this case, non-posted transfer is performed.
  • a response signal RE is generated at a timing when data is written in a built-in write buffer 44 (described later), and the response signal RE is sent to the interconnect unit 30. To the device that made the write request. That is, in this case, posted transfer is performed.
  • the response signal RE is generated at the timing when the data writing to the memory 50 is completed. Thereby, generation
  • the response signal RE is generated at the timing when the data writing to the memory 50 is completed. Therefore, even when the information processing unit 9 issues a read request to the same address as the write request immediately after that, the data after being rewritten is read, so that it is possible to suppress the occurrence of problems related to coherency. It has become.
  • the memory controller 60 controls the operation of the memory 70 in the same manner as the memory controller 40.
  • the memory controller 60 is connected to the interconnect unit 30 via the bus B12. Further, when writing data to the memory 70, the memory controller 60 temporarily stores the write address WrADD and the write data WrDATA in the built-in write buffer 64 (described later) as in the memory controller 40. After that, the data is written to the memory 70 based on the information stored in the write buffer 64.
  • the memory controller 60 has a snoop mechanism. That is, when the memory controller 60 receives a read request and data to be read is stored in the write buffer 64, the memory controller 60 reads the data from the write buffer 64 and outputs it as read data RdDATA. Thus, by reading data from the write buffer 64 instead of reading data from the memory 70, it is possible to suppress the occurrence of problems related to coherency.
  • the memory controller 60 has a built-in write buffer 64 (described later).
  • the response signal RE is generated at the timing when data is written to the device, and the response signal RE is supplied to the device that has made the write request via the interconnect unit 30. That is, in this case, posted transfer is performed.
  • the memories 50 and 70 store data, and function as work memories for the information processing unit 9.
  • the memories 50 and 70 are configured using, for example, a DRAM (Dynamic Random Access Memory).
  • the memory 50 receives a control command COM and an address ADD from the memory controller 40, and exchanges data DATA with the memory controller 40.
  • the memory 70 receives a control command COM and an address ADD from the memory controller 60, and exchanges data DATA with the memory controller 60.
  • FIG. 2 shows a configuration example of the memory controller 40.
  • the memory controller 40 has a write interface 41, a read interface 48, and a controller 49.
  • the write interface 41 is an interface related to write access. Specifically, the write interface 41 temporarily stores the write address WrADD and the write data WrDATA supplied from the interconnect unit 30, and delivers the write address WrADD and the write data WrDATA to the controller 49. It has become. The write interface 41 also has a function of generating a response signal RE based on the write address WrADD.
  • the write interface 41 includes a write buffer 44, a response control unit 80, and a response signal generation unit 43.
  • the write buffer 44 is a buffer memory that temporarily stores a write address WrADD and write data WrDATA.
  • the write buffer 44 supplies the stored write address WrADD and write data WrDATA to the controller 49 based on an instruction from the controller 49.
  • the response control unit 80 generates the parameter PW based on the write address WrADD.
  • FIG. 3 is a configuration example of the response control unit 80.
  • the response control unit 80 includes an identifier acquisition unit 81, a transfer mode information acquisition unit 85, a register 82, an AND operation unit 83, a comparison unit 84, and an AND circuit 86.
  • the identifier acquisition unit 81 acquires the identifier MI from the write address WrADD.
  • the transfer mode information acquisition unit 85 acquires transfer mode information MODE from the write address WrADD.
  • the register 82 stores parameters MIMask and MIMatch.
  • the parameters MImask and MIMatch are 8-bit parameters, respectively.
  • the parameter MImask is set to “0x10” in hexadecimal notation (“00010000” in binary notation), and the parameter MImatch is set to “0x10”.
  • the logical product circuit 83 obtains the logical product of the value of each bit of the identifier MI and the value of the corresponding bit of the parameter MIMask (in this example, “0x10”), and generates an 8-bit parameter. . That is, the AND circuit 83 masks bits other than the bit b4 of the identifier MI in this example. Specifically, the AND circuit 83 generates and outputs a parameter in which the value of the bit b4 is the value of the bit b4 of the identifier MI and the values of the bits b0 to b3 and b5 to b7 are “0”. It has become.
  • the comparison unit 84 compares the output parameter of the AND operation unit 83 with the 8-bit parameter MIMatch (in this example, “0x10”), and outputs the comparison result as the parameter DPW. Specifically, the comparison unit 84 sets the parameter DPW to “1” when these parameters match, and sets the parameter DPW to “0” when they do not match.
  • FIG. 4 shows the relationship between the identifier MI and the parameter DPW.
  • the parameter DPW is “1” when the information processing apparatus 9 makes a write request
  • the parameter DPW is “0” when the DMA controller 20 makes a write request. That is, when the information processing device 9 makes a write request, since the bit b4 of the identifier MI of the information processing device 9 is “1”, the parameter DPW becomes “1” and the DMA controller 20 requests the write request. In this case, since the bit b4 of the identifier MI of the DMA controller 20 is “0”, the parameter DPW becomes “0”. Thus, the response control unit 80 generates the parameter DPW based on the value of the bit b4 of the identifier MI.
  • the logical product circuit 86 calculates a logical product of the inverted value of the parameter DPW and the value of the transfer mode information MODE, and outputs the result as the parameter PW.
  • the parameter PW indicates a posted transfer when the value is “1”, and indicates a non-posted transfer when the value is “0”.
  • the response control unit 80 sets the parameter PW to “0” because the parameter DPW becomes “1” as shown in FIG. Further, when the DMA controller 20 makes a write request, the response control unit 80 outputs the value of the transfer mode information MODE as the parameter PW because the parameter DPW becomes “0” as shown in FIG. It is like that.
  • the response signal generator 43 generates the response signal RE based on the parameter PW and the control signal supplied from the controller 49. Specifically, when the response signal generation unit 43 receives a parameter PW having a value “1” from the response control unit 80, the response signal generation unit 43 generates the response signal RE at that timing. In other words, the response signal generator 43 generates the response signal RE at the timing when data is written to the write buffer 44. That is, in this case, posted transfer is performed. In addition, when the response signal generation unit 43 receives the parameter PW having a value of “0”, the response signal generation unit 43 receives the control signal indicating that the data writing to the memory 50 is completed from the controller 49, A response signal RE is generated. That is, in this case, non-posted transfer is performed.
  • the read interface 48 is an interface related to read access.
  • the read interface 48 performs a predetermined process based on the read address RdADD supplied from the interconnect unit 30, delivers the read address RdADD to the controller 49, and performs a predetermined process based on the read data RdDATA supplied from the controller 49.
  • the read data RdDATA is delivered to the interconnect unit 30.
  • the controller 49 controls the operation of the memory 50 based on instructions from the write interface 41 and the read interface 48. Specifically, the controller 49 generates a control command COM such as a write command or a read command based on the write address WrADD and the read address RdADD, and supplies the control command COM to the memory 50. The controller 49 generates an address ADD based on the write address WrADD and the read address RdADD, and supplies the address ADD to the memory 50. The controller 49 supplies the write data WrDATA supplied from the write interface 41 to the memory 50 as data DATA, and supplies the data DATA supplied from the memory 50 to the read interface 48 as read data RdDATA. It is supposed to be.
  • a control command COM such as a write command or a read command based on the write address WrADD and the read address RdADD
  • the controller 49 generates an address ADD based on the write address WrADD and the read address RdADD, and supplies the address ADD to the memory 50.
  • the controller 49 supplies the write data W
  • FIG. 5 shows a configuration example of the memory controller 60.
  • the memory controller 60 has a read interface 68, a write interface 61, and a controller 69.
  • the read interface 68 is an interface related to read access. Unlike the read interface 48, the read interface 68 has a snoop mechanism. That is, when the read interface 68 receives a read request and data to be read is stored in a write buffer 64 (described later) of the write interface 61, the read interface 68 reads the data from the write buffer 64, Output as read data RdDATA. As a result, the memory controller 60 and the memory 70 can suppress the occurrence of problems related to coherency.
  • the write interface 61 is an interface related to write access.
  • the write interface 61 includes a write buffer 64, a response control unit 90, and a response signal generation unit 63.
  • the write buffer 64 is a buffer memory that temporarily stores the write address WrADD and the write data WrDATA, similarly to the write buffer 44.
  • the write buffer 64 supplies write data WrDATA stored in the write buffer 64 to the read interface 68 based on an instruction from the read interface 68.
  • the response control unit 90 Similar to the response control unit 80, the response control unit 90 generates the parameter PW based on the write address WrADD.
  • the configuration of the response control unit 90 is the same as that of the response control unit 80 (FIG. 3).
  • the parameter MIMask is set to “0x00”.
  • the response control unit 90 outputs the value of the transfer mode information MODE as the parameter PW.
  • the response signal generator 63 generates the response signal RE based on the parameter PW and the control signal supplied from the controller 69, similarly to the response signal generator 43. Similar to the controller 49, the controller 69 controls the operation of the memory 70 based on instructions from the write interface 61 and the read interface 68.
  • the cache 10, the cores 11 and 12, and the DMA controller 20 correspond to a specific example of “master device” in the present disclosure
  • the memory controller 40 corresponds to a specific example of “slave device” in the present disclosure.
  • the memory 50 corresponds to a specific example of “access target device” in the present disclosure.
  • the write request corresponds to a specific example of “access request” in the present disclosure.
  • the transfer mode information MODE corresponds to a specific example of “request information” in the present disclosure.
  • the information processing unit 9 performs arithmetic processing.
  • the DMA controller 20 controls DMA transfer.
  • the interconnect unit 30 arbitrates access to the memories 50 and 70 from the information processing unit 9 and the DMA controller 20.
  • the memory controller 40 controls the operation of the memory 50 and generates a response signal RE. At that time, the memory controller 40 determines the timing for generating the response signal RE based on the identifier MI and the transfer mode information MODE.
  • the memory controller 60 controls the operation of the memory 70 and generates a response signal RE. At that time, the memory controller 60 determines the timing for generating the response signal RE based on the transfer mode information MODE.
  • the memories 50 and 70 store data.
  • FIG. 6 shows an operation example 1 of the bus system 1.
  • a signal indicated by a thick solid line indicates a signal that becomes active before the timing of generating the response signal RE
  • a signal indicated by a thick broken line indicates a signal that becomes active after the timing of generating the response signal RE. Indicates.
  • the cache 10 of the information processing unit 9 makes a write request to the memory 50 by posted transfer.
  • the information processing section 9 generates a write address WrADD and write data WrDATA and supplies the generated write address WrADD and write data WrDATA.
  • the interconnect unit 30 delivers the write address WrADD and the write data WrDATA supplied from the information processing unit 9 to the memory controller 40.
  • the memory controller 40 receives the write address WrADD and the write data WrDATA from the interconnect unit 30.
  • the memory controller 40 temporarily stores the write address WrADD and the write data WrDATA in the write buffer 44, and then stores data in the memory 50 based on the information stored in the write buffer 44. Write.
  • the response control unit 80 of the memory controller 40 generates a parameter PW having a value “0” based on the write address WrADD. That is, since the identifier MI included in the write address WrADD is “0x10”, the parameter DPW becomes “1” and the parameter PW becomes “0”. Therefore, the response signal generation unit 43 generates the response signal RE at the timing when data writing to the memory 50 is completed. In the bus system 1, non-posted transfer is performed in this way.
  • the information processing unit 9 may make a read request to the address where the write request is made after making a write request by posted transfer. Specifically, for example, such a case may occur when a so-called eviction operation is performed.
  • the transfer mode information MODE AWCACHE [0]
  • the memory controller 40 determines that non-posted transfer should be performed, and generates a response signal RE at the timing when data writing to the memory 50 is completed.
  • the memory controller 40 determines that non-posted transfer should be performed. As a result, in the bus system 1, it is possible to suppress the occurrence of problems related to coherency.
  • FIG. 7 shows an operation example 2 of the bus system 1.
  • the DMA controller 20 makes a write request by posted transfer to the memory 50. Specifically, the DMA controller 20 generates a write address WrADD and write data WrDATA and supplies the generated write address WrADD and write data WrDATA.
  • the memory controller 40 receives the write address WrADD and the write data WrDATA via the interconnect unit 30. Then, the memory controller 40 temporarily stores the write address WrADD and the write data WrDATA in the write buffer 44.
  • the response control unit 80 of the memory controller 40 generates a parameter PW having a value “1” based on the write address WrADD. That is, since the identifier MI included in the write address WrADD is “0x20”, the parameter DPW becomes “0”, and therefore the parameter PW becomes the same value “1” as the value of the transfer mode information MODE. Therefore, the response signal generator 43 generates the response signal RE at the timing when data is written to the write buffer 44. Then, the memory controller 40 writes data to the memory 50 based on the information stored in the write buffer 44. In the bus system 1, posted transfer is performed in this way.
  • the DMA controller 20 often performs a series of write transfers in response to a plurality of write requests.
  • the DMA controller 20 makes a write request by non-posted transfer once.
  • the memory controller 40 determines that the posted transfer should be performed for the first three write requests as requested and the non-posted transfer should be performed for the subsequent one write request. To do.
  • the timing for returning a response to the first three write requests can be advanced, so that the transfer performance is improved.
  • the response signal RE is generated at the timing when the data writing to the memory 50 is completed, so that it is possible to suppress the occurrence of a problem related to coherency.
  • the memory controller 40 performs posted transfer or non-posted transfer as requested. That is, since the DMA controller 20 can make a fine write request, the memory controller 40 follows the write request. As a result, in the bus system 1, it is possible to suppress the occurrence of problems related to coherency and to improve transfer performance.
  • FIG. 8 shows an operation example 3 of the bus system 1.
  • the cache 10 of the information processing unit 9 makes a write request to the memory 70 by posted transfer.
  • the information processing section 9 generates a write address WrADD and write data WrDATA and supplies the generated write address WrADD and write data WrDATA.
  • the memory controller 60 receives the write address WrADD and the write data WrDATA via the interconnect unit 30. Then, the memory controller 60 temporarily stores the write address WrADD and the write data WrDATA in the write buffer 64.
  • the response control unit 90 of the memory controller 60 generates a parameter PW having a value “1” based on the write address WrADD. That is, in the memory controller 60, since the parameter DPW is “0” (FIG. 4), the parameter PW has the same value “1” as the value of the transfer mode information MODE. Therefore, the response signal generator 43 generates the response signal RE at the timing when data is written to the write buffer 64. Then, the memory controller 60 writes data to the memory 70 based on the information stored in the write buffer 64. In the bus system 1, posted transfer is performed in this way. After that, when the memory controller 60 receives the read request and the data to be read is stored in the write buffer 64, the memory controller 60 reads the data from the write buffer 64 and reads it as read data RdDATA. Output.
  • the memory controller 60 determines that the posted transfer should be performed according to the request.
  • the response return timing can be advanced, so that the transfer performance is improved.
  • the processing speed in the whole system can be increased.
  • the snoop mechanism of the memory controller 60 can be used effectively, so that it is possible to suppress the occurrence of problems related to coherency and improve the transfer performance.
  • FIG. 9 illustrates an example of the bus system 1R according to the first comparative example.
  • the bus system 1R includes an information processing unit 9R, a DMA controller 20R, an interconnect unit 30, a memory controller 40R, and a memory 50.
  • the information processing unit 9R and the DMA controller 20R are not assigned the identifier MI.
  • the memory controller 40R has a snoop mechanism. Further, the memory controller 40R determines the timing for generating the response signal RE based on the transfer mode information MODE.
  • MODE transfer mode information MODE
  • the memory controller 40R Since the value of the transfer mode information MODE is “1”, the memory controller 40R generates the response signal RE at the timing when data is written to the built-in write buffer. Then, the memory controller 40R writes data to the memory 50 based on the information stored in the write buffer. In the bus system 1R, posted transfer is performed in this way. Thereafter, when the memory controller 40R receives a read request and data to be read is stored in the write buffer, the memory controller 40R reads the data from the write buffer and outputs it as read data RdDATA. .
  • the memory controller 40R since the memory controller 40R is provided with the snoop mechanism, it is possible to suppress occurrence of a problem related to coherency even when the posted transfer is performed.
  • the snoop mechanism has a large circuit scale and may increase the cost.
  • the memory controller 40 determines that non-posted transfer should be performed. Therefore, since it is possible to suppress the occurrence of a problem related to coherency without providing a snoop mechanism, the circuit scale can be reduced, and an increase in cost can be suppressed.
  • FIG. 10 and 11 show an example of the bus system 1S according to the comparative example 2.
  • the bus system 1S includes an information processing unit 9R, a DMA controller 20R, an interconnect unit 30, a memory controller 40S, and a memory 50.
  • the memory controller 40S does not have a snoop mechanism. Further, the memory controller 40S determines that non-posted transfer should always be performed regardless of the received transfer mode information MODE.
  • the information processing section 9 ⁇ / b> R makes a write request by posted transfer to the memory 50.
  • the information processing unit 9R generates the write address WrADD and the write data WrDATA and supplies them to the interconnect unit 30.
  • the memory controller 40S receives the write address WrADD and the write data WrDATA via the interconnect unit 30.
  • the memory controller 40S temporarily stores the write address WrADD and the write data WrDATA in the built-in write buffer, and then stores the write address WrADD and the write data WrDATA in the memory 50 based on the information stored in the write buffer.
  • Write data The memory controller 40S generates a response signal RE at the timing when data writing to the memory 50 is completed. In the bus system 1S, non-posted transfer is performed in this way.
  • the memory controller 40S determines that the non-posted transfer should always be performed regardless of the received transfer mode information MODE, so that it is possible to suppress the occurrence of a problem related to coherency.
  • the DMA controller 20R performs non-posted transfer even when it makes a write request by posted transfer, the processing speed of the entire system may be reduced. That is, the DMA controller 20R is unlikely to perform read access to the same address immediately after performing write access. Therefore, if the response return timing is delayed in this way for the access from the DMA controller 20R, the transfer performance may be lowered, and the processing speed of the entire system may be reduced.
  • the memory controller 46 determines whether to perform posted transfer or non-posted transfer based on the identifier MI. Thereby, for example, when the information processing unit 9 makes a write request by posted transfer, non-posted transfer can be performed, and when the DMA controller 20 makes a write request by posted transfer, posted transfer can be performed. As described above, in the bus system 1, different transfer can be performed depending on the device that performs the write request. Therefore, it is possible to improve the transfer performance while suppressing occurrence of a problem related to coherency.
  • FIG. 3 12 and 13 represent an example of the bus system 1T according to the comparative example 3.
  • FIG. The bus system 1T includes an information processing unit 9T, a DMA controller 20R, an interconnect unit 30, memory controllers 40T and 60T, and memories 50 and 70.
  • the information processing section 9T always makes a write request to the memories 50 and 70 by non-posted transfer.
  • the memory controller 40T does not have a snoop mechanism, and the memory controller 60T has a snoop mechanism.
  • the memory controllers 40T and 60T determine the timing for generating the response signal RE based on the transfer mode information MODE.
  • the information processing unit 9T makes a write request to the memory 70 by non-posted transfer. Specifically, first, the information processing unit 9T generates the write address WrADD and the write data WrDATA and supplies them to the interconnect unit 30.
  • the memory controller 60T temporarily stores the write address WrADD and the write data WrDATA in the built-in write buffer, and then stores the write address WrADD and the write data WrDATA on the memory 70 based on the information stored in the write buffer. Write data.
  • the memory controller 60T generates a response signal RE at a timing when data writing to the memory 70 is completed.
  • the bus system 1T non-posted transfer is performed in this way.
  • the memory controller 60T reads the data from the write buffer and outputs it as read data RdDATA. .
  • the memory controllers 40 and 60 independently determine whether to perform posted transfer or non-posted transfer.
  • the memory controller 40 that does not have the snoop mechanism can suppress occurrence of a problem related to coherency by selecting non-posted transfer.
  • the memory controller 60 having the snoop mechanism can improve the transfer performance by selecting the posted transfer. Thus, even when a device having a snoop mechanism and a device not having a snoop mechanism coexist, it is possible to suppress the occurrence of a problem related to coherency and to improve transfer performance.
  • a plurality of memory controllers independently determine whether to perform posted transfer or non-posted transfer. For example, a memory controller that does not have a snoop mechanism uses non-posted transfer. By selecting, it is possible to suppress the occurrence of problems related to coherency, and a memory controller having a snoop mechanism can improve transfer performance by selecting posted transfer.
  • the response control unit 80 uses one set of parameters MIMask and MIMatch.
  • the present invention is not limited to this, and a plurality of sets of parameters MIMask and MIMatch may be used instead.
  • FIG. 14 shows an example in which two sets of parameters MIMask and MIMatch are used.
  • the response control unit 80A includes a register 82A, logical product operation units 831 and 832, comparison units 841 and 842, and an OR circuit 87A.
  • the register 82A stores parameters MIMask1 and MIMatch1 and parameters MIMask2 and MIMatch2.
  • the AND operation unit 831 obtains the logical product of the value of each bit of the identifier MI and the value of the corresponding bit of the parameter MIMask1, and generates an 8-bit parameter.
  • the comparison unit 841 compares the output parameter of the AND operation unit 831 and the 8-bit parameter MIMatch1 and outputs the comparison result.
  • the logical product operation unit 832 obtains the logical product of the value of each bit of the identifier MI and the value of the corresponding bit of the parameter MIMask2, and generates an 8-bit parameter.
  • the comparison unit 842 compares the output parameter of the logical product operation unit 832 with the 8-bit parameter MIMatch2, and outputs the comparison result.
  • the logical sum circuit 87A calculates a logical sum of the comparison result in the comparison unit 841 and the comparison result in the comparison unit 842, and outputs the logical sum as a parameter DPW.
  • the memory controller 40 specifies a device that performs a write request based on the identifier MI, but is not limited thereto. Below, this modification is demonstrated in detail.
  • the bus system 1B includes an information processing unit 9B, a DMA controller 20B, an interconnect unit 30, memory controllers 40B and 60B, and memories 50 and 70.
  • FIG. 17 illustrates a configuration example of the response control unit 80B according to the memory controllers 40B and 60B.
  • the information processing unit 9B and the DMA controller 20B give a transfer identifier ID for each transfer (access).
  • the transfer identifier ID assigned by the information processing unit 9B is 0 or more and 127 or less.
  • the transfer identifier ID assigned by the DMA controller 20B is 128 or more and 255 or less.
  • the information processing unit 9B and the DMA controller 20B generate a write address WrADD including this transfer identifier ID.
  • the memory controllers 40B and 60B are configured to be able to identify a device that has made a write request or a read request by using a transfer identifier ID included in the write address WrADD.
  • the memory controllers 40 and 60 can identify the device that has made the write request or the read request by using the identifier MI, but the memory controllers 40B and 60B have the transfer identifier ID. Is used to identify the device that made the write request or read request.
  • the response control unit 80B includes a transfer identifier acquisition unit 81B and a register 82B.
  • the transfer identifier acquisition unit 81B acquires the transfer identifier ID from the write address WrADD.
  • the register 82B stores parameters IDMask and IDMatch.
  • the parameter IDmask is set to “0x80” in hexadecimal notation (“10000000” in binary notation), and the parameter IDMatch is set to “0x00”.
  • the information processing section 9 ⁇ / b> B makes a write request by posted transfer to the memory 50.
  • the information processing unit 9B generates the write address WrADD and the write data WrDATA and supplies them to the interconnect unit 30.
  • the memory controller 40B receives the write address WrADD and the write data WrDATA via the interconnect unit 30.
  • the memory controller 40B temporarily stores the write address WrADD and the write data WrDATA in the built-in write buffer 44, and then stores them in the memory 50 based on the information stored in the write buffer 44. Data is written to it.
  • the response control unit 80B of the memory controller 40B generates a parameter PW having a value “0” based on the write address WrADD. That is, since the transfer identifier ID included in the write address WrADD is 0 or more and 127 or less, the parameter DPW becomes “1” and the parameter PW becomes “0”. Therefore, the memory controller 40B generates the response signal RE at the timing when data writing to the memory 50 is completed. In the bus system 1B, non-posted transfer is performed in this way.
  • the DMA controller 20B makes a write request by posted transfer to the memory 50. Specifically, first, the DMA controller 20B generates the write address WrADD and the write data WrDATA and supplies them to the interconnect unit 30.
  • the memory controller 40B receives the write address WrADD and the write data WrDATA via the interconnect unit 30.
  • Memory controller 40B temporarily stores the write address WrADD and write data WrDATA in built-in write buffer 44.
  • the response control unit 80B of the memory controller 40B generates a parameter PW having a value “1” based on the write address WrADD. That is, since the transfer identifier ID included in the write address WrADD is 128 or more and 255 or less, the parameter DPW becomes “0”, and therefore the parameter PW becomes the same value “1” as the value of the transfer mode information MODE. . Therefore, the memory controller 40B generates the response signal RE at the timing when data is written to the write buffer 44. In the bus system 1B, posted transfer is performed in this way. Then, the memory controller 40B writes data to the memory 50 based on the information stored in the write buffer 44.
  • a memory area (address area) accessed by the information processing unit and the DMA controller is divided, and the memory controller specifies a device that performs a write request based on the address information. It may be.
  • the information processing unit 9 and the DMA controller 20 generate the write address WrADD including the identifier MI.
  • the bus shown in FIG. the interconnect unit may generate the write address WrADD including the identifier MI.
  • the bus system 1C includes an information processing unit 9C, a DMA controller 20C, an interconnect unit 30C, memory controllers 40 and 60, and memories 50 and 70.
  • the information processing unit 9C and the DMA controller 20C generate a write address WrADD that does not include the identifier MI.
  • the interconnect unit 30C includes an identifier generation unit 31C and an identifier generation unit 32C.
  • the identifier generation unit 31C adds the identifier MI (for example, “0x10”) of the information processing unit 9C to the write address WrADD supplied from the information processing unit 9C.
  • the identifier generation unit 32C adds the identifier MI (for example, “0x20”) of the DMA controller 20C to the write address WrADD supplied from the DMA controller 20C. Even if comprised in this way, the effect similar to the case of the said embodiment can be acquired.
  • the memory controllers 40 and 60 control the generation timing of the response signal RE.
  • the present invention is not limited to this.
  • the interconnect unit sets the generation timing of the response signal RE. You may control.
  • the interconnect unit 30D according to this modification will be described in detail below.
  • FIG. 19 shows a configuration example of the interconnect unit 30D.
  • the interconnect unit 30D includes response control units 33D and 35D, response signal generation units 34D and 36D, and a processing unit 37D. Similar to the response control unit 80 (FIG. 3), the response control unit 33D generates the parameter PW based on the write address WrADD supplied from the information processing unit 9C via the bus B1. Similarly to the response signal generation unit 43, the response signal generation unit 34D generates a response signal RE based on the parameter PW generated by the response control unit 33D and the control signal supplied from the processing unit 37D. The information is supplied to the information processing unit 9C via the bus B1. Similar to the response control unit 80 (FIG.
  • the response control unit 35D generates a parameter PW based on the write address WrADD supplied from the DMA controller 20 via the bus B2.
  • the response signal generation unit 36D generates a response signal RE based on the parameter PW generated by the response control unit 35D and the control signal supplied from the processing unit 37D.
  • the data is supplied to the DMA controller 20 via the bus B2.
  • the processing unit 37D arbitrates access to the memories 50 and 70 from the information processing unit 9 and the DMA controller 20. Even if comprised in this way, the effect similar to the case of the said embodiment can be acquired.
  • one interconnect unit is provided.
  • the present invention is not limited to this. Instead, a plurality of interconnect units (in this example, as shown in FIG. 20) are used. Two interconnect parts 131 and 132) may be provided.
  • the information processing unit 9 and the DMA controller 20 access the memories 50 and 70 via the two interconnect units 131 and 132.
  • the present technology is applied to memory access, but the present technology is not limited to this, and can be applied to various uses for responding to requests.
  • One master device of a plurality of master devices generates an access request to the access target device, Based on the access request, the slave device identifies the one master device that generated the access request, An access control method for causing the slave device to respond to the one master device at a response timing corresponding to the identified one master device.
  • the response timing is a first timing at which the slave device receives the access request, or a second timing at which the access target device ends processing based on the access request.
  • the access request includes request information indicating a request of the one master device for the response timing,
  • the access control method according to (2) wherein when the slave device is caused to respond, the response timing is determined based on the identified one master device and the request information.
  • the response timing is determined, if the request information indicates the first timing, the response timing is determined based on the identified one master device. Access control method.
  • the slave device has a buffer memory; The access control method according to any one of (2) to (5), wherein the first timing is a timing at which the access request is stored in the buffer memory.
  • the access target device is a memory, The access control method according to any one of (1) to (10), wherein the access request is a write request.
  • a bus system comprising: a slave device that responds to the one master device at a response timing corresponding to the one master device that generated the access request among the plurality of master devices based on the access request.
  • a semiconductor device comprising: a slave device that responds to the one master device at a response timing corresponding to the one master device that generated the access request among the plurality of master devices based on the access request.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 本開示のアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。

Description

アクセス制御方法、バスシステム、および半導体装置
 本開示は、アクセス制御方法、そのようなアクセス制御方法を用いてアクセス制御を行うバスシステム、およびそのようなバスシステムを備えた半導体装置に関する。
 プロセッサは、しばしば、例えばバスおよびメモリコントローラを介してメモリと接続される。そして、プロセッサは、演算処理を行う際、メモリに対してデータを書き込み、あるいはメモリからデータを読み出す。プロセッサがメモリに対してデータを書き込む場合における制御方法としては、例えば、ポステッド転送(バッファラブルともいう)と、ノンポステッド転送がある(例えば、特許文献1)。
 ポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了する前に、プロセッサに対してレスポンスを行う。このポステッド転送では、レスポンスを返すタイミングが早くなるため、転送性能が向上する。これにより、システム全体における処理速度の向上が期待できる。しかしながら、プロセッサが、あるアドレスに対してこのような書込リクエストを行った後に読出リクエストを行った場合、最新のデータがメモリにまだ書き込まれていないため、書き換えられる前の古いデータが読み出されるおそれがある。このように、ポステッド転送では、いわゆるコヒーレンシ(データの一貫性)に関する問題が生じるおそれがある。
 ノンポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了した後に、プロセッサに対してレスポンスを行う。この場合には、ポステッド転送に比べてレスポンスを返すタイミングが遅いため、転送性能が低下し、システム全体における処理速度が低下するおそれがあるが、コヒーレンシに関する問題の発生を抑えることができる。
米国特許第7194566号明細書
 このように、メモリアクセスでは、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることが望まれており、さらなる転送性能の向上が期待されている。
 したがって、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができるアクセス制御方法、バスシステム、および半導体装置を提供することが望ましい。
 本開示の一実施の形態におけるアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。
 本開示の一実施の形態におけるバスシステムは、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。
 本開示の一実施の形態における半導体装置は、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。
 本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置では、複数のマスタデバイスのうちの一のマスタデバイスにより、アクセスリクエストが生成され、そのアクセスリクエストに基づいて、アクセス対象デバイスへの処理が行われる。その際、スレーブデバイスから一のマスタデバイスへの応答は、一のマスタデバイスに応じた応答タイミングで行われる。
 本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置によれば、一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答を行うようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれの効果があってもよい。
本開示の一実施の形態に係るバスシステムの一構成例を表すブロック図である。 図1に示したメモリコントローラの一構成例を表すブロック図である。 図2に示したレスポンス制御部の一構成例を表すブロック図である。 図3に示したレスポンス制御部の一動作例を表す表である。 図1に示した他のメモリコントローラの一構成例を表すブロック図である。 図1に示したバスシステムの一動作例を表す説明図である。 図1に示したバスシステムの他の動作例を表す説明図である。 図1に示したバスシステムの他の動作例を表す説明図である。 比較例1に係るバスシステムの一動作例を表す説明図である。 比較例2に係るバスシステムの一動作例を表す説明図である。 比較例2に係るバスシステムの他の動作例を表す説明図である。 比較例3に係るバスシステムの一動作例を表す説明図である。 比較例3に係るバスシステムの他の動作例を表す説明図である。 変形例に係るレスポンス制御部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一動作例を表す説明図である。 図15に示したバスシステムの他の動作例を表す説明図である。 図15に示したバスシステムに係るレスポンス制御部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一構成例を表すブロック図である。 他の変形例に係るインターコネクト部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一構成例を表すブロック図である。
 以下、本開示の一実施の形態について、図面を参照して詳細に説明する。
[構成例]
(全体構成例)
 図1は、一実施の形態に係るバスシステムの一構成例を表すものである。このバスシステム1は、この例では、1チップで構成された、いわゆるSoC(System on Chip)のシステムである。なお、本開示の実施の形態に係るアクセス制御方法および半導体装置は、本実施の形態により具現化されるので、併せて説明する。
 バスシステム1は、情報処理部9と、DMA(Direct Memory Access)コントローラ20と、インターコネクト部30と、メモリコントローラ40,60と、メモリ50,70とを備えている。この例では、メモリ50,70を除く回路を1チップに集積している。なお、これに限定されるものではなく、これら全ての回路を1チップに集積してもよい。
 情報処理部9は、演算処理を行うものである。情報処理部9は、この例では、キャッシュ10と、2つのコア11,12とを有している。キャッシュ10は、レベル2(L2)キャッシュメモリである。コア11,12は、いわゆるプロセッサコアである。情報処理部9は、バスB1を介してインタ-コネクト部30に接続されている。情報処理部9としては、例えば、ARM社製プロセッサ(例えばCortex-A9 MPCore)、ARM社製レベル2キャッシュコントローラ(例えばL2C-310)などのIP(Intellectual Property)の組み合わせを用いることができる。インタ-コネクト部30との間のバスインタフェースとしては、例えばAXI(Advanced eXtensive Interface)を使用可能である。
 キャッシュ10およびコア11,12には、それぞれ、互いに異なる識別子MIが割り当てられている。この例では、識別子MIは8ビットのパラメータである。具体的には、この例では、キャッシュ10の識別子MIは、16進数表記で“0x10”(2進数表記では“00010000”)であり、コア11の識別子MIは“0x11”(2進数表記では“00010001”)であり、コア12の識別子MIは“0x12”(2進数表記では“00010010”)である。キャッシュ10およびコア11,12の識別子MIの上位4ビット(ビットb4~b7)は、互いに同じである。すなわち、この例では、情報処理部9の各ブロック(キャッシュ10およびコア11,12)における、バスインタフェースを介したデータ転送性能が同じであることを考慮し、識別子MIの上位4ビットを同じにしている。そして、キャッシュ10およびコア11,12の識別子MIの下位4ビット(ビットb0~b3)は、互いに異なるようにしている。
 情報処理部9は、メモリ50やメモリ70に対して書込リクエストを行う場合には、書込アドレスWrADDおよび書込データWrDATAをインターコネクト部30に供給し、インターコネクト部30からレスポンス信号REを受け取るようになっている。書込アドレスWrADDは、アドレス情報に加え、識別子MI、転送モード情報MODEなどを含むものである。転送モード情報MODEは、書込リクエストを行うデバイス(この例では情報処理部9)が、ポステッド転送とノンポステッド転送のどちらを要求するかを示すものである。具体的には、情報処理部9は、ポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“1”に設定し、ノンポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“0”に設定する。また、書込アドレスWrADDは、この他、書き込むデータのビット幅やバースト長に関する情報、セキュリティ情報などを含むようにしてもよい。
 なお、バスインタフェースとしてAXIを用いる場合には、転送モード情報MODEは、AXIのパラメータAWCACHE[0]に対応するものである。また、識別子MIを、AXIのサイドバンド信号に割り当てることが可能である。このとき、パラメータAWUSERなどの既存のサイドバンド信号を用いてもよいし、サイドバンド信号を新たに定義してもよい。
 また、情報処理部9は、メモリ50やメモリ70に対して読出リクエストを行う場合には、読出アドレスRdADDをインターコネクト部30に供給し、インターコネクト部30から読出データRdDATAを受け取るようになっている。
 DMAコントローラ20は、メモリ50,70に対するDMA転送を制御するコントローラである。DMAコントローラ20には、情報処理部9の各ブロックと同様に、識別子MIが割り当てられている。具体的には、この例では、DMAコントローラ20の識別子MIは“0x20”(2進数表記では“00100000”)である。DMAコントローラ20は、情報処理部9と同様に、バスB2を介してインタ-コネクト部30に接続されている。そして、DMAコントローラ20は、メモリ50やメモリ70に対して書込リクエストを行う場合には、情報処理部9と同様に、書込アドレスWrADDおよび書込データWrDATAをインターコネクト部30に供給し、インターコネクト部30からレスポンスREを受け取る。また、DMAコントローラ20は、メモリ50やメモリ70に対して読出リクエストを行う際には、情報処理部9と同様に、読出アドレスRdADDをインターコネクト部30に供給し、インターコネクト部30から読出データRdDATAを受け取るようになっている。
 この図では、情報処理部9およびDMAコントローラ20をインターコネクト部30に接続したが、これに限定されるものではなく、他のデバイスを接続してもよい。その場合には、このデバイスに、情報処理部9(キャッシュ10、2つのコア11,12)およびDMAコントローラ20の識別子MIとは異なる識別子MIを割り当てることが望ましい。例えば、DMAコントローラ20とほぼ同じデータ転送性能を有する他のDMAコントローラ120を接続する場合には、例えば、このDMAコントローラ120の識別子MIを“0x21”(2進数表記では“00100001”)にすることができる。すなわち、この例では、DMAコントローラ20,120のデータ転送性能はほぼ同じであることを考慮し、識別子MIの上位4ビットを同じにしている。
 インターコネクト部30は、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停するものである。インターコネクト部30は、バスB1を介して情報処理部9に接続され、バスB2を介してDMAコントローラ20に接続され、バスB11を介してメモリコントローラ40に接続され、バスB12を介してメモリコントローラ60に接続されている。
 情報処理部9またはDMAコントローラ20がメモリ50に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ40に引き渡し、メモリコントローラ40から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ50に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDを、メモリコントローラ40に引き渡し、メモリコントローラ40から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡す。
 同様に、情報処理部9またはDMAコントローラ20がメモリ70に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ60に引き渡し、メモリコントローラ60から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ70に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDをメモリコントローラ60に引き渡し、メモリコントローラ60から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡すようになっている。
 メモリコントローラ40は、メモリ50の動作を制御するものである。メモリコントローラ40は、バスB11を介してインターコネクト部30に接続されている。メモリコントローラ40は、インターコネクト部30から供給された書込アドレスWrADDおよび読出アドレスRdADDに基づいて制御コマンドCOMを生成して、その制御コマンドCOMをメモリ50に供給する。また、メモリコントローラ40は、インターコネクト部30から供給された書込アドレスWrADDおよび読出アドレスRdADDに基づいてアドレスADDを生成し、そのアドレスADDをメモリ50に供給する。また、メモリコントローラ40は、インターコネクト部30から供給された書込データWrDATAを、データDATAとしてメモリ50に供給し、また、メモリ50から供給されたデータDATAを、読出データRdDATAとしてインターコネクト部30に供給する。メモリコントローラ40は、メモリ50に対してデータを書き込む場合には、書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44(後述)に一時的に記憶させ、その後に、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行うようになっている。
 また、メモリコントローラ40は、レスポンス信号REを生成する機能をも有している。その際、メモリコントローラ40は、識別子MIおよび転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。具体的には、メモリコントローラ40は、後述するように、情報処理部9またはDMAコントローラ20が、メモリ50に対して、ノンポステッド転送(MODE=0)による書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、メモリコントローラ40は、情報処理部9またはDMAコントローラ20が、メモリ50に対して、ポステッド転送(MODE=1)による書込リクエストを行った場合には、識別子MIに基づいて、転送方式を選択する。すなわち、情報処理部9(キャッシュ10、およびコア11,12)が書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、DMAコントローラ20が書込リクエストを行った場合には、内蔵する書込バッファ44(後述)にデータが書き込まれたタイミングでレスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。
 このように、メモリコントローラ40では、情報処理部9が書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。これにより、コヒーレンシに関する問題の発生を抑えることができる。すなわち、仮に、情報処理部9は、メモリ50のあるアドレスに対して、ポステッド転送による書込リクエストを行った直後に読出リクエストを行った場合には、書き換えられる前のデータが読み出されてしまうおそれがある。一方、メモリコントローラ40では、情報処理部9が書込リクエストを行う場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するようにした。よって、その直後に情報処理部9がその書込リクエストと同じアドレスに対して読出リクエストを行う場合でも、書き換えられた後のデータが読み出されるため、コヒーレンシに関する問題の発生を抑えることができるようになっている。
 メモリコントローラ60は、メモリコントローラ40と同様に、メモリ70の動作を制御するものである。メモリコントローラ60は、バスB12を介してインターコネクト部30に接続されている。また、メモリコントローラ60は、メモリ70に対してデータを書き込む場合には、メモリコントローラ40と同様に、書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ64(後述)に一時的に記憶させ、その後に、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。このメモリコントローラ60は、メモリコントローラ40とは異なり、スヌープ機構を有している。すなわち、メモリコントローラ60は、読出リクエストを受けとった場合において、書込バッファ64に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。このように、メモリ70からデータを読み出すのではなく、書込バッファ64からデータを読み出すことにより、コヒーレンシに関する問題の発生を抑えることができるようになっている。
 また、メモリコントローラ60は、メモリコントローラ40と同様に、レスポンス信号REを生成する機能をも有している。その際、メモリコントローラ60は、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。具体的には、メモリコントローラ60は、後述するように、情報処理部9またはDMAコントローラ20が、メモリ70に対して、ノンポステッド転送(MODE=0)による書込リクエストを行った場合には、メモリ70に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、メモリコントローラ60は、情報処理部9またはDMAコントローラ20が、メモリ70に対して、ポステッド転送(MODE=1)による書込リクエストを行った場合には、内蔵する書込バッファ64(後述)にデータが書き込まれたタイミングでレスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。
 メモリ50,70は、データを記憶するものであり、情報処理部9の作業用メモリとして機能するものである。メモリ50,70は、例えば、DRAM(Dynamic Random Access Memory)を用いて構成されるものである。メモリ50は、メモリコントローラ40から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ40との間でデータDATAをやりとりするものである。同様に、メモリ70は、メモリコントローラ60から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ60との間でデータDATAをやりとりするものである。
(メモリコントローラ40)
 図2は、メモリコントローラ40の一構成例を表すものである。メモリコントローラ40は、書込インタフェース41と、読出インタフェース48と、コントローラ49とを有している。
 書込インタフェース41は、書込アクセスに関するインタフェースである。具体的には、書込インタフェース41は、インターコネクト部30から供給された書込アドレスWrADDおよび書込データWrDATAを一時的に記憶し、この書込アドレスWrADDおよび書込データWrDATAをコントローラ49に引き渡すようになっている。また、書込インタフェース41は、書込アドレスWrADDに基づいてレスポンス信号REを生成する機能も有している。書込インタフェース41は、書込バッファ44と、レスポンス制御部80と、レスポンス信号生成部43とを有している。
 書込バッファ44は、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。そして、書込バッファ44は、コントローラ49からの指示に基づいて、記憶された書込アドレスWrADDおよび書込データWrDATAを、コントローラ49に供給するようになっている。
 レスポンス制御部80は、書込アドレスWrADDに基づいてパラメータPWを生成するものである。
 図3は、レスポンス制御部80の一構成例である。レスポンス制御部80は、識別子取得部81と、転送モード情報取得部85と、レジスタ82と、論理積演算部83と、比較部84と、論理積回路86とを有している。
 識別子取得部81は、書込アドレスWrADDから識別子MIを取得するものである。転送モード情報取得部85は、書込アドレスWrADDから転送モード情報MODEを取得するものである。
 レジスタ82は、パラメータMIMask,MIMatchを記憶するものである。パラメータMImask,MIMatchは、それぞれ8ビットのパラメータである。メモリコントローラ40では、パラメータMImaskは、16進数表記で“0x10”(2進数表記では“00010000”)に設定され、パラメータMIMatchは“0x10”に設定されている。
 論理積回路83は、識別子MIの各ビットの値と、パラメータMIMask(この例では“0x10”)の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。すなわち、論理積回路83は、この例では、識別子MIのビットb4以外のビットをマスクする。具体的には、論理積回路83は、ビットb4の値が識別子MIのビットb4の値であり、ビットb0~b3,b5~b7の値が“0”であるパラメータを生成して出力するようになっている。
 比較部84は、論理積演算部83の出力パラメータと、8ビットのパラメータMIMatch(この例では“0x10”)とを比較して、その比較結果をパラメータDPWとして出力するものである。具体的には、比較部84は、これらのパラメータが一致した場合にはパラメータDPWを“1”とし、一致しない場合にはパラメータDPWを“0”にするようになっている。
 図4は、識別子MIとパラメータDPWとの関係を表すものである。メモリコントローラ40では、情報処理装置9が書込リクエストを行う場合には、パラメータDPWは“1”になり、DMAコントローラ20が書込リクエストを行う場合には、パラメータDPWは“0”になる。すなわち、情報処理装置9が書込リクエストを行う場合には、情報処理装置9の識別子MIのビットb4が“1”であるため、パラメータDPWは“1”になり、DMAコントローラ20が書込リクエストを行う場合には、DMAコントローラ20の識別子MIのビットb4が“0”であるため、パラメータDPWは“0”になる。このように、レスポンス制御部80では、識別子MIのビットb4の値に基づいて、パラメータDPWを生成するようになっている。
 論理積回路86は、パラメータDPWの反転値と、転送モード情報MODEの値との論理積を求め、その結果をパラメータPWとして出力するものである。パラメータPWは、値が“1”である場合にはポステッド転送を示し、値が“0”である場合にはノンポステッド転送を示すものである。
 この構成により、レスポンス制御部80は、情報処理装置9が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“1”になるため、パラメータPWを“0”にする。また、レスポンス制御部80は、DMAコントローラ20が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“0”になるため、転送モード情報MODEの値をパラメータPWとして出力するようになっている。
 レスポンス信号生成部43は、パラメータPWおよびコントローラ49から供給される制御信号に基づいて、レスポンス信号REを生成するものである。具体的には、レスポンス信号生成部43は、レスポンス制御部80から、値が“1”であるパラメータPWを受け取った場合には、そのタイミングでレスポンス信号REを生成する。言い換えれば、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。すなわち、この場合には、ポステッド転送が行われる。また、レスポンス信号生成部43は、値が“0”であるパラメータPWを受け取った場合には、メモリ50に対してデータの書き込みが完了したことを示す制御信号をコントローラ49から受け取ったタイミングで、レスポンス信号REを生成する。すなわち、この場合には、ノンポステッド転送が行われるようになっている。
 読出インタフェース48は、読出アクセスに関するインタフェースである。読出インタフェース48は、インターコネクト部30から供給された読出アドレスRdADDに基づいて所定の処理を行い、この読出アドレスRdADDをコントローラ49に引き渡すとともに、コントローラ49から供給された読出データRdDATAに基づいて所定の処理を行い、この読出データRdDATAをインターコネクト部30に引き渡すようになっている。
 コントローラ49は、書込インタフェース41および読出インタフェース48からの指示に基づいて、メモリ50の動作を制御するものである。具体的には、コントローラ49は、書込アドレスWrADDおよび読出アドレスRdADDに基づいて、書込コマンドや読出コマンドなどの制御コマンドCOMを生成して、その制御コマンドCOMをメモリ50に供給する。また、コントローラ49は、書込アドレスWrADDおよび読出アドレスRdADDに基づいてアドレスADDを生成し、そのアドレスADDをメモリ50に供給する。また、コントローラ49は、書込インタフェース41から供給された書込データWrDATAを、データDATAとしてメモリ50に供給し、また、メモリ50から供給されたデータDATAを、読出データRdDATAとして読出インタフェース48に供給するようになっている。
(メモリコントローラ60)
 図5は、メモリコントローラ60の一構成例を表すものである。メモリコントローラ60は、読出インタフェース68と、書込インタフェース61と、コントローラ69とを有している。
 読出インタフェース68は、読出インタフェース48と同様に、読出アクセスに関するインタフェースである。読出インタフェース68は、読出インタフェース48とは異なり、スヌープ機構を有している。すなわち、読出インタフェース68は、読出リクエストを受け取った場合において、書込インタフェース61の書込バッファ64(後述)に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。これにより、メモリコントローラ60およびメモリ70では、コヒーレンシに関する問題の発生を抑えることができるようになっている。
 書込インタフェース61は、書込インタフェース41と同様に、書込アクセスに関するインタフェースである。書込インタフェース61は、書込バッファ64と、レスポンス制御部90と、レスポンス信号生成部63とを有している。
 書込バッファ64は、書込バッファ44と同様に、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。また、書込バッファ64は、読出インタフェース68からの指示に基づいて、書込バッファ64に記憶された書込データWrDATAを読出インタフェース68に供給するようになっている。
 レスポンス制御部90は、レスポンス制御部80と同様に、書込アドレスWrADDに基づいてパラメータPWを生成するものである。レスポンス制御部90の構成は、レスポンス制御部80(図3)と同じである。ここで、レスポンス制御部90では、パラメータMIMaskは“0x00”に設定されている。これにより、メモリコントローラ60では、図4に示したように、情報処理装置9およびDMAコントローラ20のどちらがメモリ70に対して書込リクエストを行っても、パラメータDPWは“0”になる。よって、レスポンス制御部90は、転送モード情報MODEの値を、パラメータPWとして出力するようになっている。
 レスポンス信号生成部63は、レスポンス信号生成部43と同様に、パラメータPWおよびコントローラ69から供給される制御信号に基づいて、レスポンス信号REを生成するものである。コントローラ69は、コントローラ49と同様に、書込インタフェース61および読出インタフェース68からの指示に基づいて、メモリ70の動作を制御するものである。
 ここで、キャッシュ10、コア11,12、およびDMAコントローラ20は、本開示における「マスタデバイス」の一具体例に対応し、メモリコントローラ40は、本開示における「スレーブデバイス」の一具体例に対応する。メモリ50は、本開示における「アクセス対象デバイス」の一具体例に対応する。書込リクエストは、本開示における「アクセスリクエスト」の一具体例に対応する。転送モード情報MODEは、本開示における「要求情報」の一具体例に対応する。
[動作および作用]
 続いて、本実施の形態のバスシステム1の動作および作用について説明する。
(全体動作概要)
 まず、図1などを参照して、バスシステム1の全体動作概要を説明する。情報処理部9は、演算処理を行う。DMAコントローラ20は、DMA転送を制御する。インターコネクト部30は、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停する。メモリコントローラ40は、メモリ50の動作を制御するとともに、レスポンス信号REを生成する。その際、メモリコントローラ40は、識別子MIおよび転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定する。メモリコントローラ60は、メモリ70の動作を制御するとともに、レスポンス信号REを生成する。その際、メモリコントローラ60は、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定する。メモリ50,70は、データを記憶する。
 次に、3つの動作例を挙げて、バスシステム1の詳細動作について説明する。
(動作例1)
 まず、情報処理部9のキャッシュ10が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例1について説明する。
 図6は、バスシステム1の動作例1を表すものである。図6において、太い実線で示した信号は、レスポンス信号REを生成するタイミングより前にアクティブになる信号を示し、太い破線で示した信号は、レスポンス信号REを生成するタイミングより後にアクティブになる信号を示す。
 まず、情報処理部9のキャッシュ10が、メモリ50に対するポステッド転送による書込リクエストを行う。具体的には、情報処理部9は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、キャッシュ10の識別子MI(“0x10”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。すなわち、キャッシュ10は、ポステッド転送を要求しているため、転送モード情報MODEは“1”に設定される。そして、インターコネクト部30は、情報処理部9から供給された書込アドレスWrADDおよび書込データWrDATAを、メモリコントローラ40に引き渡す。そして、メモリコントローラ40は、インターコネクト部30から、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ44に一時的に記憶させ、その後に、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
 メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x10”であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、レスポンス信号生成部43は、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1では、このようにして、ノンポステッド転送が行われる。
 情報処理部9は、ポステッド転送による書込リクエストを行った後に、その書込リクエストを行ったアドレスに対して読出リクエストを行う場合がある。具体的には、例えば、いわゆるエビクション動作を行う場合に、そのようなケースが起こりうる。例えば、ARM社製プロセッサCortex-A9 MPCoreおよびレベル2キャッシュコントローラL2C-310を用いて情報処理部9を構成した場合において、エビクション動作を行う際、転送モード情報MODE(AWCACHE[0])は“1”に設定される。すなわち、この場合には、情報処理部9はポステッド転送による書込リクエストを行う。このような場合において、メモリコントローラ40は、上述したように、ノンポステッド転送を行うべきと判断し、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。これにより、書込アクセスの後の読出アクセスにおいて、メモリ50から、書き換えられる前の古いデータが読み出されるおそれを低減することができるため、コヒーレンシに関する問題の発生を抑えることができる。
 このように、バスシステム1では、情報処理部9がメモリ50に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができる。
(動作例2)
 次に、DMAコントローラ20が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例2について説明する。
 図7は、バスシステム1の動作例2を表すものである。まず、DMAコントローラ20が、メモリ50に対するポステッド転送による書込リクエストを行う。具体的には、DMAコントローラ20は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、DMAコントローラ20の識別子MI(“0x20”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。メモリコントローラ40は、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。そして、メモリコントローラ40は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ44に一時的に記憶させる。
 メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x20”であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40は、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。
 DMAコントローラ20は、しばしば、複数の書込リクエストにより一連の書込転送を行う。以下、4回の書込リクエストにより、1キロバイト(=4×256バイト)の転送を行う場合を例に説明する。このような場合には、DMAコントローラ20は、例えば、ポステッド転送による書込リクエストを3回行った後に、ノンポステッド転送による書込リクエストを1回行う。このとき、メモリコントローラ40は、リクエスト通りに、最初の3回の書込リクエストに対してポステッド転送を行うべきと判断し、その後の1回の書込リクエストに対してノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、最初の3回の書込リクエストに対してレスポンスを返すタイミングを早くすることができるため、転送性能が向上する。また、その後の1回の書込リクエストに対しては、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するため、コヒーレンシに関する問題の発生を抑えることができる。
 このように、バスシステム1では、DMAコントローラ20がメモリ50に対して書込リクエストを行う場合には、メモリコントローラ40は、そのリクエスト通りに、ポステッド転送またはノンポステッド転送を行う。すなわち、DMAコントローラ20は、きめ細やかに書込リクエストを行うことができるので、メモリコントローラ40は、その書込リクエストに従うようにした。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
(動作例3)
 次に、情報処理部9のキャッシュ10が、メモリ70に対して、ポステッド転送による書込リクエストを行う動作例3について説明する。
 図8は、バスシステム1の動作例3を表すものである。まず、情報処理部9のキャッシュ10が、メモリ70に対するポステッド転送による書込リクエストを行う。具体的には、情報処理部9は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、キャッシュ10の識別子MI(“0x10”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。メモリコントローラ60は、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。そして、メモリコントローラ60は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ64に一時的に記憶させる。
 メモリコントローラ60のレスポンス制御部90は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、メモリコントローラ60では、パラメータDPWが“0”であるため(図4)、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ64にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ60は、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ60が読出リクエストを受け取り、書込バッファ64に読み出したいデータが記憶されている場合には、メモリコントローラ60は、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。
 このように、バスシステム1では、情報処理部9がメモリ70に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ60は、そのリクエスト通りに、ポステッド転送を行うべきと判断する。これにより、バスシステム1では、レスポンスを返すタイミングが早くすることができるため、転送性能が向上する。これにより、バスシステム1では、システム全体における処理速度を高めることができる。特に、ポステッド転送では、メモリコントローラ60が有するスヌープ機構を有効に活用することができるため、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
 次に、いくつかの比較例と対比して、本実施の形態の作用を説明する。
(比較例1)
 図9は、比較例1に係るバスシステム1Rの一例を表すものである。バスシステム1Rは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Rと、メモリ50とを備えている。情報処理部9RおよびDMAコントローラ20Rは、識別子MIが割り当てられていないものである。メモリコントローラ40Rは、スヌープ機構を有するものである。また、メモリコントローラ40Rは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。
 この図9の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Rは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Rは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させる。
 メモリコントローラ40Rは、転送モード情報MODEの値が“1”である為、内蔵する書込バッファにデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40Rは、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1Rでは、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ40Rが読出リクエストを受け取り、書込バッファに読み出したいデータが記憶されている場合には、メモリコントローラ40Rは、この書込バッファからデータを読み出し、読出データRdDATAとして出力する。
 比較例1に係るバスシステム1Rでは、メモリコントローラ40Rにスヌープ機構を設けたので、ポステッド転送を行う場合でも、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、スヌープ機構は、回路の規模が大きく、コストが上昇するおそれがある。
 一方、本実施の形態に係るバスシステム1では、情報処理部9がポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、スヌープ機構を設けずにコヒーレンシに関する問題の発生を抑えることができるため、回路規模を小さくすることができ、コストの上昇を抑えることができる。
(比較例2)
 図10,11は、比較例2に係るバスシステム1Sの一例を表すものである。バスシステム1Sは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Sと、メモリ50とを備えている。メモリコントローラ40Sは、スヌープ機構を有しないものである。また、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するものである。
 図10の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Sは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Sは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。メモリコントローラ40Sは、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1Sでは、このようにして、ノンポステッド転送が行われる。
 図11の例では、DMAコントローラ20Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、DMAコントローラ20Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Sは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Sは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。メモリコントローラ40Sは、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1Sでは、このようにして、ノンポステッド転送が行われる。
 比較例2に係るバスシステム1Sでは、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、DMAコントローラ20Rがポステッド転送による書込リクエストを行った場合にもノンポステッド転送を行うため、システム全体における処理速度が低下するおそれがある。すなわち、DMAコントローラ20Rは、書込アクセスを行った直後に、同じアドレスに対して読出アクセスを行う可能性が低い。よって、DMAコントローラ20Rからのアクセスに対して、このようにレスポンスを返すタイミングを遅くすると、転送性能が低くなってしまい、システム全体における処理速度が低下してしまうおそれがある。
 一方、本実施の形態に係るバスシステム1では、メモリコントローラ46が、識別子MIに基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を行い、DMAコントローラ20がポステッド転送による書込リクエストを行う場合にはポステッド転送を行うことができる。このように、バスシステム1では、書込リクエストを行うデバイスによって、異なる転送を行うことができるようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。
(比較例3)
 図12,13は、比較例3に係るバスシステム1Tの一例を表すものである。バスシステム1Tは、情報処理部9Tと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40T,60Tと、メモリ50,70とを備えている。情報処理部9Tは、メモリ50,70に対して、常にノンポステッド転送による書込リクエストを行うものである。メモリコントローラ40Tは、スヌープ機構を有しないものであり、メモリコントローラ60Tは、スヌープ機構を有するものである。メモリコントローラ40T,60Tは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。
 図12の例では、情報処理部9Tが、メモリ50に対してノンポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Tが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“0”である転送モード情報MODE(MODE=0)が含まれている。そして、メモリコントローラ40Tは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Tは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。そして、メモリコントローラ40Tは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Tでは、このようにして、ノンポステッド転送が行われる。
 図13の例では、情報処理部9Tが、メモリ70に対してノンポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Tが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“0”である転送モード情報MODE(MODE=0)が含まれている。そして、メモリコントローラ60Tは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ60Tは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。そして、メモリコントローラ60Tは、メモリ70に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Tでは、このようにして、ノンポステッド転送が行われる。また、その後に、メモリコントローラ60Tが読出リクエストを受け取り、書込バッファに読み出したいデータが記憶されている場合には、メモリコントローラ60Tは、この書込バッファからデータを読み出し、読出データRdDATAとして出力する。
 比較例3に係るバスシステム1Tでは、情報処理部9Tが常にノンポステッド転送による書込リクエストを行うようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、メモリコントローラ60Tがスヌープ機構を有するにも関わらず、常にノンポステッド転送を行うため、スヌープ機構を有効に働かせることができず、性能を発揮することができない。
 一方、本実施の形態に係るバスシステム1では、メモリコントローラ40,60が、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合には、スヌープ機構を有しないメモリコントローラ40は、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラ60は、ポステッド転送を選択することにより転送性能を高めることができる。このように、スヌープ機構を有するデバイスとスヌープ機構を有しないデバイスが混在する場合でも、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
[効果]
 以上のように本実施の形態では、識別子に基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、情報処理部がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、DMAコントローラがポステッド転送による書込リクエストを行う場合にはポステッド転送を選択することにより、転送性能を高めることができる。
 本実施の形態では、複数のメモリコントローラが、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、スヌープ機構を有しないメモリコントローラは、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラは、ポステッド転送を選択することにより転送性能を高めることができる。
[変形例1]
 上記実施の形態では、レスポンス制御部80において、1組のパラメータMIMask,MIMatchを用いたが、これに限定されるものではなく、これに代えて、複数組のパラメータMIMask,MIMatchを用いてもよい。図14に、2組のパラメータMIMask,MIMatchを用いる場合の例を示す。このレスポンス制御部80Aは、レジスタ82Aと、論理積演算部831,832と、比較部841,842と、論理和回路87Aとを有している。レジスタ82Aは、パラメータMIMask1,MIMatch1およびパラメータMIMask2,MIMatch2を記憶するものである。論理積演算部831は、識別子MIの各ビットの値と、パラメータMIMask1の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。比較部841は、論理積演算部831の出力パラメータと、8ビットのパラメータMIMatch1とを比較して、その比較結果を出力するものである。論理積演算部832は、識別子MIの各ビットの値と、パラメータMIMask2の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。比較部842は、論理積演算部832の出力パラメータと、8ビットのパラメータMIMatch2とを比較して、その比較結果を出力するものである。論理和回路87Aは、比較部841における比較結果と、比較部842における比較結果との論理和を求めて、パラメータDPWとして出力するものである。このように、複数組のパラメータMIMask,MIMatchを用いることにより、より高い自由度で、書込アクセスを制御することができる。
[変形例2]
 上記実施の形態では、メモリコントローラ40は、識別子MIに基づいて書込リクエストを行うデバイスを特定したが、これに限定されるものではない。以下に、本変形例について、詳細に説明する。
 図15,16は、本変形例に係るバスシステム1Bの一例を表すものである。バスシステム1Bは、情報処理部9Bと、DMAコントローラ20Bと、インターコネクト部30と、メモリコントローラ40B,60Bと、メモリ50,70とを備えている。図17は、メモリコントローラ40B,60Bに係るレスポンス制御部80Bの一構成例を表すものである。
 情報処理部9BおよびDMAコントローラ20Bは、転送(アクセス)ごとに、転送識別子IDを付与するものである。この例では、情報処理部9Bが付与する転送識別子IDは、0以上127以下であり。DMAコントローラ20Bが付与する転送識別子IDは、128以上255以下である。そして、情報処理部9BおよびDMAコントローラ20Bは、この転送識別子IDを含む書込アドレスWrADDを生成するようになっている。メモリコントローラ40B,60Bは、書込アドレスWrADDに含まれる転送識別子IDを用いて、書込リクエストや読出リクエストを行ったデバイスを識別可能に構成されたものである。すなわち、上記実施の形態に係るメモリコントローラ40,60は、識別子MIを用いて、書込リクエストや読出リクエストを行ったデバイスを識別できるようにしたが、このメモリコントローラ40B,60Bは、転送識別子IDを用いて、書込リクエストや読出リクエストを行ったデバイスを識別できるようにしている。
 レスポンス制御部80Bは、転送識別子取得部81Bと、レジスタ82Bとを有している。転送識別子取得部81Bは、書込アドレスWrADDから転送識別子IDを取得するものである。レジスタ82Bは、パラメータIDMask,IDMatchを記憶するものである。パラメータIDmaskは、16進数表記で“0x80”(2進数表記では“10000000”)に設定され、パラメータIDMatchは、“0x00”に設定されている。
 図15の例では、情報処理部9Bが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Bが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、0以上127以下の転送識別子IDと、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Bは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Bは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44に一時的に記憶させ、その後に、その書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
 メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが0以上127以下であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、メモリコントローラ40Bは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ノンポステッド転送が行われる。
 図16の例では、DMAコントローラ20Bが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、DMAコントローラ20Bが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、128以上255以下の転送識別子IDと、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Bは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Bは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44に一時的に記憶させる。
 メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが128以上255以下であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、メモリコントローラ40Bは、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ポステッド転送が行われる。そして、メモリコントローラ40Bは、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
 このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。なお、これに限定されるものではなく、例えば、情報処理部とDMAコントローラがアクセスするメモリ領域(アドレス領域)を分け、メモリコントローラが、アドレス情報に基づいて書込リクエストを行うデバイスを特定するようにしてもよい。
[変形例3]
 上記実施の形態では、情報処理部9およびDMAコントローラ20が、識別子MIを含む書込アドレスWrADDを生成したが、これに限定されるものではなく、これに代えて、例えば、図18に示すバスシステム1Cのように、インターコネクト部が、識別子MIを含む書込アドレスWrADDを生成してもよい。このバスシステム1Cは、情報処理部9Cと、DMAコントローラ20Cと、インターコネクト部30Cと、メモリコントローラ40,60と、メモリ50,70とを備えている。情報処理部9CおよびDMAコントローラ20Cは、識別子MIを含まない書込アドレスWrADDを生成するものである。インターコネクト部30Cは、識別子生成部31Cと、識別子生成部32Cとを有している。識別子生成部31Cは、情報処理部9Cから供給された書込アドレスWrADDに、情報処理部9Cの識別子MI(例えば“0x10”)を追加するものである。識別子生成部32Cは、DMAコントローラ20Cから供給された書込アドレスWrADDに、DMAコントローラ20Cの識別子MI(例えば“0x20”)を追加するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。
[変形例4]
 上記実施の形態では、メモリコントローラ40,60が、レスポンス信号REの生成タイミングを制御したが、これに限定されるものではなく、これに代えて、例えば、インターコネクト部がレスポンス信号REの生成タイミングを制御してもよい。以下に、本変形例に係るインターコネクト部30Dについて、詳細に説明する。
 図19は、インターコネクト部30Dの一構成例を表すものである。インターコネクト部30Dは、レスポンス制御部33D,35Dと、レスポンス信号生成部34D,36Dと、処理部37Dとを有している。レスポンス制御部33Dは、レスポンス制御部80(図3)と同様に、情報処理部9CからバスB1を介して供給された書込アドレスWrADDに基づいて、パラメータPWを生成するものである。レスポンス信号生成部34Dは、レスポンス信号生成部43と同様に、レスポンス制御部33Dが生成したパラメータPWおよび処理部37Dから供給された制御信号に基づいてレスポンス信号REを生成し、このレスポンス信号REをバスB1を介して情報処理部9Cに供給するものである。レスポンス制御部35Dは、レスポンス制御部80(図3)と同様に、DMAコントローラ20からバスB2を介して供給された書込アドレスWrADDに基づいて、パラメータPWを生成するものである。レスポンス信号生成部36Dは、レスポンス信号生成部43と同様に、レスポンス制御部35Dが生成したパラメータPWおよび処理部37Dから供給された制御信号に基づいてレスポンス信号REを生成し、このレスポンス信号REをバスB2を介してDMAコントローラ20に供給するものである。処理部37Dは、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。
 以上、実施の形態およびいくつかの変形例を挙げて本技術を説明したが、本技術はこれらの実施の形態等には限定されず、種々の変形が可能である。
 例えば、上記実施の形態等では、インターコネクト部を1つ設けたが、これに限定されるものではなく、これに代えて、図20に示すバスシステム2のように複数のインターコネクト部(この例では2つのインターコネクト部131,132)を設けてもよい。この例では、情報処理部9およびDMAコントローラ20は、2つのインターコネクト部131,132を介して、メモリ50,70にアクセスする。
 また、例えば、上記実施の形態等では、本技術をメモリアクセスに適用したが、これに限定されるものではなく、リクエストに対してレスポンスを行う様々な用途に適用することができる。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
 なお、本技術は以下のような構成とすることができる。
(1)複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、
 前記アクセスリクエストに基づいて、スレーブデバイスに、前記アクセスリクエストを生成した前記一のマスタデバイスを特定させ、
 前記スレーブデバイスに、その特定された前記一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスへの応答をさせる
 アクセス制御方法。
(2)前記応答タイミングは、前記スレーブデバイスが前記アクセスリクエストを受け取った第1のタイミング、または、前記アクセス対象デバイスが前記アクセスリクエストに基づく処理を終了した第2のタイミングである
 前記(1)に記載のアクセス制御方法。
(3)前記アクセスリクエストは、前記応答タイミングについての前記一のマスタデバイスの要求を示す要求情報を含み、
 前記スレーブデバイスに応答させる際、特定された前記一のマスタデバイス、および前記要求情報に基づいて、前記応答タイミングを決定させる
 前記(2)に記載のアクセス制御方法。
(4)前記応答タイミングを決定させる際、前記要求情報が前記第1のタイミングを示す場合には、特定された前記一のマスタデバイスに基づいて、前記応答タイミングを決定させる
 前記(3)に記載のアクセス制御方法。
(5)前記応答タイミングを決定させる際、前記要求情報が前記第2のタイミングを示す場合には、前記第2のタイミングを前記応答タイミングにする
 前記(3)または(4)に記載のアクセス制御方法。
(6)前記スレーブデバイスはバッファメモリを有し、
 前記第1のタイミングは、前記アクセスリクエストを前記バッファメモリに記憶したタイミングである
 前記(2)から(5)のいずれかに記載のアクセス制御方法。
(7)前記複数のマスタデバイスに、互いに異なる識別子を割り当て、
 前記一のマスタデバイスを特定させる際、前記識別子に基づいて特定させる
 前記(1)から(6)のいずれかに記載のアクセス制御方法。
(8)前記アクセスリクエストを生成させる際、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
 前記(7)に記載のアクセス制御方法。
(9)前記一のマスタデバイスおよび前記スレーブデバイスの間の信号経路上のデバイスに、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
 前記(7)に記載のアクセス制御方法。
(10)前記スレーブデバイスは、前記アクセス対象デバイスを制御するものである
 前記(1)から(9)のいずれかに記載のアクセス制御方法。
(11)前記アクセス対象デバイスはメモリであり、
 前記アクセスリクエストは書込リクエストである
 前記(1)から(10)のいずれかに記載のアクセス制御方法。
(12)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
 前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
 を備えたバスシステム。
(13)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
 前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
 を備えた半導体装置。
 本出願は、日本国特許庁において2014年9月10日に出願された日本特許出願番号2014-183777号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。
 当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

Claims (13)

  1.  複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、
     前記アクセスリクエストに基づいて、スレーブデバイスに、前記アクセスリクエストを生成した前記一のマスタデバイスを特定させ、
     前記スレーブデバイスに、その特定された前記一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスへの応答をさせる
     アクセス制御方法。
  2.  前記応答タイミングは、前記スレーブデバイスが前記アクセスリクエストを受け取った第1のタイミング、または、前記アクセス対象デバイスが前記アクセスリクエストに基づく処理を終了した第2のタイミングである
     請求項1に記載のアクセス制御方法。
  3.  前記アクセスリクエストは、前記応答タイミングについての前記一のマスタデバイスの要求を示す要求情報を含み、
     前記スレーブデバイスに応答させる際、特定された前記一のマスタデバイス、および前記要求情報に基づいて、前記応答タイミングを決定させる
     請求項2に記載のアクセス制御方法。
  4.  前記応答タイミングを決定させる際、前記要求情報が前記第1のタイミングを示す場合には、特定された前記一のマスタデバイスに基づいて、前記応答タイミングを決定させる
     請求項3に記載のアクセス制御方法。
  5.  前記応答タイミングを決定させる際、前記要求情報が前記第2のタイミングを示す場合には、前記第2のタイミングを前記応答タイミングにする
     請求項3に記載のアクセス制御方法。
  6.  前記スレーブデバイスはバッファメモリを有し、
     前記第1のタイミングは、前記アクセスリクエストを前記バッファメモリに記憶したタイミングである
     請求項2に記載のアクセス制御方法。
  7.  前記複数のマスタデバイスに、互いに異なる識別子を割り当て、
     前記一のマスタデバイスを特定させる際、前記識別子に基づいて特定させる
     請求項1に記載のアクセス制御方法。
  8.  前記アクセスリクエストを生成させる際、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
     請求項7に記載のアクセス制御方法。
  9.  前記一のマスタデバイスおよび前記スレーブデバイスの間の信号経路上のデバイスに、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
     請求項7に記載のアクセス制御方法。
  10.  前記スレーブデバイスは、前記アクセス対象デバイスを制御するものである
     請求項1に記載のアクセス制御方法。
  11.  前記アクセス対象デバイスはメモリであり、
     前記アクセスリクエストは書込リクエストである
     請求項1に記載のアクセス制御方法。
  12.  アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
     前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
     を備えたバスシステム。
  13.  アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
     前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
     を備えた半導体装置。
PCT/JP2015/074640 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置 WO2016039198A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016547381A JP6497392B2 (ja) 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置
US15/502,751 US11392517B2 (en) 2014-09-10 2015-08-31 Access control method, bus system, and semiconductor device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014183777 2014-09-10
JP2014-183777 2014-09-10

Publications (1)

Publication Number Publication Date
WO2016039198A1 true WO2016039198A1 (ja) 2016-03-17

Family

ID=55458950

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/074640 WO2016039198A1 (ja) 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置

Country Status (3)

Country Link
US (1) US11392517B2 (ja)
JP (1) JP6497392B2 (ja)
WO (1) WO2016039198A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019114015A (ja) * 2017-12-22 2019-07-11 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
JP2020537227A (ja) * 2017-10-13 2020-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6226563A (ja) * 1985-07-26 1987-02-04 Nec Corp バス要求制御回路
JP2002109490A (ja) * 2000-09-29 2002-04-12 Toshiba Corp メモリカードおよびクロック制御回路
JP2006251923A (ja) * 2005-03-08 2006-09-21 Oki Electric Ind Co Ltd 先読み制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751696B2 (en) * 1990-04-18 2004-06-15 Rambus Inc. Memory device having a programmable register
US5805837A (en) * 1996-03-21 1998-09-08 International Business Machines Corporation Method for optimizing reissue commands in master-slave processing systems
KR100644596B1 (ko) * 2000-07-27 2006-11-10 삼성전자주식회사 버스 시스템 및 그 버스 중재방법
US7194566B2 (en) * 2002-05-03 2007-03-20 Sonics, Inc. Communication system and method with configurable posting points
US7640392B2 (en) * 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
US7203780B2 (en) * 2005-02-22 2007-04-10 Kabushiki Kaisha Toshiba System and method for facilitating communication between devices on a bus using tags
JP2006293927A (ja) * 2005-04-14 2006-10-26 Toshiba Corp ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
KR101699781B1 (ko) * 2010-10-19 2017-01-26 삼성전자주식회사 시스템 온 칩 및 그것의 데이터 중재 방법
KR20120092220A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 인터페이스 장치 및 이를 포함하는 시스템
US20130124764A1 (en) * 2011-11-11 2013-05-16 Lantiq Deutschland Gmbh Method of transaction and event ordering within the interconnect

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6226563A (ja) * 1985-07-26 1987-02-04 Nec Corp バス要求制御回路
JP2002109490A (ja) * 2000-09-29 2002-04-12 Toshiba Corp メモリカードおよびクロック制御回路
JP2006251923A (ja) * 2005-03-08 2006-09-21 Oki Electric Ind Co Ltd 先読み制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020537227A (ja) * 2017-10-13 2020-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム
JP7100941B2 (ja) 2017-10-13 2022-07-14 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム
JP2019114015A (ja) * 2017-12-22 2019-07-11 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ

Also Published As

Publication number Publication date
US11392517B2 (en) 2022-07-19
JP6497392B2 (ja) 2019-04-10
JPWO2016039198A1 (ja) 2017-06-22
US20170235688A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
US10545672B2 (en) Method for accessing extended memory, device, and system
EP1987434B1 (en) Methods and apparatus for providing independent logical address space and access management
US20080126643A1 (en) Semiconductor circuit
US10079916B2 (en) Register files for I/O packet compression
JP2001167077A (ja) ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
EP3159802B1 (en) Sharing method and device for pcie i/o device and interconnection system
US20220179792A1 (en) Memory management device
WO2016041191A1 (zh) 读写数据的方法、装置、存储设备和计算机系统
US10754802B2 (en) Dynamically remapping in-process data transfers
KR20150144545A (ko) 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
US10019358B2 (en) Bank address remapping to load balance memory traffic among banks of memory
JP6497392B2 (ja) アクセス制御方法、バスシステム、および半導体装置
JP5551201B2 (ja) メモリ制御装置
JP2014081819A (ja) 情報処理装置
CN110059035B (zh) 半导体装置和总线发生器
US20240086093A1 (en) Memory controller and data processing system with memory controller
CN110035021B (zh) 针对原子数据访问请求进行的资源分配
WO2018063266A1 (en) Object coherence in distributed shared memory systems
JP2018510411A (ja) ロールベースキャッシュコヒーレンスバストラフィック制御
JP6416488B2 (ja) 半導体装置
US20130159564A1 (en) Direct data transfer for device drivers
JP7363344B2 (ja) メモリ制御装置、および制御方法
US20230110369A1 (en) Auxiliary processor and electronic system comprising the same
WO2013031130A1 (ja) 情報処理装置、そのアクセス制御方法及び集積回路
JP6235088B2 (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: 15840723

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016547381

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

Country of ref document: EP

Kind code of ref document: A1