WO2006030650A1 - 複数の処理ユニットでリソースを共有する情報処理装置 - Google Patents

複数の処理ユニットでリソースを共有する情報処理装置 Download PDF

Info

Publication number
WO2006030650A1
WO2006030650A1 PCT/JP2005/016087 JP2005016087W WO2006030650A1 WO 2006030650 A1 WO2006030650 A1 WO 2006030650A1 JP 2005016087 W JP2005016087 W JP 2005016087W WO 2006030650 A1 WO2006030650 A1 WO 2006030650A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
shared resource
access
read
processing unit
Prior art date
Application number
PCT/JP2005/016087
Other languages
English (en)
French (fr)
Inventor
Sunao Torii
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to US11/663,036 priority Critical patent/US7650453B2/en
Priority to JP2006535714A priority patent/JP4737438B2/ja
Publication of WO2006030650A1 publication Critical patent/WO2006030650A1/ja

Links

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
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Definitions

  • the present invention relates to an information processor that has an application processor equipped with a plurality of general-purpose or special-purpose processors, or a dedicated LSI, ASIC (Application Specific Integrated Circuit), SOC (System On Chip), or the like.
  • FIG. Figure 1 shows an example of an application processor installed in a mobile phone or mobile terminal device.
  • the information processing apparatus 301 has a plurality of information processing units and a plurality of shared resources that are commonly used by the information processing units, and these are connected via an internal bus 312. In this configuration, information can be transmitted and received with each other.
  • the information processing unit is a general-purpose processor such as a CPU 302 or DSP 303, or a peripheral controller such as a DMA controller (DMAC) 304, a camera controller 305, or an LCD controller 306.
  • DMAC DMA controller
  • Shared resources include SRAM 308, which is an internal memory, SDRAM controller 307, which controls the 3 ⁇ 4 m projection / insertion of SDRAM (Synchronous Dynamic Random Access Memory), which is an external memory, and external
  • SDRAM controller 307 which controls the 3 ⁇ 4 m projection / insertion of SDRAM (Synchronous Dynamic Random Access Memory), which is an external memory
  • the external bus bridge 309 is an interface with an external bus to which a memory (for example, a flash memory) is connected, and various peripheral devices 310 to 311 are included.
  • a standard bus is used as the internal bus 312 in order to facilitate device design and performance verification, and each information processing unit has a corresponding bus.
  • a method for designing an interface is common.
  • AHB Advanced High-performance Bus
  • ARM Cambridge, UK
  • AMBA Advanced Microcontroller Bus Architecture
  • a configuration including a plurality of independent noses such as providing a bus dedicated to image data can be considered.
  • a plurality of shared resources such as memories must be connected to each bus, which increases the cost of the information processing apparatus.
  • software development is often restricted, such as access restrictions and delays when data is written to or read from memory across multiple buses.
  • bit width of the data bus As another method for securing the bus bandwidth, it is conceivable to increase the bit width of the data bus. For example, if a 32-bit data bus is expanded to a 64-bit width, data transfer time can be expected to be halved. However, since general-purpose processors also perform data read processing and data write processing of 32 bits or less, even if the bus bit width is increased, sufficient effects cannot be obtained.
  • Multi-Layer AHB that includes a plurality of buses in parallel.
  • Figure 2 shows the structure of this Mult Layer AHB.
  • Multi-Layer AHB consists of multiple information processing units 401 to 403 (3 in Fig. 2) and multiple shared resources (4 in Fig. 2) 408 to 411. It is configured to be connected via a bus 407.
  • the information processing units 401 to 403 are connected to the multi-layer bus 407 through the bus interfaces 404 to 406 provided therein, and the shared resources 408 to 411 are connected to the multi-layer bus 407 through the bus interfaces 412 to 415 provided therein. Is done.
  • the multi-layer bus 407 is input / output interfaces provided corresponding to the information processing units 401 to 403, and each information provided corresponding to the shared resources 408 to 411. From processing units 401-403 to shared resources 408-411 Multiplexers 420 to 423 that arbitrate issued requests (access requests), and a decoder 424 that performs control for transferring access requests issued from the information processing units 401 to 403 to the shared resources 408 to 411 of the transmission destination ⁇ 426.
  • access requests issued from the information processing units 401 to 403 are transmitted to the input stage (Input Stage) of the multi-layer bus 407 via the bus interfaces (BUS I / F) 404 to 406 included in the information processing units 401 to 403, respectively. Sent to 416-418.
  • Decoders 419 to 421 decode access requests received at input stages 416 to 418 and transfer them to multiplexers (MU X) 420 to 423 corresponding to the shared resource of the transmission destination. To do.
  • the multiplexers 420 to 423 arbitrate the access requests issued from the information processing units 401 to 4003, and the permitted access request powers are also sequentially shared via the bus interface (BUS I / F) 412 to 415. Send to 411.
  • SDRAM Static Random Access Memory
  • SRAM Static Random Access Memory
  • DDR Double Data Rate
  • this DDR-SDRAM is used as an external memory of an information processing device, if the transmission speed and bit width of the bus and bridge connected to the DDR-S DRAM are the same as those of the DDR-SDRAM, the DDR-SDRAM Processing speed exceeds the transmission speed of the bus. Therefore, it is necessary to double the bus transmission speed or double the bit width to match the bus transmission capacity with the data processing speed of DDR-SDRAM. [0018] However, if the transmission speed of the bus is doubled, there is a problem that delay due to wiring and power consumption increase. Also, if the bus bit width is doubled, it will not match the bit width of the information processing unit, so a device that converts the bit width is required.
  • a memory controller (bus interface) receives a data read request from the information processing unit
  • the memory controller releases the bus and executes the read process, and the requested data read process is executed.
  • the bus connection to the requesting information processing unit is established again, and the read data is returned.
  • the present invention has been made in order to solve the problems of the conventional techniques as described above, and improves the use efficiency of shared resources without increasing the transmission speed or bit width of the bus, and
  • An object is to provide an information processing apparatus capable of improving the processing capability.
  • the information processing apparatus of the present invention connects a plurality of bus interfaces to at least one shared resource, and connects the bus interfaces to a multi-layer bus.
  • Each bus interface has a data buffer for holding read data and write data. Access requests for each bus interface are arbitrated by an arbiter, and data is read and written in response to access requests that gain access to shared resources.
  • next access request can be accepted even while the process of reading data from the shared resource to the read buffer or the process of writing data from the write buffer to the shared resource is being executed, the shared resource is continuously accessed. Requests can be given, and the use efficiency of shared resources is improved.
  • FIG. 1 is a block diagram showing a configuration of an application processor mounted on a mobile phone or a mobile terminal device.
  • FIG. 2 is a block diagram showing a configuration of Multi-Layer AHB.
  • FIG. 3 is a block diagram showing the configuration of the information processing apparatus according to the first embodiment of the present invention.
  • FIG. 4 is a timing chart showing the operation of the information processing apparatus shown in FIG. 3 when reading data.
  • FIG. 5 is a timing chart showing the operation of the information processing apparatus shown in FIG. 3 when writing data.
  • FIG. 6 is a block diagram illustrating a configuration of a read buffer included in the information processing apparatus according to the second embodiment.
  • FIG. 7 is a timing chart showing an operation of the read buffer shown in FIG.
  • FIG. 8 is a block diagram showing a configuration of the information processing apparatus according to a third embodiment of the present invention.
  • FIG. 9 is a block diagram showing a configuration of the information processing apparatus according to a fourth embodiment of the present invention.
  • FIG. 10 is a flowchart showing an example of a priority determination algorithm for SDRAM arbitration.
  • FIG. 11A is a flowchart showing an arbiter operation when there is an exclusive access.
  • FIG. 11B is a flowchart showing the arbiter operation when there is a non-exclusive access.
  • FIG. 12 is a diagram showing a configuration in which a read buffer is provided with a buffer through path.
  • FIG. 13 is a timing chart showing an operation at the time of data reading in the configuration shown in FIG.
  • FIG. 3 is a block diagram showing the configuration of the information processing apparatus according to the first embodiment of the present invention.
  • the information processing apparatus includes a plurality of information processing units 1 to 3 (three in FIG. 3) and a plurality of shared resources (three in FIG. 3). To 10 and these are connected via a multi-layer bus 7.
  • the information processing units 1 to 3 are connected to the multilayer bus 7 by the bus interfaces 4 to 6 included therein, and the shared resources 9 and 10 are connected to the multilayer bus 7 by the bus interfaces 18 and 19.
  • two bus interfaces (BUS I / F) connected to the multilayer bus 7 to any one shared resource (here, shared resource 8) among the plurality of shared resources ll , 12 is provided.
  • the nose interfaces 11 and 12 are configured to include read buffers 13 and 14 that hold data read from the shared resource 8, and write buffers 15 and 16 that hold data to be stored in the shared resource 8. is there.
  • the node interfaces 11 and 12 and the shared resource 8 are connected via an arbiter 17 that arbitrates an access request for the shared resource 8.
  • the multi-layer bus 7 is an input / output interface provided for the information processing units 1 to 3. From the input stage 26 to 28 which is a tough ace, multiplexers 20 to 22 for arbitrating various requests (access requests) issued from the information processing units 1 to 3 to the shared resources 8 to 10, and the information processing units 1 to 3 This configuration includes decoders 23 to 25 for transferring issued access requests to shared resources 8 to 10 as transmission destinations.
  • FIG. 3 shows an example of a configuration having three information processing units and three shared resources, the number of information processing units and shared resources is not limited to three, and any number can be used. Good.
  • access requests issued from the information processing units 1 to 3 are input to the multi-layer bus 7 via the bus interfaces 4 to 6 included therein. Sent to ⁇ 28.
  • the decoders (Decode) 23 to 25 decode the access requests received at the input stages 26 to 28, and transfer them to the multiplexers (MUX) 20 to 22 corresponding to the shared resources of the transmission destination. .
  • the multiplexers 20 to 22 arbitrate the access requests issued from the information processing units 1 to 3, and the access request powers that have been granted are also sequentially passed through the bus interfaces (BUS I / F) 11, 12, 18, and 19.
  • the information processing apparatus shown in FIG. 3 includes two bus interfaces 11 and 12 corresponding to the shared resource 8, and an access request issued from the information processing unit 1 to the shared resource 8 is directly sent to the bus interface 11.
  • the access request transmitted to the shared resource 8 from the information processing unit 2 or the information processing unit 3 is transmitted to the bus interface 12 through the multiplexer 20.
  • the access request issued from the information processing unit 2 and the information processing unit 3 to the shared resource 8 is arbitrated by the multiplexer 20.
  • the shared resources 9 and 10 have a configuration including one bus interface as in the conventional case, the access requests from the information processing units 1 to 3 are arbitrated by the multiplexers 21 and 22.
  • arbitration is performed to select an access request that takes less time to access in consideration of the SDRAM characteristics and status. For example, when there is an access request, the arbiter 17 may determine the priority and arbitrate according to the priority. This makes it possible to effectively expand the SDRAM data bandwidth as a whole system.
  • FIG. 10 is a flowchart showing an example of a priority determination algorithm for SDRAM arbitration.
  • priority level 1 there are nine priority levels of priority levels 1 to 9, with priority level 1 having the highest priority level and priority level 9 having the lowest priority level.
  • arbiter 17 when there is an access request, arbiter 17 first determines whether or not there is a read / write switch in executing the access request (step 501). If there is no read / write switching, the arbiter 17 determines whether or not it is a read request (step 504).
  • step 501 If it is determined in step 501 that there is no read / write switching, the arbiter 17 determines whether or not access is to the same ROW (step 502). If access is to the same ROW, the access request is given priority 1. If access to the same ROW is not made in step 502, the arbiter 17 determines whether or not there is a bank conflict (step 503). If there is no bank conflict, the access request is given priority 2, and if there is a bank conflict, the access request is given priority 7.
  • step 504 If it is determined in step 504 that the request is a read request, the arbiter 17 determines whether or not the access is to the same ROW (step 505). If the access is to the same ROW, the access request is given priority 3. If access to the same ROW is not made in step 505, the arbiter 17 determines whether or not there is a bank conflict (step 506). If there is no bank conflict, the access request is given priority 4, and if there is a bank conflict, the access request is assigned. Access requests are given priority 8.
  • step 504 determines whether or not the access is to the same ROW (step 507). If access is to the same ROW, the access request is given priority 5. If it is not an access to the same ROW in step 507, the arbiter 17 determines whether or not there is a bank conflict (step 508). If there is no bank conflict, the access request is given priority 6, and if there is a bank conflict, the access request is given priority 9.
  • the arbiter 17 determines the priority of the access request to the shared resource 9, and performs arbitration so that the access request power with a high priority is selected preferentially.
  • any access request may be selected first by any method. For example, you can select the priority of access requests with the same priority randomly, or you can select them fairly with a policy called round robin! /.
  • the arbiter 17 of this embodiment may perform arbitration so as to continuously select access to the same bank and the same ROW.
  • the arbiter 17 It is also possible to provide a counter for counting the number of times of arbitration, and to select access requests that have exceeded the predetermined number of times, regardless of the state of the SDRAM.
  • the arbiter 17 determines the priority as an access source for the information processing queues 1 to 3 in advance, and if there is an access request to the shared resource 8, it will be processed by any information processing unit. It is also possible to determine whether the data is from the source and perform arbitration in consideration of both the priority as the access source and the data transfer efficiency.
  • the node software ensures that no other information processing unit accesses the memory area during the series of memory accesses.
  • This is defined by the instruction SWAP in the ARM926 processor instruction set, which is also supplied by ARM, for example. Since this SWAP instruction makes a read request and a write request to the same address in an inseparable manner, no other access is permitted between the read request and the write request, and the AHB bus is locked, resulting in a memory Lock
  • the shared resource 8 is connected to the multilayer bus 7 by a plurality of bus interfaces 11, 12. Therefore, the shared resource 8 is not completely locked only by locking the nose with one bus interface. For example, if the information processing unit 2 locks the shared resource 8, the bus connected to the nose interface 12 is locked, and the information processing unit 3 cannot access as much as possible. However, the information processing unit 1 is able to access the shared resource 8 because it passes through the other bus interface 11. As a result, inseparable access to the shared resource 8 by the information processing unit 2 cannot be guaranteed.
  • FIG. 11 is a flowchart showing the arbiter operation that enables exclusive access.
  • the arbiter 17 when there is an exclusive access request, the arbiter 17 first checks whether there is any other information processing unit in the exclusive access (step 601). If there is another information processing unit that is in exclusive access, the process waits until the exclusive access ends (step 606).
  • the arbiter 17 compares the address of the access request with the addresses stored in the read buffer and the write buffer (step 602), and the access request It is determined whether or not the same address as that in the read buffer or the write buffer exists (step 603).
  • the arbiter 17 invalidates the read buffer or writes back the contents of the write buffer to the shared resource 8 (step 604).
  • the arbiter 17 When the same address does not exist in the read buffer and the write buffer in the determination in Step 603, or after the processing in Step 604, the arbiter 17 performs a series of exclusive access to the shared resource 8 as a normal arbitration. Is permitted (step 605).
  • the arbiter 17 when there is a non-exclusive access request, the arbiter 17 confirms whether there is another exclusive access (step 607). There is another exclusive access If not, the arbiter 17 grants access to the shared resource 8 as normal arbitration (step 610).
  • the arbiter 17 determines whether or not the access request is for the same address as the exclusive access (step 608). If they are not the same address, the arbiter 17 permits access to the shared resource 8 as a normal arbitration regardless of the exclusive access (step 610).
  • step 608 If it is determined in step 608 that the access request is for the same address as another exclusive access, the arbiter 17 waits until the exclusive access is completed (step 609), and returns to the processing in step 607.
  • the same address refers to the same address range, and corresponds to a data area stored in the read buffer or the write buffer.
  • the number of buses that can perform such exclusive access may be limited to one. This eliminates the need for the processing of step 601 for determining whether there is any other information processing unit that has exclusive access, and logical complexity due to contention when multiple information processing units simultaneously perform exclusive access. Is also resolved.
  • bus interfaces 11 and 12 corresponding to one shared resource 8
  • the bus interfaces 4 to 6 included in the information processing units 1 to 3 or other shared resources 9 and 10 are provided. Can be connected without changing the specifications.
  • FIG. Fig. 4 shows data reading of the information processing device shown in Fig. 3. It is a timing chart which shows operation at the time.
  • a data read request (hereinafter referred to as a read request) is issued from the information processing unit 1 to the shared resource 8
  • the read request is sent to the timing of T 1 via the bus interface 4.
  • the decoder 23 determines that it is an access request to the shared resource 8 based on the access destination address included in the read request.
  • the read request is transferred to the bus interface 11.
  • the bus interface 11 accepts this access request at the timing of T2, and when determining that it is a read request, transfers the read request to the arbiter 17 via the read buffer 13.
  • the read buffer 13 starts reading data from the shared resource 8 at the timing of T3 (Start of Lead).
  • T3 Start of Lead
  • the shared resource 8 has twice the transmission capacity of the multilayer bus 7 and data is read in units of 4 words.
  • the read buffer 13 stores data (hereinafter referred to as read data) read at the timing of T5 from the latter half of T3 shown in FIG.
  • the read buffer 13 starts data return to the information processing unit 1 from the timing of T4. Since the read data transfer to the information processing unit 1 takes more time than the data transfer from the shared resource 8 to the read buffer 13, the data transfer is completed at the timing T7 shown in FIG.
  • the shared resource 8 Since the shared resource 8 is in a standby state in the second half of T5 shown in FIG. 4, it is possible to process an access request via the read buffer 14 or the write buffers 15 and 16 from the timing of T6.
  • FIG. 12 is a diagram showing a configuration in which the read buffer includes a buffer through path. Referring to FIG. 12, a buffer through path 701 that does not pass through the read buffer 702 is provided, and the read buffer 702 can be passed through. This configuration Therefore, the data response cycle can be shortened for read access.
  • FIG. 13 is a timing chart showing an operation at the time of data reading when the configuration shown in FIG. 12 is used. Referring to FIG. 13, only the timing of data response to the information processing unit is different from the timing chart shown in FIG.
  • FIG. 5 is a timing chart showing the operation of the information processing apparatus shown in FIG. 3 when storing data.
  • a data write request (hereinafter referred to as a write request) is issued from the information processing unit 1 to the shared resource 8
  • the write request is sent to the bus interface in the same manner as at the time of the read request. 4 is sent to the multi-layer bus 7 at the timing of T1.
  • the decoder 23 determines that the request is an access request to the shared resource 8 based on the access destination address included in the write request. The write request is transferred to the bus interface 11.
  • the bus interface 11 When the bus interface 11 accepts this access request at the timing of ⁇ 2 and determines that it is a write request, it writes data for 4 words at the timing of ⁇ ⁇ ⁇ 2 to ⁇ 5 (hereinafter referred to as write data). ).
  • the write buffer 15 When the write buffer 15 completes reception of the write data at timing ⁇ ⁇ ⁇ ⁇ ⁇ 5, it sends a write request to the arbiter 17 at the timing of the first half of ⁇ 6.
  • the write buffer 15 starts a write process to the shared resource 8 from the timing of ⁇ 7 (Write activation), and from T7 to T8 Stores write data for 4 words in shared resource 8.
  • the access request via the read buffers 13 and 14 or the write buffer 16 can be processed. It becomes ability.
  • the read buffer 13 and the write buffer 15 are provided for the bus interface 11
  • the read buffer 14 and the write buffer 16 are provided for the bus interface 12.
  • a bus interface with both write buffers are provided.
  • the access request received via the read buffers 13 and 14 and the write buffers 15 and 16 included in the bus interfaces 11 and 12 is arbitrated by the arbiter 17 to access the shared resource 8.
  • the order is determined.
  • the processing speed as the information processing apparatus can be expected to be improved by giving priority to the read request as described above. This is because the response waiting time from the shared resource 8 by the information processing unit is shortened by shortening the waiting time for data transfer to the read buffer in response to the read request.
  • bus interfaces 11 and 12 are respectively connected.
  • An address comparator (not shown) may be provided. Address comparators are for example shared resources
  • the write data stored in the write buffer 16 and its write address are compared. If there is write data stored in the same address, control is performed so that the received new write request is not transferred to the arbiter 17 until the data is stored in the shared resource 8. At the same time, if there are read data in read buffers 13 and 14 that have not been read, they are compared with their read addresses. If the data has been read with the same address as the address of the newly received write request, control is performed so that the received new write request is not transferred to the arbiter 17 until the read processing is completed. .
  • the arbiter 17 can perform arbitration regardless of the order in which the access requests arrive at the bus interfaces 11 and 12, and the read request processing can be performed more than the write request processing. Can also improve the performance of the information processing device.
  • processing priority may be set in advance for the information processing units 1 to 3, the read buffers 13 and 14, and the write buffers 15 and 16. In that case, when the arbiter 17 receives a plurality of access requests for the shared resource 8, the arbiter 17 gives priority to the access requests from the information processing unit or the buffer having a higher priority according to the preset priority. Allow to.
  • the response time for the read request from the information processing unit can be shortened.
  • the priority setting is stored in a register that can be rewritten by software, a more flexible system can be constructed.
  • the write buffers 15 and 16 set the priority of the write request to be equal to or higher than that of the read request and request arbitration from the arbiter 17. Since the arbiter 17 preferentially grants a write request with a high priority, the data in the write buffer is preferentially stored in the shared resource 8.
  • bus interfaces 11 and 12 cannot obtain access rights due to low priority, and if the status continues, if the status continues, the priority of the information processing unit or buffer that issued the access request Among the multiple bus interfaces corresponding to the shared resource 8 that can be increased, processing such as increasing the priority of the access request from one bus interface is also possible.
  • the information processing apparatus retains the shared resource power and the data read to the read buffer as much as possible after the end of the read response, and the subsequent access request is a read request for the same address. If this is the case, the read buffer power is configured to transmit read data to the information processing unit without accessing the shared resource 8.
  • FIG. 6 is a block diagram illustrating a configuration of a read buffer included in the information processing apparatus according to the second embodiment. Note that the read buffer shown in FIG. 6 shows an example composed of four entries.
  • each entry has a data area 53 in which read data of a plurality of words (4 words in FIG. 6) is stored, and whether the read data stored in the data area 53 is valid.
  • a status bit 52 indicating invalidity
  • an address tag 51 indicating the address of the read data (for example, the start address)
  • an address comparator 54 for comparing the address tag 51 and the address of the access request extracted from the access request power Each is equipped.
  • the state controller 55 collects the comparison results by the address comparator 54 and outputs the comparison results to the comparison results. Each status bit 52 is updated accordingly.
  • read data read from the shared resource 8 is stored, and the read data in the data area 53 is sent to the no interface 11 or 12.
  • FIG. 7 is a timing chart showing the operation of the read buffer shown in FIG.
  • the address comparator 54 uses the address tag 51 of each entry and the address of the access destination included in the read request. And compare. If the access address and the address tag 51 have the same value and there is an entry indicating that the status bit 52 is valid, the bus interface 11 determines that access to the shared resource 8 is unnecessary, and the timing of T3 The Daka also returns the read data held in the data area 53 of the entry in the read buffer to the information processing unit 1.
  • the state controller 55 When the state controller 55 reads data from the shared resource 8 and stores it in the data area 53, the state controller 55 sets the status bit 52 of the relevant entry to be valid, and when the address comparator 54 detects writing of data to the same address. Set status bit 52 of the entry to invalid.
  • a new read request is received, if valid data is stored in all entries and those addresses are different from the access destination address by the read request, a new read request is performed according to a preset procedure. Determine the entry to be replaced with data.
  • the response speed at the time of data reading by the information processing unit is improved, and it is possible to maintain data consistency between each buffer and the shared resource.
  • the frequency of access to resources can be reduced.
  • the efficiency of resource utilization by an information processing unit that reads data in units of one word can be improved.
  • It is also possible to keep data in the buffer for a long time It is possible to distribute the access frequency to the shared resource.
  • the write buffer as in the read buffer shown in FIG. 6, if one entry is configured in units of several words of write data, when writing to consecutive addresses in units of one word, By integrating those write data in the write buffer, it is possible to combine the write processing to the shared resource at a time, and the number of accesses to the shared resource can be efficiently reduced.
  • write data from the information processing unit is held in the write buffer, and when no other access request to the shared resource occurs, when a read request to the same address occurs, the shared resource
  • the access efficiency of the shared resource is further improved and the data It is also possible to improve the read response speed.
  • FIG. 8 is a block diagram showing the configuration of the information processing apparatus according to the third embodiment of the present invention.
  • information processing units 101 to 103 and shared resources 108 to: L 10 are connected via a multilayer bus 107 and shared.
  • the configuration includes two bus interfaces 111 and 112 corresponding to the resource 108 and the shared resource 109.
  • the bus interfaces 111 and 112 include read buffers 113 and 114 and write notches 115 and 116.
  • the nos interfaces 111 and 112 and the shared resource 108 are connected via the first arbiter 117, and the bus interfaces 111 and 112 are connected.
  • the shared resource 109 are connected via the second arbiter 118.
  • the multi-layer bus 107 is an input / output interface provided corresponding to the information processing units 101 to 103, and the input stages 126 to 128, and the information processing units 101 to 103 address the shared resources 108 to 110.
  • Multiplexers 120 and 122 that arbitrate issued requests (access requests), and decoders 123 to transfer access requests issued from the information processing units 101 to 103 to the shared resource 108 to: L 10 125.
  • the shared resource 110 has a configuration including one bus interface as in the prior art, the access requests from the information processing units 101 to 103 are arbitrated by the multiplexers 120 and 122.
  • the shared resource 108 and the shared resource 109 that share the two bus interfaces 111 and 112 do not need to be devices of the same nature, and the latency and data transfer rates may be different. Since other configurations and processes are the same as those of the information processing apparatus according to the first and second embodiments, the description thereof is omitted.
  • the first and second shared resources 108, 109 can be transferred even if the read buffers 113, 114 and the write buffers 115, 116 are increased. The same effect as the embodiment can be obtained.
  • the effect of the present invention can be obtained for a plurality of memory resources. .
  • FIG. 9 is a block diagram showing the configuration of the information processing apparatus according to the fourth embodiment of the present invention.
  • the information processing apparatus is equipped with information processing units 201 to 203 and shared resources 208 and 209, and ⁇ blueprint processing units 202 and 203 and shared resources. 20 8 and 209 are connected via a multi-layer bus 207.
  • the shared resource 108 has two corresponding bus interfaces 211 and 212, and the information processing unit 201 and the bus interface 211 are connected by a dedicated bus 230.
  • the bus interface 212 is connected to the information processing units 202 and 203 via the multi-layer bus 207, and the bus interface 218 corresponding to the shared resource 209 is connected to the information processing units 202 and 203 via the multi-layer bus 207. Each is connected.
  • the multi-layer bus 207 is an input / output interface provided for the information processing units 202 and 203, and the input stages 227 and 228 and the information processing units 202 and 203 are also issued to the shared resources 208 and 209. Mediates various requests (access requests)
  • the configuration includes manoplexers 220 and 221, and decoders 224 and 225 for transferring access requests issued by the blueprint processing units 202 and 203 to the shared resources 208 and 209 as transmission destinations.
  • the bus 230 connecting the information processing unit 201 and the bus interface 211 is not based on the multi-layer 207 but is based on a different bus protocol. That is, the shared resource 208 has a configuration in which two buses with different rules are connected. Since other configurations and processes are the same as those of the information processing apparatus according to the first and second embodiments, the description thereof is omitted.
  • the read buffers 213 and 214, the write buffers 215 and 216, and the arbiter 217 are configured in the same manner as in the first and second embodiments, and the same processing is executed. By doing so, it is possible to obtain the same effects as those of the first and second embodiments while enabling access to the shared resource 208 from two buses having different rules. This makes it possible to efficiently share resources when two or more existing ASICs are integrated on a single chip.
  • a read-only interface, a write-only interface, or an interface that does not support exclusive processing access can be prepared, so that the cost of the information processing apparatus can be reduced.

Abstract

 バスの伝送速度やビット幅を拡大することなく、情報処理装置における共有リソースの利用効率を向上し、処理能力を向上する技術が開示される。少なくとも1つの共有リソースに複数のバスインタフェースを接続する。その複数のバスインタフェースをマルチレイヤーバスにそれぞれ接続する。さらにバスインタフェース毎に各々リードデータ及びライトデータを保持するデータバッファを備える。各バスインタフェースからのアクセス要求はアービタが調停し、共有リソースはアクセス権が与えられたアクセス要求に応じてデータの読み書きを行う。

Description

明 細 書
複数の処理ユニットでリソースを共有する情報処理装置
技術分野
[0001] 本発明は、複数の汎用または特定用途用のプロセッサを搭載したアプリケーション プロセッサ、あるいは専用 LSI、 ASIC (Application Specific Integrated Circuit) , SO C(System On Chip)等力も成る情報処理装置に関する。
背景技術
[0002] 複数の汎用または特定用途のプロセッサを搭載した従来の情報処理装置の一例を 図 1に示す。図 1は携帯電話機や携帯端末装置に搭載されるアプリケーションプロセ ッサの一例を示している。
[0003] 図 1に示すように、情報処理装置 301は、複数の情報処理ユニットと、各情報処理 ユニットで共通に利用される複数の共有リソースとを有し、それらが内部バス 312を介 して互いに情報の送受信が可能に接続された構成である。
[0004] 図 1に示すアプリケーションプロセッサの場合、情報処理ユニットは、 CPU302や D SP303等の汎用プロセッサ、あるいは DMAコントローラ(DMAC) 304、カメラコント ローラ 305、 LCDコントローラ 306等の周辺コントローラである。
[0005] また、共有リソースは、内蔵メモリである SRAM308、外部メモリである SDRAM(Sy nchronous Dynamic Random Access Memory)に对するァ ~~タの ¾mみ出し/ さ込み を制御する SDRAMコントローラ 307、外部メモリ(例えばフラッシュメモリ)が接続さ れる外部バスとのインタフェースである外部バスブリッジ 309、各種周辺デバイス 310 ゝ 311等である。
[0006] このような複数の情報処理ユニットを備えた情報処理装置では、装置設計や性能 検証を容易にするため、内部バス 312に標準バスを用い、それに対応して各情報処 理ユニットのバスインタフェースを設計する手法が一般的である。標準バスとしては、 例えば ARM社(英国ケンブリッジ)が提唱して 、る AMBA (Advanced Microcontrolle r Bus Architecture)を実現する AHB(Advanced High-performance Bus)が知られて いる。なお、 AHBについては、例えば米国特許第 5,740,461号明細書に詳しく説明さ れている。
発明の開示
[0007] し力しながら、図 1に示したような従来の情報処理装置では、動画再生のように負荷 が重 、処理を行う場合、内部バス 312のトラフィックの多くが画像データであるため、 CPU301等の処理で十分なバス帯域を確保することができず、処理性能が劣化する という問題が生じる。
[0008] このような問題を解決するには、例えば画像データ専用のバスを設ける等、複数の 独立したノ スを備えた構成が考えられる。し力しながら、このような構成では、各バス にメモリ等の複数の共有リソースをそれぞれ接続しなければならな 、ため、情報処理 装置のコストが上昇する問題がある。さらに、複数のバスを跨ってメモリに対してデー タの書き込みや読み出しを行う際にはアクセス制限や遅延が生じるなど、ソフトウェア の開発に制約が課されることが多いという問題も生じる。
[0009] なお、バス帯域を確保するための他の手法として、データバスのビット幅を拡げるこ とが考えられる。例えば 32ビット幅のデータバスを 64ビット幅に拡げればデータの転 送時間が半減することが期待できる。しかしながら、汎用プロセッサでは 32ビット幅以 下のデータの読み出し処理や書き込み処理も実行するため、バスのビット幅を拡大し ても十分な効果が得られな 、。
[0010] そのため、複数のバスを並列に備える Multi-Layer AHBと呼ばれるバス構造が上記 ARM社から提案されている。この Mult卜 Layer AHBの構成を図 2に示す。
[0011] 図 2に示すように、 Multi-Layer AHBは、複数の情報処理ユニット 401〜403 (図 2 では 3台)と複数の共有リソース(図 2では 4台) 408〜411とがマルチレイヤーバス 40 7を介して接続される構成である。情報処理ユニット 401〜403は、それぞれが備え るバスインタフェース 404〜406によってマルチレイヤーバス 407と接続され、共有リ ソース 408〜411は、それぞれが備えるバスインタフェース 412〜415によってマル チレイヤーバス 407と接続される。
[0012] マルチレイヤーバス 407は、情報処理ユニット 401〜403に対応して設けられた入 出力インタフェースである入力ステージ 427〜429と、共有リソース 408〜411に対 応して設けられた、各情報処理ユニット 401〜403から共有リソース 408〜411宛に 発行された各種リクエスト (アクセス要求)を調停するマルチプレクサ 420〜423と、情 報処理ユニット 401〜403から発行されたアクセス要求を送信先の共有リソース 408 〜411へ転送するための制御を行うデコーダ 424〜426とを有する構成である。
[0013] このような構成において、情報処理ユニット 401〜403から発行されたアクセス要求 は、それぞれが備えるバスインタフェース(BUS I/F) 404〜406を介してマルチレイ ヤーバス 407の入力ステージ(Input Stage) 416〜418へ送信される。
[0014] デコーダ(Decode) 419〜421は、入力ステージ(Input Stage) 416〜418で受信し たアクセス要求を解読し、その送信先の共有リソースに対応するマルチプレクサ (MU X)420〜423へ転送する。マルチプレクサ 420〜423は、情報処理ユニット 401〜4 03から発行されたアクセス要求を調停し、許可したアクセス要求力も順にバスインタ フェース(BUS I/F) 412〜415を介して共有リソース (Slave) 408〜411へ送信する。
[0015] このような構成では、複数の情報処理ユニット 401〜403から共有リソース 408〜4 11へ同時にアクセスする場合でも、競合が生じることなく同時にデータの送受信が可 能であり、バス帯域の実質的な拡大が実現できる。
[0016] ところで、近年、大容量メモリとして代表的に用いられる SDRAMは、データの書き 込みや読み出し制御が SRAM(Static Random Access Memory)等に比べて複雑で あり、アクセス要求を受け付けてから実際にデータが書き込まれるまで、あるいはデ ータを取得できるまでに遅延が生じる。但し、 SDRAMは複数ワード単位でデータの 読み出しや書き込みが可能であり、連続してコマンドを与えることで、高いデータの読 み出し Z書き込み速度が実現できる。さらに、 DDR(Double Data Rate) -SDRAM は、動作クロックの立ち上がり及び立下りのタイミングでそれぞれデータの書き込み z 読み出しが行われるため、通常の SDRAMの 2倍の速度で読み出し処理や書き込 み処理が可能になる。
[0017] この DDR— SDRAMを情報処理装置の外部メモリとして使用する場合、 DDR— S DRAMに接続するバスやブリッジの伝送速度やビット幅を DDR— SDRAMのそれ と同一にすると、 DDR— SDRAMの処理速度がバスの伝送速度を上回る。したがつ て、バスの伝送速度を 2倍にするか、ビット幅を 2倍にしてバスの伝送能力を DDR— SDRAMのデータ処理速度に一致させる必要がある。 [0018] し力しながら、バスの伝送速度を 2倍にすると配線による遅延や消費電力が増大す る問題が生じる。また、バスのビット幅を 2倍にすると、情報処理ユニットのビット幅と一 致しなくなるため、ビット幅を変換するデバイス等が必要になる。
[0019] DDR— SDRAMによる応答遅延の影響を緩和する手法として、上記 AHB等の高 性能バスでは、 Split Transactionと呼ばれるプロトコルを用意している。 Split
Transactionでは、例えば情報処理ユニットからメモリに対するデータ読み出し要求を メモリコントローラ(バスインタフェース)で受け付けると、該メモリコントローラはー且バ スを解放して読み出し処理を実行し、要求されたデータの読み出し処理が全て完了 した時点で、要求元の情報処理ユニットに対するバス接続を再び確立し、読み出した データを返送する。このようなプロトコルを利用することで、バスを解放している間に他 の情報処理ユニットからのメモリアクセス要求を受け付けることが可能になる。すなわ ち連続したコマンドの受け付けが可能になる。
[0020] しかしながら、このような手法では DDR— SDRAM自体の応答遅延は隠蔽できる 1S 上述した DDR— SDRAMの処理速度とバスの伝送能力の不均衡は解消しない 。また、 Split Transactionを採用しても、任意の情報処理ユニットからのリクエストを受 け付けて 、る間はデータ転送が実行できな 、ため、 DDR— SDRAMを十分に高!ヽ 効率で利用して ヽるとは言 ヽ難 ヽ。
[0021] さらに、 Split Transactionをサポートするハードウェアでは、情報処理ユニットのバス インタフェース、バスのアービタ、共有リソースのバスインタフェース等の論理複雑度 が増加する。そのため、 ARM社はリクエストとデータ転送を論理的に分離した AXI(A dvanced extensible Interface)を提案している力 論理的な複雑さが十分に改善され ているとは言い難い。また、従来のバス規約で作成されたモジュール等を接続するた めには、バス規約変換用のモジュールを用いるかバスインタフェースを再設計する必 要があった。
[0022] 本発明は上記したような従来の技術が有する問題点を解決するためになされたも のであり、バスの伝送速度やビット幅を拡大することなぐ共有リソースの利用効率を 向上させ、かつ処理能力を向上させることができる情報処理装置を提供することを目 的とする。 [0023] 上記目的を達成するため本発明の情報処理装置は、少なくとも 1つの共有リソース に複数のバスインタフェースを接続し、このバスインタフェースをマルチレイヤーバス にそれぞれ接続する。さらにバスインタフェース毎に各々リードデータ及びライトデー タを保持するデータバッファを備える。各バスインタフェース力ものアクセス要求はァ ービタにより調停し、共有リソースへのアクセス権を得たアクセス要求に応じてデータ の読み書き等を行う。
[0024] このような構成では、共有リソースに対応して複数のバスインタフェースがあるため、 Split Transactionを用いることなぐ複数のアクセス要求を共有リソース内で連続して スケジューリングすることが可能であり、 SDRAM等の応答遅延による影響を低減で きる。また、バスの伝送速度やビット幅を拡大することなぐ処理速度が異なる共有リソ ースに対するアクセスも可能になる。
[0025] また、共有リソースからリードバッファへのデータの読み出し処理あるいはライトバッ ファから共有リソースへのデータの書き込み処理を実行中でも、次のアクセス要求を 受け付けることができるため、共有リソースへ連続してアクセス要求を与えることが可 能であり、共有リソースの利用効率が向上する。
図面の簡単な説明
[0026] [図 1]携帯電話機や携帯端末装置に搭載されるアプリケーションプロセッサの構成を 示すブロック図である。
[図 2]Multi- Layer AHBの構成を示すブロック図である。
[図 3]本発明の情報処理装置の第 1の実施の形態の構成を示すブロック図である。
[図 4]図 3に示した情報処理装置のデータ読み出し時の動作を示すタイミングチヤ一 トである。
[図 5]図 3に示した情報処理装置のデータ書き込み時の動作を示すタイミングチヤ一 トである。
[図 6]第 2の実施の形態の情報処理装置が備えるリードバッファの構成を示すブロック 図である。
[図 7]図 6に示したリードバッファの動作を示すタイミングチャートである。
[図 8]本発明の情報処理装置の第 3の実施の形態の構成を示すブロック図である。 [図 9]本発明の情報処理装置の第 4の実施の形態の構成を示すブロック図である。
[図 10]SDRAM調停のための優先度決定アルゴリズムの一例を示すフローチャート である。
[図 11A]排他的なアクセスがあつたときのアービタ動作を示すフローチャートである。
[図 11B]排他的でないアクセスがあつたときのアービタ動作を示すフローチャートであ る。
[図 12]リードバッファにバッファスルーパスを備えた構成を示す図である。
[図 13]図 12に示した構成とした場合のデータ読み出し時の動作を示すタイミングチヤ ートである。
発明を実施するための最良の形態
[0027] 本発明の実施形態について図面を参照して詳細に説明する。
[0028] (第 1の実施の形態)
図 3は本発明の情報処理装置の第 1の実施の形態の構成を示すブロック図である
[0029] 図 3に示すように、第 1の実施の形態の情報処理装置は、複数の情報処理ユニット 1〜3 (図 3では 3台)と複数の共有リソース(図 3では 3台) 8〜10とを備え、それらがマ ルチレイヤーバス 7を介して接続された構成である。情報処理ユニット 1〜3は、それ ぞれが備えるバスインタフェース 4〜6によってマルチレイヤーバス 7と接続され、共有 リソース 9、 10はバスインタフェース 18、 19によってマルチレイヤーバス 7と接続され る。
[0030] 本実施形態では、複数の共有リソースのうち、任意の 1台の共有リソース (ここでは 共有リソース 8)に、マルチレイヤーバス 7と接続される 2つのバスインタフェース(BUS I/F) l l, 12を備えた構成である。ノ スインタフェース 11, 12は、共有リソース 8から読 み出されたデータを保持するリードバッファ 13, 14と、共有リソース 8へ格納するデー タを保持するライトバッファ 15、 16とを備えた構成である。ノ スインタフェース 11, 12 と共有リソース 8とは、共有リソース 8に対するアクセス要求を調停するアービタ 17を 介して接続される。
[0031] マルチレイヤーバス 7は、情報処理ユニット 1〜3に対応して設けられた入出力イン タフエースである入力ステージ 26〜28と、各情報処理ユニット 1〜3から共有リソース 8〜10宛に発行された各種リクエスト(アクセス要求)を調停するマルチプレクサ 20〜 22と、情報処理ユニット 1〜3から発行されたアクセス要求を送信先の共有リソース 8 〜10へ転送するためのデコーダ 23〜25とを有する構成である。なお、図 3では情報 処理ユニット及び共有リソースをそれぞれ 3台有する構成例を示して ヽるが、情報処 理ユニット及び共有リソースの数は 3台に限定されるものではなぐそれぞれ幾つであ つてもよい。
[0032] このような構成において、情報処理ユニット 1〜3から発行されたアクセス要求は、そ れぞれが備えるバスインタフェース 4〜6を介してマルチレイヤーバス 7の入力ステー ジ(Input Stage) 26〜28へ送信される。
[0033] デコーダ(Decode) 23〜25は、入力ステージ (Input Stage) 26〜28で受信したァク セス要求を解読し、送信先の共有リソースに対応するマルチプレクサ (MUX)20〜22 へ転送する。マルチプレクサ 20〜22は、情報処理ユニット 1〜3から発行されたァク セス要求を調停し、許可を与えたアクセス要求力も順にバスインタフェース (BUS I/F) 11、 12、 18, 19を介して共有リソース(Slave) 8〜: L 1へ送信する。
[0034] 図 3に示す情報処理装置では、共有リソース 8に対応して 2つのバスインタフェース 11 , 12を備え、情報処理ユニット 1から共有リソース 8へ発行されたアクセス要求はバ スインタフェース 11へ直接送信され、情報処理ユニット 2または情報処理ユニット 3か ら共有リソース 8へ発行されたアクセス要求はマルチプレクサ 20を介してバスインタフ エース 12へ送信される。また、情報処理ユニット 2及び情報処理ユニット 3から共有リ ソース 8へ発行されたアクセス要求はマルチプレクサ 20によって調停される。
[0035] 共有リソース 9、 10は、従来と同様に 1つのバスインタフェースを備えた構成である ため、マルチプレクサ 21、 22により情報処理ユニット 1〜3からのアクセス要求が調停 される。
[0036] このように、 1つの共有リソース 8に対応してバスインタフェースを複数備え、ァービ タ 17により共有リソース 8に対するアクセス要求を調停することで、 Split Transactionを 用いることなぐ複数の情報処理ユニットからのアクセス要求を連続してスケジユーリ ングすることが可能になる。 [0037] 一般に SDRAMでは、その特性上、同一バンクの異なるページに対して連続して アクセスするとき、ー且プリチャージを行って必要な時間が経過するまで、次のァクセ スのために ROWをオープンすることができない。また、リードとライトの切り替えには 一定の間隔が必要となる。本実施形態において、アービタ 17は、過去に実行したァ クセス要求と、その実行からの経過時間とカゝらバンク毎の SDRAMの状態を把握して おり、複数のリードバッファ 13, 14またはライトバッファ 15, 16からのアクセス要求に ついて、 SDRAMの特性および状態を考慮してアクセスするための時間が短く済む アクセス要求を選択するように調停を行う。アービタ 17は、例えば、アクセス要求があ ると、その優先度を決定し、その優先度に従って調停を行えばよい。これにより、シス テム全体として、 SDRAMのデータ帯域を有効に拡大することが可能になる。
[0038] 図 10は、 SDRAM調停のための優先度決定アルゴリズムの一例を示すフローチヤ ートである。ここでは、優先度 1〜9の 9段階の優先度があり、優先度 1が最も優先度 が高ぐ優先度 9が最も優先度が低いものとする。
[0039] 図 10を参照すると、アクセス要求があると、アービタ 17は、まず、そのアクセス要求 の実行にリードライトの切り替えが有るか否力判定する (ステップ 501)。リードライトの 切り替えがなければ、アービタ 17は、それがリード要求である力否力判定する (ステツ プ 504)。
[0040] ステップ 501にてリードライトの切り替えが無いと判定された場合、アービタ 17は、 同一 ROWに対するアクセスか否かを判定する(ステップ 502)。同一 ROWへのァク セスであれば、そのアクセス要求は優先度 1とされる。ステップ 502にて同一 ROWへ のアクセスでなければ、アービタ 17は、バンク競合が有る力否か判定する (ステップ 5 03)。バンク競合がなければ、そのアクセス要求は優先度 2とされ、バンク競合があれ ば、そのアクセス要求は優先度 7とされる。
[0041] また、ステップ 504にてリード要求と判定された場合、アービタ 17は、同一 ROWに 対するアクセスか否かを判定する(ステップ 505)。同一 ROWへのアクセスであれば 、そのアクセス要求は優先度 3とされる。ステップ 505にて同一 ROWへのアクセスで なければ、アービタ 17は、バンク競合が有る力否か判定する (ステップ 506)。バンク 競合がなければ、そのアクセス要求は優先度 4とされ、バンク競合があれば、そのァク セス要求は優先度 8とされる。
[0042] また、ステップ 504にてリード要求でないと判定された場合、アービタ 17は、同一 R OWに対するアクセスか否かを判定する(ステップ 507)。同一 ROWへのアクセスで あれば、そのアクセス要求は優先度 5とされる。ステップ 507にて同一 ROWへのァク セスでなければ、アービタ 17は、バンク競合が有る力否力判定する(ステップ 508)。 バンク競合がなければ、そのアクセス要求は優先度 6とされ、バンク競合があれば、そ のアクセス要求は優先度 9とされる。
[0043] このようにしてアービタ 17は、共有リソース 9へのアクセス要求の優先度を決定し、 優先度の高いアクセス要求力 優先的に選択するように調停を行う。その際、複数の アクセス要求が同一の優先度となった場合、任意の方法でいずれかのアクセス要求 を先に選択すればよい。例えば、同一優先度のアクセス要求の中力もランダムに選 択してもよぐまたラウンドロビンと呼ばれるポリシーで公平に選択してもよ!/、。
[0044] また、一般に、 SDRAMへのアクセスでは、同一バンク、同一 ROWに対するァクセ スについては、 ROWのオープンおよびプリチャージを 1回で済ますことができる。そこ で、本実施形態のアービタ 17は、同一バンク、同一 ROWへのアクセスを連続して選 択するように調停を行うこととしてもょ 、。
[0045] 例えば、情報処理ユニット 1から SDRAMの BANK=1、 ROW=10、 COLUMN=20の データライトアクセス要求と、情報処理ユニット 2から、同じく BANK=1、 ROW=10、 CO LUMN= 12のデータライトアクセス要求が生じたとする。それらの書き込みデータはラ イトバッファ 15、 16の各々に格納される。その場合、アービタ 17がそれらの要求を連 続して共有リソース 8の SDRAMに発行することにより、システムは、 BANK= 1、 ROW =10のページをオープンしたまま 2つのアクセス要求を連続して処理し、情報処理ュ ニット 1, 2の書き込みを連続して行ったのちにプリチャージによってページを閉じると いう操作が可能となる。これにより、性能向上とページオープンクローズ回数削減によ る省電力化を図ることが可能になる。
[0046] し力しながら、このようにデータ帯域だけを重視した調停では、調停に負け続けて実 際のアクセスがなかなかできないという事態が想定され、アクセス要求によってはデ ータ転送効率を落とす可能性がある。これに対して、アービタ 17は、各アクセス要求 について何回目の調停かをカウントしておくためのカウンタを備え、所定回数以上に なったアクセス要求については、 SDRAMの状態に関わらず優先的に選択すること ととしてもよ 、。
[0047] また、情報処理ユニット 1〜3の各々にデータ遅延の許容量に差がある場合がある 。その場合、 SDRAMの状態からデータ転送効率だけを重視して調停する方法では システムとして十分な調停とならない。それに対して、アービタ 17は、情報処理ュ-ッ ト 1〜3についてアクセス元としての優先度を予め定めておき、共有リソース 8へのァク セス要求があると、それがいずれの情報処理ユニットからのものかを特定し、アクセス 元としての優先度とデータ転送効率の双方を考慮して調停を行うこととしてもよい。
[0048] 一方、情報処理ユニット 1, 2の処理によっては、共有リソース 8のメモリに排他制御 により複数のメモリアクセスを不可分に行う必要がある。その一連のメモリアクセスの 間、他の情報処理ユニットがそのメモリ領域にアクセスしないことをノヽードウエアによつ て保証する。これは、例えば ARM社力も供給される ARM926プロセッサの命令セッ トでは、 SWAPという命令によって定義されている。この SWAP命令では、同一アドレス に対してリード要求とライト要求を連続して不可分に行うため、このリード要求とライト 要求の間に他のアクセスを許可せず AHBバスをロックし、結果的にメモリをロックする
[0049] 図 3に示した情報処理装置では、共有リソース 8は複数のバスインタフェース 11, 1 2によってマルチレイヤーバス 7に接続されている。そのため、 1つのバスインタフエ一 スでノスをロックするだけでは、共有リソース 8は完全にはロックされない。例えば、情 報処理ユニット 2が共有リソース 8に対してロックを行うと、ノ スインタフェース 12に接 続されるバスはロックされ、情報処理ユニット 3力ものアクセスは行えなくなる。しかし、 情報処理ユニット 1は他のバスインタフェース 11を介しているため共有リソース 8にァ クセスすることができてしまう。その結果、情報処理ユニット 2による共有リソース 8への 不可分なアクセスが保証できなくなる。
[0050] これに対して、一例として、バスインタフェース 12にてロックによる共有リソース 8へ のアクセス要求があると、複数のアクセスが不可分に行われることを保証するために、 共有リソース 8に関する全てのリードバッファ 13, 14の内容をクリアし、またライトバッ ファ 15, 16の内容を共有リソース 8へ反映させる。そして、その処理の後にバスインタ フェース 11を介した共有リソース 8へのアクセスの受け付けを一時的に保留とする処 理を行って情報処理ユニット 2からの複数のアクセス要求を不可分に処理することとし てもよい。これにより、共有リソース 8への排他的なアクセスが可能となる。バスァービ タ 17は、この間、他のアクセスを調停に参加させないようにする。
[0051] し力し、この方法では、共有リソース 8への排他アクセス中は、共有リソース 8の排他 領域に関係しな 、アドレスへのアクセスも全て待たされることとなる。この制御が性能 に与えるインパクトは大きい。
[0052] そこで、他の例として、排他アクセスを行うアドレスを一定の範囲に絞ることとしても よい。これによれば、共有リソース 8の利用効率の低下を抑制しつつ、排他アクセスを 実現することができる。図 11は、排他アクセスを可能にするアービタ動作を示すフロ 一チャートである。
[0053] 図 11Aにおいて、排他的なアクセス要求があると、アービタ 17は、まず、排他ァクセ ス中の情報処理ユニットが他に存在するか否力確認する (ステップ 601)。他に排他 アクセス中の情報処理ユニットがあれば、その排他アクセスが終了するまで待ち合わ せる(ステップ 606)。
[0054] 排他アクセス中の他の情報処理ユニットがない状態で、アービタ 17は、アクセス要 求のアドレスと、リードバッファおよびライトバッファに格納されているアドレスとを比較 し (ステップ 602)、アクセス要求のアドレスと同一のアドレスがリードバッファまたはラ イトバッファに存在する力否か判定する (ステップ 603)。
[0055] 同一アドレスがリードバッファまたはライトバッファにあれば、アービタ 17は、リードバ ッファの無効化、またはライトバッファの内容の共有リソース 8への書き戻しを行う(ス テツプ 604)。
[0056] ステップ 603の判定において同一アドレスがリードバッファおよびライトバッファに存 在しないとき、またはステップ 604の処理の後、アービタ 17は、通常のァービトレーシ ヨンとして、共有リソース 8に対して一連の排他アクセスを許可する(ステップ 605)。
[0057] 一方、図 11Bにおいて、排他的でないアクセス要求があると、アービタ 17は、他に 排他アクセスが存在する力否力確認する(ステップ 607)。他に排他アクセスが存在し なければ、アービタ 17は、通常のアービトレーションとして、共有リソース 8に対するァ クセスを許可する(ステップ 610)。
[0058] ステップ 607の判定において他に排他アクセスが存在すれば、アービタ 17は、その 排他アクセスと同一アドレスへのアクセス要求か否か判定する(ステップ 608)。同一 アドレスでなければ、アービタ 17は、排他アクセスと無関係に、通常のァービトレーシ ヨンとして、共有リソース 8に対するアクセスを許可する(ステップ 610)。
[0059] ステップ 608の判定において、他の排他アクセスと同一アドレスに対するアクセス要 求であれば、アービタ 17は、その排他アクセスが終了するまで待ち合わせ (ステップ 609)、ステップ 607の処理に戻る。
[0060] なお、ここで同一アドレスとは同一のアドレス範囲のことを指しており、リードバッファ あるいはライトバッファに格納されるデータ領域に相応する。
[0061] また、本実施形態のおいて、このような排他アクセスを行えるバスを 1つに制限する こととしてもよい。それにより、他に排他アクセス中の情報処理ユニットがある力否か判 定するステップ 601の処理が不要となり、また、同時に複数の情報処理ユニットが排 他アクセスを行う場合の競合による論理的複雑性も解消される。
[0062] また、 1つの共有リソース 8に対応して 2つのバスインタフェース 11, 12を備えること で、情報処理ユニット 1〜3が備えるバスインタフェース 4〜6、あるいは他の共有リソ ース 9, 10が備えるバスインタフェース 18, 19等を、仕様を変更することなく接続する ことができる。
[0063] さらに、共有リソース 8からリードバッファへのデータの読み出し処理あるいはライト バッファから共有リソースへのデータの書き込み処理を実行中でも、次のアクセス要 求を受け付けることができるため、共有リソース 8へ連続してアクセス要求を与えること が可能であり、共有リソース 8の利用効率が向上する。
[0064] 次に、本実施形態の情報処理装置の動作につ!、て、マルチレイヤーバス 7の伝送 速度に対して共有リソース 8の処理速度が 2倍である場合 (例えば共有リソース 8が D DR— SDRAMの場合)を例にして説明する。
[0065] まず、情報処理ユニット 1により共有リソース 8からデータを読み出す場合の動作に ついて図 4を用いて説明する。図 4は図 3に示した情報処理装置のデータ読み出し 時の動作を示すタイミングチャートである。
[0066] 図 4に示すように、情報処理ユニット 1から共有リソース 8にデータの読み出し要求( 以下、リード要求と称す)が発行されると、該リード要求はバスインタフェース 4を介し て T1のタイミングでマルチレイヤーバス 7へ送信される。デコーダ 23は、マルチレイ ヤーバス 7の入力ステージ 26が情報処理ユニット 1からのリード要求を受信すると、該 リード要求に含まれるアクセス先のアドレスを基に共有リソース 8へのアクセス要求で あると判断し、該リード要求をバスインタフェース 11へ転送する。
[0067] バスインタフェース 11は、 T2のタイミングでこのアクセス要求を受理し、リード要求 であると判断すると、リードバッファ 13を介してアービタ 17に該リード要求を転送する
[0068] アービタ 17による調停で共有リソース 8へのアクセス要求が許可されると、リードバッ ファ 13は T3のタイミングで共有リソース 8からのデータの読み出し処理を開始する(R ead起動)。ここでは、共有リソース 8がマルチレイヤーバス 7の 2倍の伝送能力を備え 、 4ワード単位でデータが読み出されるとする。その場合、リードバッファ 13へは、図 4 に示す T3の後半から T5のタイミングで読み出されたデータ(以下、リードデータと称 す)が格納される。
[0069] また、リードバッファ 13は、 T4のタイミングから情報処理ユニット 1へのデータ返送を 開始する。情報処理ユニット 1に対するリードデータの転送は、共有リソース 8からリー ドバッファ 13へのデータ転送よりも時間を要するため、図 4に示す T7のタイミングで データ転送が完了する。
[0070] 共有リソース 8は、図 4に示す T5の後半のタイミング力 待機状態となるため、 T6の タイミングからリードバッファ 14またはライトバッファ 15, 16を介したアクセス要求の処 理が可能となる。
[0071] 一方、図 3に示したリードバッファ 13、 14について、ノ スインタフェース 11とァービ タ 17をバッファを通らずに結ぶパス(以下「バッファスルーパス」という)を設けることと してもよい。図 12は、リードバッファにバッファスルーパスを備えた構成を示す図であ る。図 12を参照すると、リードバッファ 702を通らないバッファスルーパス 701が設け られ、リードバッファ 702をスルーすることができるような構成となっている。この構成 によれば、リードアクセスについて、データ応答サイクルを短縮することができる。
[0072] 図 13は、図 12に示した構成とした場合のデータ読み出し時の動作を示すタイミン グチャートである。図 13を参照すると、情報処理ユニットへのデータ応答のタイミング だけが図 4に示したタイミングチャートと異なっている。
[0073] 図 13の例では、最初のデータ転送 R1では、バッファスルーパス 701により T3サイ クルにてデータ応答が行われている。その後のデータ転送 R2〜R4では、データ応 答が通常のリードバッファ 702を介して T4〜T6サイクルで行われる。その結果、図 4 に示した例よりも 1サイクル分だけ早くデータ転送が完了している。
[0074] 次に、情報処理ユニット 1から共有リソース 8へデータを格納する場合の動作につい て図 5を用いて説明する。
[0075] 図 5は図 3に示した情報処理装置のデータ格納時の動作を示すタイミングチャート である。
[0076] 図 5に示すように、情報処理ユニット 1から共有リソース 8にデータの書き込み要求( 以下、ライト要求と称す)が発行されると、該ライト要求は、リード要求時と同様にバス インタフェース 4を介して T1のタイミングでマルチレイヤーバス 7へ送信される。デコ ーダ 23は、マルチレイヤーバス 7の入力ステージ 26が情報処理ユニット 1からライト 要求を受信すると、該ライト要求に含まれるアクセス先のアドレスを基に共有リソース 8 へのアクセス要求であると判断し、該ライト要求をバスインタフェース 11へ転送する。
[0077] バスインタフェース 11は、 Τ2のタイミングでこのアクセス要求を受理し、ライト要求で あると判断すると、ここでは Τ2から Τ5のタイミングで 4ワード分の書き込み用のデータ (以下、ライトデータと称す)を受信する。
[0078] ライトバッファ 15は、 Τ5のタイミングでライトデータの受信を完了すると、 Τ6の前半 のタイミングでアービタ 17に対してライト要求を送信する。
[0079] アービタ 17による調停で共有リソース 8へのアクセス要求が許可されると、ライトバッ ファ 15は Τ7のタイミングから共有リソース 8への書き込み処理を開始 (Write起動)し 、 T7〜T8のタイミングで 4ワード分のライトデータを共有リソース 8へ格納する。
[0080] したがって、ライトバッファ 15による共有リソース 8への書き込み処理を実行している 間、リードバッファ 13, 14あるいはライトバッファ 16を介したアクセス要求の処理が可 能となる。
[0081] また、共有リソースの処理速度がバスの伝送速度を上回る場合にも、情報処理ュ- ットから共有リソースへの書き込み時には、ー且バッファに一定量のデータを格納し た後、共有リソースに共有リソースの処理速度でデータを書き込み、データを読み出 す場合は、共有リソースからバッファにデータを書きこみつつ、バスの転送速度で情 報処理ユニットに応答できる。逆にバスの伝送速度が速い場合も、リードバッファある いはライトバッファによってデータを一時的に蓄えることにより、バスに不必要な待ち 受け処理を実行しなくても済むためバスの利用効率が向上する。
[0082] これは、本実施形態においてバスインタフェース 11に対してリードバッファ 13およ びライトバッファ 15を備え、バスインタフェース 12に対してリードバッファ 14およりライ トバッファ 16を備えるというように、リードバッファおよびライトバッファの双方を備えた バスインタフェースにより実現されて 、る。
[0083] ところで、図 3に示した構成では、バスインタフェース 11、 12が備えるリードバッファ 13, 14及びライトバッファ 15, 16を介して受信したアクセス要求をアービタ 17により 調停し、共有リソース 8に対するアクセス順序を決定している。ここで、アクセスするァ ドレスが異なる場合は、上述したようにリード要求を優先して処理することで情報処理 装置としての処理速度の向上が期待できる。これは、リード要求に対するリードバッフ ァへのデータ転送待ちの時間を短縮することで、情報処理ユニットによる共有リソース 8からの応答待ち時間が短縮されるためである。
[0084] しかしながら、異なる情報処理ユニットあるいは同一の情報処理ユニットから同一の アドレスに対して複数のアクセス要求が発行された場合はアクセス要求の受け付け順 序を維持する必要がある。
[0085] 例えば、ライトバッファに格納されたデータの書き込みアドレスと同一のアドレスから 引き続きデータを読み出す場合、ライトバッファのデータをメモリ(共有リソース)へ格 納した後に読み出し処理を実行しないと、更新前のデータを読み出すことになる。ま た、異なる情報処理ユニットから同一のアドレスへデータを書き込む場合、 2つのァク セス要求の順序を維持しなければ、メモリ内のデータは正しく更新されな!、。
[0086] そこで、本実施形態の情報処理装置では、バスインタフェース 11, 12にそれぞれ 不図示のアドレス比較器を備えていてもよい。アドレス比較器は、例えば共有リソース
8に対する新たなライト要求をライトバッファ 15で受信すると、ライトバッファ 16内に格 納されたライトデータとその書き込みアドレスをそれぞれ比較する。そして、同一アド レスへ格納するライトデータがある場合は、そのデータが共有リソース 8へ格納される まで受信した新たなライト要求をアービタ 17へ転送しないように制御する。また、同時 にリードバッファ 13, 14内に読み出し処理が完了していないリードデータがある場合 は、それらの読み出しアドレスとそれぞれ比較する。そして、新たに受信したライト要 求のアドレスと同一アドレス力もデータが読み出されている場合は、その読み出し処 理が完了するまで受信した新たなライト要求をアービタ 17へ転送しないように制御す る。
[0087] このような処理を行うことで、アービタ 17はバスインタフェース 11、 12にアクセス要 求が到着する順序に関係なく調停を行うことが可能になり、リード要求の処理をライト 要求の処理よりも優先することで、情報処理装置としての性能を向上させることができ る。
[0088] なお、情報処理ユニット 1〜3、リードバッファ 13, 14、並びにライトバッファ 15, 16 には予め処理の優先度を設定しておいてもよい。その場合、アービタ 17は、共有リソ ース 8に対する複数のアクセス要求を受信すると、予め設定された優先度にしたがつ て、より優先度の高い情報処理ユニットまたはバッファからのアクセス要求を優先的に 許可する。
[0089] このような処理を行うことで、例えば、より速い応答を要望する情報処理ユニットがあ る場合は、その情報処理ユニットからのリード要求に対する応答時間を短縮できる。 特に優先度の設定を、ソフトウェア等によって書換え可能なレジスタに格納すれば、 より柔軟なシステムが構築できる。
[0090] 但し、情報処理ユニットや各バッファに優先度を設定する場合も、リードバッファある いはライトバッファ内のデータと同一のアドレスに対するアクセス要求が発行された場 合は、それらのアクセス要求の受け付け順序を維持する必要がある。
[0091] 例えば、ライト要求に続いて同一アドレスに対するリード要求が発行された場合、ラ イトバッファ中のデータの共有リソースへの格納が完了しなければ、続いて発行され たリード要求を処理することはできない。その場合、ライトバッファ内のデータの書き 込み処理を優先する必要がある。上述したバスインタフェース 11, 12では、ライト要 求の優先度カ^ード要求の優先度よりも低く設定されてしまう。
[0092] そこで、同一のアドレスに対するアクセス要求が発行された場合、ライトバッファ 15, 16はライト要求の優先度をリード要求と同等またはそれよりも高く設定してアービタ 1 7に調停を要求する。アービタ 17は、優先度の高いライト要求を優先的に許可するた め、ライトバッファ内のデータが共有リソース 8へ優先的に格納される。
[0093] なお、バスインタフェース 11, 12は、優先度が低いことでアクセス権を得ることがで きな 、状態が続 、た場合は、そのアクセス要求を発行した情報処理ユニットやバッフ ァの優先度を上げてもよぐ共有リソース 8に対応する複数のバスインタフェースのうち 、一方のバスインタフェースからのアクセス要求の優先度を上げる等の処理も可能で ある。
[0094] (第 2の実施の形態)
次に本発明の情報処理装置の第 2の実施の形態について図面を用いて説明する
[0095] 第 2の実施の形態の情報処理装置は、共有リソース力もリードバッファに読み出した データを、読み出し応答終了後も可能な限り保持しておき、後続するアクセス要求が 同一のアドレスに対するリード要求だった場合は、共有リソース 8へアクセスすることな くリードバッファ力も情報処理ユニットへリードデータを送信する構成である。
[0096] 図 6は第 2の実施の形態の情報処理装置が備えるリードバッファの構成を示すプロ ック図である。なお、図 6に示すリードバッファは 4つのエントリによって構成される例を 示している。
[0097] 図 6に示すように、各エントリには、複数ワード(図 6では 4ワード)のリードデータが 格納されるデータ領域 53と、データ領域 53に格納されたリードデータが有効である か無効であるかを示す状態ビット 52と、リードデータのアドレス (例えば先頭アドレス) を示すアドレスタグ 51と、アドレスタグ 51とアクセス要求力 抽出されたアクセス先の アドレスとを比較するアドレス比較器 54とをそれぞれ備えている。
[0098] 状態コントローラ 55は、アドレス比較器 54による比較結果を収集し、該比較結果に 基づき各状態ビット 52をそれぞれ更新する。データ領域 53には共有リソース 8から読 み出されたリードデータが格納され、データ領域 53内のリードデータはノ スインタフ エース 11または 12へ送出される。
[0099] 図 7は図 6に示したリードバッファの動作を示すタイミングチャートである。
[0100] 図 7に示すように、第 2の実施の形態の情報処理装置では、例えば情報処理ュニッ ト 1から共有リソース 8へリード要求が発行されると、第 1の実施の形態と同様に該リー ド要求はバスインタフェース 4を介してマルチレイヤーバス 7へ送信され、デコーダ 23 による解読結果にしたがってバスインタフェース 11へ転送される。
[0101] バスインタフェース 11は、 T2のタイミングでこのアクセス要求を受理し、リード要求 であると判断すると、アドレス比較器 54により各エントリのアドレスタグ 51と該リード要 求に含まれるアクセス先のアドレスとを比較する。そして、アクセス先のアドレスとアド レスタグ 51の値が同一であり、かつ状態ビット 52が有効を示すエントリがある場合、 バスインタフェース 11は、共有リソース 8へのアクセスは不要と判断し、 T3のタイミン ダカもリードバッファ内の当該エントリのデータ領域 53で保持するリードデータを情報 処理ユニット 1へ返送する。
[0102] 状態コントローラ 55は、共有リソース 8からデータを読み出しデータ領域 53に格納 したとき当該エントリの状態ビット 52を有効に設定し、アドレス比較器 54により同じァ ドレスに対するデータの書き込みを検出したとき、当該エントリの状態ビット 52を無効 に設定する。また、新たなリード要求を受信したとき、全てのエントリに有効なデータ が格納され、かつそれらのアドレスが当該リード要求によるアクセス先のアドレスと異 なる場合は、予め設定した手順にしたがって新たなリードデータに置き換えるエントリ を決定する。
[0103] 本実施形態の情報処理装置によれば、情報処理ユニットによるデータ読み出し時 の応答速度が改善されるとともに、各バッファと共有リソース間のデータの整合性を保 つことが可能となり、共有リソースへのアクセス頻度を低減できる。特に共有リソースか ら複数ワード単位でデータを読み出し、それらのデータをリードバッファで保持してお けば、主として 1ワード単位でデータを読み出す情報処理ユニットによるリソースの利 用効率を向上させることができる。また、データをバッファ内に長期に保持することが 可能となり、共有リソースへのアクセス頻度を分散させることも可能である。
[0104] なお、ライトバッファにおいても、図 6に示したリードバッファと同様に、数ワードのラ イトデータ単位で 1つのエントリを構成すれば、 1ワード単位の連続したアドレスに対 する書き込み処理時に、それらのライトデータをライトバッファで統合することで共有リ ソースへの書き込み処理を 1度にまとめることが可能であり、共有リソースへのァクセ ス回数を効率的に減らすことができる。
[0105] また、情報処理ユニットからのライトデータをライトバッファに保持しておき、共有リソ ースへの他のアクセス要求が生じな 、とき、同一のアドレスに対するリード要求が生じ たとき、共有リソースが特定の状態でない時まで、実際の共有リソースへの書き込み を遅らせる等、ライト要求の順序にこだわることなく共有リソースへの書き込みを行うこ とで、共有リソースのアクセス効率をさらに向上させるとともに、データの読み出し応 答速度を向上させることも可能である。
[0106] (第 3の実施の形態)
図 8は本発明の情報処理装置の第 3の実施の形態の構成を示すブロック図である
[0107] 図 8に示すように、第 3の実施の形態の情報処理装置は、情報処理ユニット 101〜 103と共有リソース 108〜: L 10とがマルチレイヤ—バス 107を介して接続され、共有リ ソース 108及び共有リソース 109に対応して 2つのバスインタフェース 111、 112を備 えた構成である。バスインタフェース 111、 112は、リードバッファ 113, 114及びライト ノ ッファ 115, 116を備え、ノ スインタフェース 111、 112と共有リソース 108とは第 1 のアービタ 117を介して接続され、バスインタフェース 111、 112と共有リソース 109と は第 2のアービタ 118を介して接続される。
[0108] マルチレイヤーバス 107は、情報処理ユニット 101〜103に対応して設けられた入 出力インタフェースである入力ステージ 126〜128と、各情報処理ユニット 101〜10 3から共有リソース 108〜110宛に発行された各種リクエスト(アクセス要求)を調停す るマルチプレクサ 120、 122と、情報処理ユニット 101〜103から発行されたアクセス 要求を送信先の共有リソース 108〜: L 10へ転送するためのデコーダ 123〜125とを 有する構成である。 [0109] 共有リソース 110は、従来と同様に 1つのバスインタフェースを備えた構成であるた め、マルチプレクサ 120、 122により情報処理ユニット 101〜103からのアクセス要求 が調停される。
[0110] なお、 2つのバスインタフェース 111、 112を共有する共有リソース 108と共有リソー ス 109とは、同じ性質の装置である必要はなぐレイテンシゃデータ転送速度が異な つていてもよい。その他の構成及び処理は第 1及び第 2の実施の形態の情報処理装 置と同様であるため、その説明は省略する。
[0111] 本実施形態の情報処理装置によれば、リードバッファ 113、 114及びライトバッファ 115、 116を増やすことなぐ転送速度が異なる複数の共有リソース 108、 109〖こつ いても第 1及び第 2の実施の形態と同様の効果を得ることができる。
[0112] 例えば SOC等の外部に接続するメモリコントローラと内蔵メモリを統合的に扱い、デ ータ転送速度の差を吸収すれば、本発明の効果を複数のメモリリソースに対して得る ことができる。
[0113] (第 4の実施の形態)
図 9は本発明の情報処理装置の第 4の実施の形態の構成を示すブロック図である
[0114] 図 9に示すように、第 4の実施の形態の情報処理装置は、情報処理ユニット 201〜 203と共有リソース 208、 209とを備免、†青報処理ユニット 202, 203と共有リソース 20 8、 209とがマルチレイヤーバス 207を介して接続された構成である。
[0115] 共有リソース 108は、対応する 2つのバスインタフェース 211、 212を備え、情報処 理ユニット 201とバスインタフェース 211とが専用のバス 230で接続された構成である
[0116] バスインタフェース 212はマルチレイヤーバス 207を介して情報処理ユニット 202、 203とそれぞれ接続され、共有リソース 209に対応するバスインタフェース 218はマ ルチレイヤーバス 207を介して情報処理ユニット 202、 203とそれぞれ接続される。
[0117] マルチレイヤーバス 207は、情報処理ユニット 202、 203に対応して設けられた入 出力インタフェースである入力ステージ 227、 228と、各情報処理ユニット 202、 203 力も共有リソース 208、 209宛に発行された各種リクエスト(アクセス要求)を調停する マノレチプレクサ 220、 221と、†青報処理ユニット 202、 203力ら発行されたアクセス要 求を送信先の共有リソース 208、 209へ転送するためのデコーダ 224、 225とを有す る構成である。
[0118] 情報処理ユニット 201とバスインタフェース 211とを接続するバス 230は、マルチレ ィヤーノ ス 207に準拠するものではなぐ異なるバス規約に基づくものが用いられる。 すなわち、共有リソース 208には、異なる規約の 2つのバスが接続された構成となる。 その他の構成及び処理は第 1及び第 2の実施の形態の情報処理装置と同様である ため、その説明は省略する。
[0119] 本実施形態の情報処理装置では、リードバッファ 213及び 214、ライトバッファ 215 及び 216、並びにアービタ 217を第 1及び第 2の実施の形態と同様の構成とし、さら に同様の処理を実行すれば、異なる規約の 2つのバスから共有リソース 208へのァク セスを可能にしつつ、第 1及び第 2の実施の形態と同様の効果を得ることができる。こ れにより既存の 2種類以上の ASICなどを 1チップに集積するような場合に、効率的に リソースの共有ィ匕が実現できる。
[0120] また、このような構成では、例えば読み出し専用インタフェースや書き込み専用イン タフエース、排他処理アクセスをサポートしないインタフェース等、機能を削ったインタ フェースを用意できるため、情報処理装置のコストを低減できる。

Claims

請求の範囲
[1] 複数の情報処理ユニットと、
前記情報処理ユニットからのアクセス要求に応じて返送するためのリードデータを 一時的に保持するリードバッファ、および前記情報処理ユニットから受信したライトデ ータを一時的に保持するライトバッファをそれぞれ有する複数のバスインタフェースと 、前記情報処理ユニットから発行された複数のアクセス要求を調停するアービタとを 有し、前記情報処理ユニットからアクセスされる共有リソースと、
前記情報処理ユニットと前記共有リソースを接続するバスと、
を有する情報処理装置。
[2] 前記リードバッファは、
前記共有リソースの処理速度で前記共有リソースから前記リードデータを格納し、 前記バスの伝送速度で前記情報処理ユニットへ該リードデータを送信し、
前記ライトバッファは、
前記バスの伝送速度で前記情報処理ユニットから受信した前記ライトデータを格納 し、前記共有リソースの処理速度で該ライトデータを前記共有リソースへ書き込む、請 求項 1記載の情報処理装置。
[3] 前記ノ スインタフェースは、
前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるァク セス先のアドレスと前記リードバッファ及び前記ライトバッファで既に保持されたデー タに対応するアクセス先のアドレスを比較し、
前記リードバッファ及び前記ライトバッファで保持されたデータに対応するアクセス 先のアドレスと同じアドレスに対するアクセス要求である場合は、前記共有リソースか ら該リードバッファへの前記リードデータの格納が完了した後、または該ライトバッファ で保持されたライトデータの前記共有リソースへの書き込みが完了した後に前記ァー ビタに該アクセス要求を送信するアドレス比較器をさらに有する、請求項 1記載の情 報処理装置。
[4] 前記情報処理ユニット、前記リードバッファ、または前記ライトバッファに予め所定の 優先度が付与され、 前記アービタは、
前記共有リソースに対する複数のアクセス要求を受信すると、該優先度にしたがつ た順に該アクセス要求を許可する、請求項 1記載の情報処理装置。
[5] 前記ノ スインタフェースは、
前記リードバッファ及び前記ライトバッファで保持されたデータに対応するアクセス 先のアドレスと同じアドレスに対するアクセス要求を受信した場合、該リードバッファへ の前記共有リソースからの前記リードデータの読み出し処理または該ライトバッファか ら前記共有リソースへの前記ライトデータの書き込み処理の優先度を上げる、請求項 4記載の情報処理装置。
[6] 前記リードバッファは、
前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるァク セス先のアドレスと前記リードバッファで既に保持されたリードデータに対応するァク セス先のアドレスを比較し、
前記リードバッファで保持されたリードデータに対応するアクセス先のアドレスと同じ アドレスに対するアクセス要求である場合は、前記共有リソース力 該リードデータを 読み出すことなぐ前記リードバッファで保持されたリードデータを該情報処理ュ-ッ トへ返送する、請求項 1記載の情報処理装置。
[7] 前記ライトバッファは、
前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるァク セス先のアドレスと前記ライトバッファで既に保持されたライトデータに対応するァクセ ス先のアドレスを it較し、
前記ライトバッファで保持されたライトデータに対応するアクセス先のアドレスと連続 するアドレスに対するアクセス要求である場合は、前記ライトバッファで保持されたラ イトデータと該情報処理ユニットから受信したライトデータをまとめて共有リソースへ格 納する、請求項 1記載の情報処理装置。
[8] 前記複数のバスインタフェースが、
複数の共有リソースに対応して共通に設けられた、請求項 1記載の情報処理装置。
[9] 複数のバスインタフェースは、 それぞれが異なるバス規約である、請求項 1記載の情報処理装置。
[10] 前記共有リソースが SDRAMによる主記憶であり、
前記アービタは、前記 SDRAMの状態を把握しており、該状態に基づいて、優先 的に選択するアクセス要求を決定する、請求項 1記載の情報処理装置。
[11] 前記アービタは、発行されてからの調停回数が所定回数を経過したアクセス要求に ついては前記 SDRAMの状態に関わらず優先的に選択する、請求項 10記載の情 報処理装置。
[12] 単一の共有リソースに備えられた複数の前記バスインタフェースは、アクセス要求が あると、該アクセス要求を発行した情報処理ユニットを特定し、
前記単一の共有リソースに備えられた前記アービタは、前記情報処理ユニットの各 々に対して優先度を予め定めており、前記バスインタフェースで特定された情報処理 ユニットの前記優先度にしたがって調停を行う、請求項 1記載の情報処理装置。
[13] 前記共有リソースにアクセスを行う情報処理ユニットが、他の情報処理ユニットによる 該共有リソースに対するアクセスの禁止をすると、
禁止をした前記情報処理ユニットからのアクセスに用いられるバスインタフェースに 加えて、該バスインタフェースと同じ前記共有リソースに備えられた他のバスインタフ エースによる前記共有リソースへのアクセスが禁止される、請求項 1記載の情報処理 装置。
[14] 他の情報処理ユニットによる該共有リソースに対するアクセスを禁止するための機能 を、単一の共有リソースに備えられた複数の前記バスインタフェースのうち 、ずれか 1 つだけに持たせた、請求項 13記載の情報処理装置。
[15] 前記共有リソースにアクセスを行う情報処理ユニットが他の情報処理ユニットによる該 共有リソースの特定アドレス領域に対するアクセスの禁止をすると、
禁止をした前記情報処理ユニットからのアクセスに用いられるバスインタフェースに 加えて、該バスインタフェースと同じ前記共有リソースに備えられた他のバスインタフ エースによる前記共有リソースの前記特定アドレス領域に対するアクセスが禁止され る、請求項 1記載の情報処理装置。
[16] 他の情報処理ユニットによる該共有リソースに対するアクセスを禁止するための機能 を、単一の共有リソースに備えられた複数の前記バスインタフェースのうち 、ずれか 1 つだけに持たせた、請求項 15記載の情報処理装置。
前記リードバッファは、該リードバッファを介さずにデータを転送するスルーパスを備 え、所定のサイクルにおいて、前記共有リソースからのデータを前記スルーノ スによ つて前記情報処理ユニットに応答する、請求項 1記載の情報処理装置。
PCT/JP2005/016087 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置 WO2006030650A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/663,036 US7650453B2 (en) 2004-09-16 2005-09-02 Information processing apparatus having multiple processing units sharing multiple resources
JP2006535714A JP4737438B2 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004-269884 2004-09-16
JP2004269884 2004-09-16
JP2005225389 2005-08-03
JP2005-225389 2005-08-03

Publications (1)

Publication Number Publication Date
WO2006030650A1 true WO2006030650A1 (ja) 2006-03-23

Family

ID=36059905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/016087 WO2006030650A1 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置

Country Status (3)

Country Link
US (1) US7650453B2 (ja)
JP (1) JP4737438B2 (ja)
WO (1) WO2006030650A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252090A (ja) * 2009-04-16 2010-11-04 Rohm Co Ltd 半導体装置
CN113032298A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113032299A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于处理请求的总线系统、集成电路装置、板卡及保序方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4874165B2 (ja) * 2006-07-07 2012-02-15 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
US7596647B1 (en) 2006-09-18 2009-09-29 Nvidia Corporation Urgency based arbiter
US8122078B2 (en) * 2006-10-06 2012-02-21 Calos Fund, LLC Processor with enhanced combined-arithmetic capability
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
US8321869B1 (en) * 2008-08-01 2012-11-27 Marvell International Ltd. Synchronization using agent-based semaphores
JP5487587B2 (ja) * 2008-09-29 2014-05-07 富士通株式会社 アクセス制御方法及び計算機システム
CN101847043B (zh) * 2009-03-25 2012-11-21 联想(北京)有限公司 共用存储设备的方法及移动终端
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US8489791B2 (en) 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge security feature for network processors or the like
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8356054B2 (en) * 2009-11-10 2013-01-15 International Business Machines Corporation Management of resources in a host system
TWI526828B (zh) * 2011-02-15 2016-03-21 群聯電子股份有限公司 資料存取方法及使用此方法的記憶體控制器與儲存裝置
KR20150019268A (ko) * 2013-08-13 2015-02-25 에스케이하이닉스 주식회사 데이터 입출력 장치 및 이를 포함하는 시스템
US10073629B2 (en) 2016-12-13 2018-09-11 International Business Machines Corporation Memory transaction prioritization
US10298496B1 (en) 2017-09-26 2019-05-21 Amazon Technologies, Inc. Packet processing cache
US10228869B1 (en) * 2017-09-26 2019-03-12 Amazon Technologies, Inc. Controlling shared resources and context data
CN113190496B (zh) * 2021-04-23 2023-12-26 深圳市汇顶科技股份有限公司 内核通讯方法、装置、芯片、电子设备及存储介质
FR3124284B1 (fr) * 2021-06-21 2024-04-19 Stmicroelectronics S R L Système sur puce comprenant une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173366A (ja) * 1987-12-26 1989-07-10 Sony Corp 音声及び静止画録再装置
JPH04205534A (ja) * 1990-11-30 1992-07-27 Fujitsu Ltd メモリ制御方式
JPH05210620A (ja) * 1991-07-05 1993-08-20 Fujitsu Ltd 共用メモリの排他制御処理方式
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2000003302A (ja) * 1998-06-15 2000-01-07 Hitachi Ltd 共有メモリ排他アクセス制御方法
JP2000132503A (ja) * 1998-10-23 2000-05-12 Victor Co Of Japan Ltd データ転送装置
JP2001005718A (ja) * 1999-06-24 2001-01-12 Seiko Instruments Inc プロトコルハンドラ及びその信号処理方法
JP2001282612A (ja) * 2000-03-30 2001-10-12 Yamaha Corp メモリコントローラ
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP2004199608A (ja) * 2002-12-20 2004-07-15 Digital Electronics Corp メモリ制御回路

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992005489A1 (en) * 1990-09-18 1992-04-02 Fujitsu Limited Method of nonsynchronous access to shared memory
JPH06131244A (ja) * 1992-10-20 1994-05-13 Fujitsu Ltd 共有メモリの非同期アクセス方式
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
JPH0844636A (ja) 1994-07-29 1996-02-16 Toshiba Corp バスインタフェース装置及び同バスインタフェース装置を複数備えた情報処理システム
JP2591502B2 (ja) 1994-12-09 1997-03-19 日本電気株式会社 情報処理システムおよびそのバス調停方式
JP3934710B2 (ja) 1996-09-13 2007-06-20 株式会社ルネサステクノロジ マイクロプロセッサ
JPH1173366A (ja) * 1997-08-28 1999-03-16 Nec Niigata Ltd ユニファイドメモリアーキテクチャにおけるメモリ制御方法およびメモリ制御装置
JPH11120074A (ja) 1997-10-16 1999-04-30 Sharp Corp データ転送制御方法
JP2000047930A (ja) 1998-07-28 2000-02-18 Mitsubishi Electric Corp データ処理装置
JP2001209609A (ja) 2000-01-25 2001-08-03 Hitachi Ltd マイクロコンピュータシステム
JP2001067305A (ja) 1999-08-26 2001-03-16 Hitachi Ltd 半導体集積回路及びマイクロコンピュータ
JP2001135083A (ja) 1999-11-04 2001-05-18 Matsushita Electric Ind Co Ltd マルチポートメモリ
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
US7653763B2 (en) * 2001-02-28 2010-01-26 Cavium Networks, Inc. Subsystem boot and peripheral data transfer architecture for a subsystem of a system-on- chip
JP2002288120A (ja) 2001-03-27 2002-10-04 Nec Corp 調停装置およびバスシステム
JP2002312309A (ja) 2001-04-09 2002-10-25 Nec Eng Ltd 調停回路及び調停方法
JP3830438B2 (ja) 2002-09-03 2006-10-04 株式会社リコー メモリアクセスアービタ、メモリ制御装置
DE10302287A1 (de) * 2003-01-22 2004-08-12 Micronas Gmbh Speichervorrichtung für eine Multibus-Architektur

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173366A (ja) * 1987-12-26 1989-07-10 Sony Corp 音声及び静止画録再装置
JPH04205534A (ja) * 1990-11-30 1992-07-27 Fujitsu Ltd メモリ制御方式
JPH05210620A (ja) * 1991-07-05 1993-08-20 Fujitsu Ltd 共用メモリの排他制御処理方式
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2000003302A (ja) * 1998-06-15 2000-01-07 Hitachi Ltd 共有メモリ排他アクセス制御方法
JP2000132503A (ja) * 1998-10-23 2000-05-12 Victor Co Of Japan Ltd データ転送装置
JP2001005718A (ja) * 1999-06-24 2001-01-12 Seiko Instruments Inc プロトコルハンドラ及びその信号処理方法
JP2001282612A (ja) * 2000-03-30 2001-10-12 Yamaha Corp メモリコントローラ
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP2004199608A (ja) * 2002-12-20 2004-07-15 Digital Electronics Corp メモリ制御回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252090A (ja) * 2009-04-16 2010-11-04 Rohm Co Ltd 半導体装置
CN113032298A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113032299A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN113032299B (zh) * 2019-12-24 2023-09-26 中科寒武纪科技股份有限公司 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN113032298B (zh) * 2019-12-24 2023-09-29 中科寒武纪科技股份有限公司 用于保序的计算装置、集成电路装置、板卡及保序方法

Also Published As

Publication number Publication date
US7650453B2 (en) 2010-01-19
US20070266196A1 (en) 2007-11-15
JPWO2006030650A1 (ja) 2008-05-15
JP4737438B2 (ja) 2011-08-03

Similar Documents

Publication Publication Date Title
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US7269709B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
TWI443675B (zh) 記憶體系統以及存取記憶體之方法
US7793008B2 (en) AMBA modular memory controller
US5983327A (en) Data path architecture and arbitration scheme for providing access to a shared system resource
US8078781B2 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
US6393512B1 (en) Circuit and method for detecting bank conflicts in accessing adjacent banks
US7966431B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US7581054B2 (en) Data processing system
JP4313607B2 (ja) バス接続回路及びバス接続システム
US6360285B1 (en) Apparatus for determining memory bank availability in a computer system
JP2008544359A (ja) メモリーコントローラ
JP2004318340A (ja) データ転送制御装置
US7006521B2 (en) External bus arbitration technique for multicore DSP device
US20100169525A1 (en) Pipelined device and a method for executing transactions in a pipelined device
JPH0793274A (ja) データ転送方式及びデータ転送装置
US7069363B1 (en) On-chip bus
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP4684577B2 (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
TWI764139B (zh) 訪問資料匯流排的裝置、方法及系統
US20210334230A1 (en) Method for accessing data bus, accessing system, and device
JP2003228512A (ja) データ転送装置
US6839820B1 (en) Method and system for controlling data access between at least two memory arrangements
JP2006065453A (ja) データ処理装置
JPH06231032A (ja) アクセス制御装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006535714

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11663036

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 11663036

Country of ref document: US