WO2012008073A1 - 共有メモリシステム及びその制御方法 - Google Patents

共有メモリシステム及びその制御方法 Download PDF

Info

Publication number
WO2012008073A1
WO2012008073A1 PCT/JP2011/002296 JP2011002296W WO2012008073A1 WO 2012008073 A1 WO2012008073 A1 WO 2012008073A1 JP 2011002296 W JP2011002296 W JP 2011002296W WO 2012008073 A1 WO2012008073 A1 WO 2012008073A1
Authority
WO
WIPO (PCT)
Prior art keywords
shared memory
access
master
cluster
memory system
Prior art date
Application number
PCT/JP2011/002296
Other languages
English (en)
French (fr)
Inventor
寶積 雅浩
幸輝 村尾
大介 堀籠
理典 沖ノ井
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2012008073A1 publication Critical patent/WO2012008073A1/ja
Priority to US13/467,684 priority Critical patent/US20120221795A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a shared memory system having a shared memory accessed by a plurality of masters and a control method thereof.
  • FIG. 11 is a block diagram showing a configuration of a conventional shared memory system.
  • CPU (1) 2101, CPU (2) 2102, DSP (1) 2103, DSP (2) 2104, GPU 2105, HWA (1) 2106 and HWA (2) 2107 share main memory 2151 through interconnect bus 2219. .
  • a case where a video stream is decoded is shown.
  • data to be processed is acquired from the main memory 2151 using the CPU (1) 2101, and processing such as header analysis is performed.
  • processing such as header analysis is performed.
  • the frame data is shared by the main memory 2151 and displayed on an LCD or the like using the HWA (1) 2106.
  • FIG. 12 is a block diagram showing the configuration of Patent Document 1.
  • the load on the interconnect bus 3319 is detected by the bus load detection unit 3340 and the bus load information 3341 is notified to the replacement way control unit 3350. Then, the replacement way control unit 3350 changes the replacement method according to a predetermined bus load determination condition.
  • each master uses the main memory 2151 to share data between the masters.
  • the main memory 2151 is generally constituted by a DRAM, and has a longer latency than an LSI built-in memory. Therefore, in this configuration, bus access to the main memory 2151 becomes a bottleneck, and it is difficult to fully demonstrate the performance of each master.
  • the cache replacement way is controlled according to the bus load information 3341, so that the bus traffic to the main memory 3351 can be made uniform.
  • the bus load is large, the replacement process with a small bus load is performed, and when the bus load is small, the replacement process with a large bus load is performed, so that the bus can be used effectively, and local bus traffic is reduced. Improve and equalize bus traffic.
  • An object of the present invention is to provide a shared memory system capable of reducing processing time and power consumption, and a control method thereof.
  • the shared memory system of the present invention shares a plurality of masters, a shared memory accessed by the plurality of masters and divided into clusters, and a plurality of cluster spaces including at least one of the plurality of clusters by all masters.
  • a changing unit that changes the configuration of the cluster space.
  • the master is a central processing unit, a digital signal processor, a general-purpose graphics processing unit, or a hardware accelerator.
  • the attribute information is added to the access signal of the master, and a master identification attribute, a read / write attribute, an address attribute, a data / instruction attribute, a secure attribute, a cache / non-cache attribute, and Contains at least one of the transfer attributes.
  • the shared memory is a cache memory, and when a mishit occurs in the cluster space, the operation clock frequency of the master to which access is assigned to the cluster space is lowered during the refill operation.
  • a clock control unit that stops the operation clock is provided. Thereby, power saving is achieved.
  • the shared memory system of the present invention includes an access monitoring unit that determines attribute information of the master and permits access from the master to the cluster space. Thereby, the coherency performance of the system can be improved.
  • the shared memory system of the present invention includes a scheduling unit that stores access from the master to the cluster space, and an access policy control unit that controls access to the cluster space stored by the scheduling unit,
  • the monitoring unit determines attribute information of the master and passes it to the scheduling unit, and the access policy control unit notifies the scheduling unit of the policy and permits access to the cluster space corresponding to the attribute information. Thereby, the policy can be reflected when accessing the cluster space.
  • the access policy control unit changes the contents of the priority setting register in which the priority of access to the cluster space is set. Thereby, the coherency performance of the system can be improved.
  • the shared memory system of the present invention includes an integration unit that integrates access from the master stored in the scheduling unit to the cluster space. As a result, highly shared cluster spaces can be integrated, and the coherency performance of the system can be improved.
  • the attribute information includes a master identification attribute, a read / write attribute, an address attribute, a data / instruction attribute, a secure attribute, a cache / non-cache attribute, and a transfer added to the master access signal.
  • the shared memory is a cache memory, and includes an emergency transfer attribute adding unit that adds an emergency transfer attribute to access from the master to the cluster space, and the access policy control unit includes the emergency policy An area of the cluster space that can be surrendered is lent to access from the master to which the transfer attribute is added.
  • the cluster space can be allocated to a master that performs processing with high urgency and low priority.
  • the cluster space in which the area is lent is restored. Thereby, it can return to the state before emergency transfer.
  • the shared memory is a cache memory, and the plurality of cluster spaces are made up of cluster spaces having different line sizes, and the master space has a line size corresponding to the processing contents of the master.
  • a line size control unit that distributes accesses from is provided. As a result, it is possible to allocate to a cluster space having a line size appropriate for the processing contents of the master.
  • the shared memory system of the present invention includes a power supply control unit that cuts off power supply to the specific cluster space or suppresses leakage current. Thereby, power performance can be improved.
  • the shared memory system of the present invention is composed of a semiconductor device, and another semiconductor device is connected as the master. As a result, the processing performance of the entire system can be improved, and the main memory connected to other semiconductor devices can be reduced.
  • the shared memory system control method of the present invention is a shared memory system control method comprising a plurality of masters and a shared memory that is accessed by the plurality of masters and divided into a plurality of clusters.
  • a cluster space including at least one of the following: a space shared by all masters, a space shared among a plurality of specific masters, and a space occupied by a single master; An allocation step for allocating the access, and a change step for changing the configuration of the cluster space according to the attribute information of the master.
  • the processing time of the master can be improved and the processing time can be shortened. Also, it is possible to reduce power consumption by reducing access to the external main memory.
  • a multiprocessor having a shared memory system a high-performance multiprocessor with reduced processor processing time can be realized. Furthermore, by reducing access to the external work memory (main storage memory), it is possible to achieve a significant reduction in power consumption for application processors used in battery-powered portable electronic devices.
  • main storage memory main storage memory
  • FIG. 1 The figure which shows the structure of the shared memory system in 1st Embodiment.
  • Flow chart showing operation procedure of memory access control An example of a flowchart showing the setting update procedure of the cluster memory space Table showing setting example of access policy control mechanism 114
  • (A) is a table showing a setting example of the master identification attribute 1040
  • (B) is a table showing a setting example of the cache attribute 1090.
  • Flow chart showing video playback operation procedure The figure which shows the structure of the shared memory system in 2nd Embodiment.
  • Block diagram showing the configuration of a conventional shared memory system The block diagram which shows the structure of patent document 1
  • a shared memory system includes a cache memory as a shared memory accessed by a plurality of masters such as an asymmetric multiprocessor and a symmetric multiprocessor.
  • FIG. 1 is a diagram illustrating a configuration of a shared memory system according to the first embodiment.
  • This shared memory system includes a CPU (central processing unit) (1) 101, a CPU (2) 102, a DSP (digital signal processor) (1) 103, a DSP (2) 104, and a GPU (general purpose graphics processing unit) 105. , HWA (Hardware Accelerator) (1) 106 and HWA (Hardware Accelerator) (2) 107.
  • CPU central processing unit
  • DSP digital signal processor
  • GPU general purpose graphics processing unit
  • the first processor (CPU (1) 101) and the second processor (CPU (2) 102) constitute an asymmetric multiprocessor.
  • the third processor (DSP (1) 103) and the fourth processor (DSP (2) 104) constitute an asymmetric multiprocessor.
  • Each master when accessing the shared memory 110 as a cache memory, outputs a bus access signal 130 to which attribute information is added simultaneously with the access destination address.
  • the access monitoring mechanism 112 passes control information 131 indicating access permission to the cluster memory space selection device 119 based on the attribute information issued by each master.
  • the cluster memory space selection device 119 controls access from each master to each cluster 111 according to control information 131 indicating access permission.
  • the cache control mechanism 124 When a cache miss occurs in the cluster memory space (cluster space) shared by specific attribute information and a refill operation is performed on the cluster 111, the cache control mechanism 124 operates the operation clock frequency of the corresponding master during the refill operation. Is output to the clock control unit 122. The flag signal 137 permits the stop of the operation clock.
  • the clock control unit 122 When the clock control unit 122 receives from the cache control mechanism 124 a flag signal 137 that permits the operation clock frequency to be lowered or the operation clock to be stopped, the clock control unit 122 stops the operation clock 139 of the master that is determined to be in the stall state. Or lower the frequency.
  • the operation of the clock control unit 122 is controlled by a signal 138 from the power saving control unit 121.
  • FIG. 2 is a flowchart showing an operation procedure of memory access control.
  • the DSP (2) 104 is a video decoding processor, and the video data decoded (decoded) by the DSP (2) 104 is used as input data for the GPU 105 to perform high image quality processing.
  • the shared memory system defines the cluster for moving image attribute as the cluster memory 1 and the cluster memory 2 in advance for the access monitoring mechanism 112 (step S1).
  • step S2 When the DSP (2) 104 adds image attribute information and performs memory access (step S2), the access monitoring mechanism 112 permits access to the attribute information added to the bus access signal 130. It is determined whether or not (step S3). If this attribute information does not permit access, this operation ends.
  • the access monitoring mechanism 112 outputs control information 131 indicating access permission to the cluster memory 1 and the cluster memory 2 to the cluster memory space selection device 119 ( Step S4).
  • the cluster memory space selection device 119 distributes the access from the DSP (2) 104 to the cluster memory 1 or the cluster memory 2 in accordance with the control information 131 indicating the access permission (step S5). Similarly, when the GPU 105 adds image attribute information and executes memory access, memory access from the GPU 105 is also assigned to the cluster memory 1 and the cluster memory 2.
  • the plurality of masters share the shared memory 110 divided into the plurality of clusters 111, the coherency of the cache memory can be easily maintained. Further, when different attribute information is added to another master, for example, the DSP (1) 103, memory access from a master other than the DSP (2) 104 and the GPU 105 can be excluded.
  • the cache control mechanism 124 determines whether or not a cache miss hit has occurred (step S6).
  • a cache miss hit occurs, a refill (replacement) operation is performed on the corresponding cluster 111 from the main memory 151 having a large latency.
  • the cache control mechanism 124 detects a cache miss hit and a stalled state of the memory access of the GPU 105, and lowers the clock frequency of the GPU 105 to the clock control unit 122.
  • a flag signal 137 that permits this is output (step S7).
  • the clock may be stopped instead of lowering the clock frequency.
  • the clock control unit 122 When receiving the flag signal 137 that permits the clock frequency to be lowered, the clock control unit 122 supplies the clock by reducing the clock frequency of the GPU 105 to a frequency lower than the clock frequency of the normal operation.
  • the cache control mechanism 124 replaces desired data in the cluster (cache) 111 (step S8), and after this replacement (refill operation), withdraws the flag signal 137.
  • the clock control unit 122 switches the clock frequency of the master operation clock 139 supplied to the GPU 105 to the normal clock frequency by the withdrawal of the flag signal 137 and restores the original clock frequency (step S9).
  • the GPU 105 performs memory access to the cluster memory 1 or the cluster memory 2 after the refill operation (step S10). Thereafter, this operation ends.
  • the coherency of data in the cluster memory shared between the masters can be easily maintained.
  • the number of accesses to the main memory 151 performed through the external memory control unit 120 or the system latency can be reduced, and the processor processing performance can be improved.
  • the memory access in the lower layer is reduced, and the clock of the master that is stalled is stopped or its frequency is dynamically reduced, resulting in significant power consumption. Can be reduced.
  • the case where the number of masters is seven and the number of clusters is eight is shown, but this number is not particularly limited and may be an arbitrary number.
  • the cluster memory space is divided into a space 111a shared by all masters, a space 111b shared only among a plurality of masters, and a space 111c occupied by a single master.
  • the access monitoring mechanism 112 monitors the bus access signal 130 between the masters 101 to 107 and the cluster memory space selection device 119, and extracts attribute information. Details of the attribute information will be described later.
  • the access monitoring mechanism 112 collects attribute information for each memory access and passes it to the scheduling mechanism 115.
  • the scheduling mechanism 115 has a queuing mechanism, and determines the queue storage order according to the policy notified from the access policy control mechanism 114.
  • the policy is determined by a circuit of the access policy control mechanism 114, is determined flexibly by software via the priority setting register 113, or has both forms.
  • the merge mechanism 116 has a function of integrating attribute information of both when the same or similar memory access is stored in the queue. For example, when the memory access address space that is the read attribute from the same master includes the other memory access address space, the merge mechanism 116 discards the included memory access attribute information and Select attribute information for memory access, and replace the queue with the one closest to the front row.
  • the merge mechanism 116 holds setting information of the cluster memory space selection device 119, and updates the setting of the cluster memory space via the tag switching unit 117 from the attribute information after integration in the queue of the scheduling mechanism 115. It has a mechanism for determining whether or not.
  • FIG. 3 is an example of a flowchart showing the setting update procedure of the cluster memory space.
  • one line of LCD display data generated by the GPU 105 is stored as cache data in the space of the cluster memory 5 of the shared memory 110 (one line from 0x4000 — 0000) as a write to the main memory 151.
  • the access monitoring mechanism 112 monitors the bus access signal 130 from the HWA (2) 107 (step S11).
  • the access monitoring mechanism 112 indicates that the master identification attribute is HWA (2) 107, the read / write attribute is the read attribute, the start address is 0x4000_0000, and the transfer size is LCD display.
  • the attribute information indicating that there is one line is extracted (step S12). This extracted attribute information is passed to the scheduling mechanism 115.
  • the access policy control mechanism 114 stores in the access policy control mechanism 114 when the priority setting register 113 has previously set the priority of access from the HWA (2) 107 as the highest in the master. The policy is reflected and notified to the scheduling mechanism 115 (step S13).
  • the scheduling mechanism 115 stores the attribute information of the HWA (2) 107 in the front row of the queue according to this policy (step S14).
  • the merge mechanism 116 analyzes the similarity of the attribute information stored in the queue of the scheduling mechanism 115 and integrates the attribute information (step S15).
  • the merge mechanism 116 determines from the setting information of the cluster memory space selection device 119 that the space of the cluster memory 5 includes the read address, the merge mechanism 116 sets the setting related to the space control of the cluster memory 5 of the shared memory 110 to the other memory access. This is retained without being affected by the attribute information, and a cache hit of the HWA (2) 107 is guaranteed.
  • the cluster memory suitable for the attribute information in this example, read attribute, write attribute, start address, transfer size
  • the space of the cluster memory 5 in the shared memory 110 Is set to the cluster memory space selection device 119.
  • the merge mechanism 116 holds the set information, and uses this set information to determine whether or not an update is necessary in subsequent memory accesses. That is, the merge mechanism 116 determines whether or not the setting of the cluster memory space needs to be changed based on the setting information (step S16). If it is necessary, the merge mechanism 116 changes the setting of the cluster memory space (step S17), and if it is not necessary, it is left as it is.
  • the scheduling mechanism 115 discards the attribute information stored in the front row of the queue (step S17). This operation ends.
  • FIG. 4 is a table showing a setting example of the access policy control mechanism 114.
  • the shared attribute of the cluster memories 1 to 8 is controlled by the attribute 1030 given when the masters 101 to 107 access the interconnect bus.
  • 5A and 5B are tables showing examples of setting of the master identification attribute 1040 and the cache attribute 1090.
  • 5A shows the master identification attribute 1040
  • FIG. 5B shows the cache attribute 1090.
  • the cluster memory 1 setting example is as follows.
  • the attribute 1030 has a line size of 64 bytes per line.
  • the master identification attribute 1040 is 0 and 1.
  • the read / write attribute 1050 is for both read and write.
  • the address range (address attribute) 1060 the start address 1060a is 0x00000000 or more and the end address 1060b is less than 0x20000000.
  • Data / command attribute 1070 is command / data.
  • the secure attribute 1080 is secure.
  • the cache attribute (cache / non-cache attribute) 1090 is RA.
  • the emergency processing attribute 10A0 is not possible.
  • the transfer attribute (10B0) indicates that the instruction / data can be shared between the CPU (1) 101 and the CPU (2) 102 in the cluster memory 1 in the case of single.
  • FIG. 6 is a flowchart showing a moving image playback operation procedure.
  • the CPU (1) 101 performs data acquisition and copyright information authentication (step S21). That is, the CPU (1) 101 acquires stream data from the main memory 151 and performs processing for authenticating protection information such as copyright information. At that time, the CPU (1) 101 accesses with the attribute 1030 and shares the processed data with the cluster memory 1.
  • CPU (2) 102 performs a separation process of the audio information and the image information (step S22). That is, the CPU (2) 102 performs a process for separating the audio information and the image information for the data subjected to the authentication process.
  • the separated data is shared by the cluster memories 5 and 6.
  • the DSP (1) 103 performs audio and image decoding processing (step S23). That is, the DSP (1) 103 uses the data processed by the CPU (2) 102 and shared by the cluster memories 5 and 6 when performing the process of decoding the audio information. The data after the audio decoding process is output to the digital-analog converter by the DSP (1) 103.
  • the DSP (2) 104 uses the data shared by the cluster memories 5 and 6 when performing the process of decoding the moving picture stream and converting it into frame data.
  • the frame data after moving image decoding is shared with the HWA (2) 107 using the cluster memory 8.
  • the HWA (2) 107 reads the data shared by the cluster memory 8 and performs a process of displaying on the LCD (not shown) (step S24). Thereafter, this operation ends.
  • steps S21 to S24 the data between the respective masters is controlled and shared by the attribute 1030.
  • the steps S21 to S24 should be considered as illustrative and not restrictive.
  • an appropriate attribute 1030 is set in advance, and any or all of the cluster memories 1 to 8 are dynamically set according to the preset attribute 1030 accordingly.
  • system performance can be improved.
  • access to the main memory 151 can be reduced. Therefore, the performance of low power consumption that is indispensable for portable devices can be improved.
  • the line size for each cluster memory is 64 bytes per line, 128 bytes per line, 256 bytes per line, 512 bytes per line, etc. It may be.
  • the master identification attribute 1040 is shared by only 0 and 1, shared by 0, 1, 5 and 6, shared by 0, 2 and 3, shared by 2 and 3, and shared only by 5. In any case, it may be set in any combination.
  • the address range 1060 may be set in an arbitrary range such as 0x00000000 or more and less than 0x20000000.
  • the data / command attribute 1070 may be set by command / data, command only, data only, or the like.
  • command / data may be set by command / data, command only, data only, or the like.
  • data attribute 1078 may have a plurality of data attributes.
  • the secure attribute 1080 may be a secure attribute or a non-secure attribute.
  • the cache attribute 1090 may be RA, RAB, RAWAB, or the like.
  • the urgent processing attribute 10A0 may be selected from “not available” or “available”.
  • the transfer attribute 10B0 may be single transfer, burst transfer, or the like.
  • the access policy may be controlled by combining any one or more of these attributes or other attribute information.
  • FIG. 7 is a diagram illustrating a configuration of a shared memory system according to the second embodiment.
  • a cache memory space lending function for a memory access to which an urgent transfer attribute is added is added.
  • the shared memory system will be described as having the shared cache memory configuration 110a.
  • An LCD (Liquid Crystal Display) 452 is connected to the HWA (2) 107. Further, the way corresponding to the cluster memory 1 is assigned as the shared cluster 111 of the CPU (1) 101 and the CPU (2) 102 by the cluster memory space selection device 119. Accordingly, the memory access 471 and the memory access 472a exist for accessing the cluster memory 1.
  • the memory access 472b is performed on the space (the shared space 461 configured by the cluster memories 2 and 3) to which the data cache attribute of the CPU (2) 102 is assigned.
  • the memory access 473 a of the DSP (1) 103 and the data cache attribute memory access 474 a of the DSP (2) 104 share the space 462 configured by the cluster memory 4.
  • a space 463 constituted by the cluster memories 5 and 6 is allocated to the data cache attribute memory access 474 b of the DSP (2) 104.
  • the final image data displayed on the LCD 452 by the HWA (2) 107 is stored by the memory access 475 of the HWA (2) 107 with respect to the space 464 configured by the cluster memories 7 and 8.
  • an animation such as a user interface (hereinafter abbreviated as UI) created by the CPU (2) 102 is stored in a space 461 composed of the cluster memories 2 and 3 after the composition processing of the final image by the CPU (2) 102. Is done.
  • UI user interface
  • the coherence between the space 464 configured by the cluster memories 7 and 8 and the space 461 configured by the cluster memories 2 and 3 is maintained by the coherency function 470 provided therein.
  • the following describes the cache memory space lending function for memory accesses with the urgent processing transfer attribute given as an example of the following operations.
  • This operation is performed when the CPU (1) 101 controls peripheral connection devices, the CPU (2) 102 performs UI drawing control of the display screen, and the DSP (1) 103 performs acoustic processing. 2)
  • HWA (1) 106 In this case, DMA controller
  • HWA (2) 107 transfers the output data to the LCD. .
  • the HWA (2) 107 outputs 60 pieces of video data per second. It is a master to which a so-called deadline guarantee type real-time process is required, in which it is necessary to output the assembled final image data to the LCD 452 at a constant cycle without delay.
  • the video decoding DSP (2) 104 also has to decode a fixed number of images of a fixed size every second and pass the moving image data to the subsequent HWA (2) 107. Similarly, real-time processing is required. Is done.
  • the video decoding process performed by the DSP (2) 104 is a process that requires a large amount of the bandwidth of the main memory 151. Therefore, the throughput to the main memory 151 is given with the highest priority.
  • the first DSP (1) 103 in charge of audio decoding processing needs real-time processing.
  • the main memory 151 bandwidth requires a large bandwidth in the order of DSP (2) 104 >> HWA (2) 107> DSP (1) 103. .
  • the shared memory (cache) 110 is controlled to give a larger cluster memory space to a master processor that requires a larger bandwidth with a priority proportional to the requested bandwidth.
  • both DSP (2) 104 and HWA (2) 107 handle video data, but the degree of sharing is not high. Since the DSP (1) 103 handles audio data, it is not necessary to share the data of the DSP (1) 103 and the data of another master. On the other hand, for DSP (1) 103 and DSP (2) 104, there is a place where a part of instructions can be shared.
  • the data cache of the DSP (1) 103, the data cache of the DSP (2) 104, and the data cache of the HWA (2) 107 are controlled unshared. Also, the commands of DSP (1) 103 and DSP (2) 104 are stored in the shared area, and coherency control is performed.
  • the access to the main memory 151 of the CPU (1) 101 is random.
  • the CPU (1) 101 has a low degree of data sharing among the DSP (2) 104, the HWA (2) 107, and the DSP (1) 103, and the core performance of the processor is not high. . Therefore, the CPU (1) 101 has a small number of assigned ways, and the lowest priority is set as the access control to the cluster.
  • the CPU (2) 102 controls the UI, combines the video decoding result of the DSP (2) 104 and the UI animation generated by the CPU (2) 102, and sends frame data to the HWA (2) 107. give. Assuming this operation, the CPU (2) 102 uses the data of the DSP (2) 104 and the HWA (2) 107 to perform the LCD display data composition processing, so that the degree of sharing in the shared memory 110 may increase. Is expensive. Therefore, allocation (assignment) of the clusters 111 is performed so that data among these masters can be shared.
  • the shareability between the data of the CPU (2) 102 and the data of the CPU (1) 101 that processes information from the external device is relatively high.
  • the CPU (1) 101 processes information obtained from an external device such as an LCD touch panel.
  • the CPU (2) 102 must change the UI controlling the drawing. For example, in a gauge bar that fast-forwards a video playback screen, when changing the fast-forward speed at the position of the gauge, the UI gauge position must be changed at any time in conjunction with the position where the fingertip touches the touch panel LCD. I must.
  • These control data have a high degree of sharing in the shared memory, and the processing performance of the system is significantly greater when the coherency control is shared by the internal shared memory 110 than when the data is shared by the main memory 151. May improve.
  • the CPU (1) 101 when there is no input from the external device, the CPU (1) 101 is in an idle state. In this case, the way of the shared memory 110 is not assigned (not assigned) to the CPU (1) 101, and the way is released.
  • the CPU (1) 101 when the user who operates the electronic device starts to operate the touch panel type LCD, the CPU (1) 101 returns from the idle state due to an interrupt from the external device, and immediately enters the data received from the external device. Perform the process.
  • the shared memory 110 is prepared as a shadow memory prepared as a tag memory that is not normally used.
  • the access of the CPU (1) 101 with the emergency processing attribute is assigned to the CPU (1) 101 to which no way has been assigned until now.
  • the shadow tag is switched to the normal tag. Then, the CPU (2) 102 can use the way used by the CPU (1) 101.
  • Shadow tags provide such a mechanism.
  • a shared cache can also be assigned to a master that performs processing such as a UI operation with a low priority of way assignment.
  • FIG. 8 is a diagram illustrating a configuration of a shared memory system according to the third embodiment.
  • the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted.
  • the shared memory system will be described as having the shared cache memory configuration 110a.
  • the cluster memory sharing setting of each master shown in FIG. 8 is almost the same as in the second embodiment.
  • the access 572c of the CPU (2) 102 is configured by the cluster memories 7 and 8 allocated for the HWA (2) 107 in addition to the space 461 configured by the cluster memories 2 and 3. This is different from the second embodiment in that it is also set in the space 464.
  • the data of the CPU (2) 102 and the source data of the HWA (2) 107 are always in a shared state.
  • the CPU (2) 102 stores the data at the address where the final output data is placed, the HWA (2) 107 can share the output data in the shared memory.
  • the HWA (2) 107 does not need to access the main memory 151 every time, so that the bandwidth of the main memory 151 is suppressed and consumed.
  • the access power to the main memory 151 which is the power governing term, can be reduced.
  • FIG. 9 is a diagram illustrating a configuration of a shared memory system according to the fourth embodiment.
  • the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted.
  • the shared memory system will be described as having the shared cache memory configuration 110a.
  • the CPU (1) 101 controls peripheral connection devices
  • the CPU (2) 102 performs browser display processing
  • the DSP (2) 104 performs software video codec.
  • the CPU (1) 101, the CPU (2) 102, and the DSP (2) 104 are each equipped with a primary cache.
  • the CPU (1) 101 has primary caches 108a and 108b and a memory controller 109, and controls external devices and LSI IO.
  • the primary cache (instruction cache) 108a and (data cache) 108b are each configured with a line size of 32 bytes.
  • the CPU (2) 102 has a higher operating frequency than the CPU (1) 101 and is a high-performance CPU equipped with a coprocessor such as a floating-point operation, and has a secondary cache in addition to the primary cache.
  • the line size of the secondary cache 608c is 64 bytes.
  • DSP (2) 104 is a DSP for media processing that can perform video codec processing with high throughput.
  • a primary cache (instruction cache) 608d and a (data cache) 608e having a line size of 128 bytes are mounted.
  • the shared memory 110 shared between the processor cores includes a cluster memory group 680 composed of ways with a line size of 128 bytes, and a cluster memory group 681 composed of ways with a line size of 256 bytes, Multiple types of cluster memory groups are included.
  • the cache memory capacity is calculated by multiplying the line size, the number of sets, and the number of ways.
  • the cache hit rate increases as the memory capacity of the cache increases, and the apparent processor performance can be improved.
  • the cache hit rate is highly dependent on the software structure, and even if the program has a low hit rate or a program with a relatively high hit rate, it will increase the memory capacity if it exceeds a certain memory capacity. It is also known that the hit rate tends to saturate.
  • the hit rate may increase. For example, particularly in the case of media data such as images, since one data size is relatively large, there is a case where a cache hit is efficiently performed when one line size is large.
  • the access monitoring mechanism 112 monitors access attributes, for example, browser drawing data handled by the CPU (2) 102, and frames in which the DSP (2) 104 accesses the shared memory 110.
  • the line size control unit 118 performs control for mapping the cluster 111 having a large line size with priority.
  • access having such characteristics is controlled by the access monitoring mechanism 112 so as to be preferentially allocated to a cluster memory of a small way.
  • the performance can be further improved by assigning the cluster 111 having an appropriate line size to the processing content.
  • the shared memory system may be configured as follows. That is, a part of the cluster memory 111, (not assigned) not allocated to advance which master specified area, the clock control functions such as suppressing the clock, power-off, such as turning off the on-chip switches with the LSI Any one or two or more functions (power control function) of a leakage current suppressing function such as reducing the memory voltage while retaining the function and the memory contents can be employed. By applying such a function, power performance can be improved.
  • FIG. 10 is a diagram illustrating a configuration of a shared memory system according to the fifth embodiment.
  • a system LSI (2) 701 extended externally as a companion to an asymmetric multiprocessor-mounted application processor LSI (1) 700 (semiconductor device) is a shared memory system.
  • a master processor that is, HWA (3) 711
  • a system that shares the shared memory 712 with the processor unit 710 is realized.
  • the memory access of the LSI (2) 701 is handled as the memory access of the HWA3 (711) which is one master inside the LSI (1) 701. Therefore, a configuration in which coherence is obtained between the LSI (1) 700 and the LSI (2) 701 can be achieved. Further, the main memory 151b connected to the LSI (2) 701 can be omitted.
  • the number of main storage memories 151a and 151b (see FIG. 10) provided in each LSI can be reduced, and the power consumption can be reduced while ensuring the performance. it can.
  • the cost of electronic devices can be reduced.
  • the present invention has a shared memory accessed by a plurality of masters, and is useful as a memory system capable of reducing processing time and power consumption.

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)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

 共有メモリシステムは、アクセス監視機構112に対し、動画属性用のクラスタをクラスタメモリ1、2とする定義を行う。アクセス監視機構112は、DSP(2)104が画像の属性情報を付加してメモリアクセスを行うと、クラスタメモリ1、2に対してアクセス許可を示す制御情報131をクラスタメモリ空間選択装置119に出力する。クラスタメモリ空間選択装置119は、制御情報131に従って、DSP(2)104からのアクセスをクラスタメモリ1もしくは2に振り分ける。GPU105からのアクセスも同様である。複数のクラスタ111に分割された共有メモリ110を複数のマスタが共有することで、キャッシュメモリのコヒーレンシを保つ。したがって、処理時間の短縮及び消費電力の低減が可能な共有メモリシステムを提供できる。

Description

共有メモリシステム及びその制御方法
 本発明は、複数のマスタによってアクセスされる共有メモリを有する共有メモリシステム及びその制御方法に関する。
 従来、共有メモリシステムとして、複数のプロセッサ間でメモリを共有しているものがある。図11は、従来の共有メモリシステムの構成を示すブロック図である。CPU(1)2101、CPU(2)2102、DSP(1)2103、DSP(2)2104、GPU2105、HWA(1)2106及びHWA(2)2107は、インターコネクトバス2219を通して主記憶メモリ2151を共有する。
 具体的な例として、動画ストリームのデコード処理を行う場合を示す。この処理では、最初に、CPU(1)2101を用いて主記憶メモリ2151から処理すべきデータを取得し、ヘッダ解析等の処理を行う。次に、DSP(2)2104を用いて動画でコード処理を行った後、フレームデータを主記憶メモリ2151で共有し、HWA(1)2106を用いてLCD等に出画する。
 また、別の例として、特許文献1に記載の共有メモリシステムが知られている。図12は、特許文献1の構成を示すブロック図である。この共有メモリシステムは、インターコネクトバス3319の負荷をバス負荷検出部3340で検出し、このバス負荷情報3341をリプレースウェイ制御部3350に通知する。そして、リプレースウェイ制御部3350は、予め設定されたバス負荷の判定条件に応じて、リプレース方法を変更する。
 これにより、局所的にバストラフィックが増大する懸念がある場合でも、バストラフィックを均一化することが可能となる。したがって、リアルタイム処理が必要なマスタに対して性能を担保することが可能となる。
日本国特開2006-119796号公報
 しかし、上記説明した共有メモリシステムでは、次のような問題があった。図11に示した例では、各マスタは、主記憶メモリ2151を用いて各マスタ間のデータを共有する。主記憶メモリ2151は、一般的にDRAMで構成され、LSIの内蔵メモリと比較してレイテンシが長い。したがって、この構成では、主記憶メモリ2151に対するバスアクセスがボトルネックとなり、各マスタの性能を十分に発揮することが困難である。
 また、図12に示した特許文献1の構成では、バス負荷情報3341に応じて、キャッシュのリプレースウェイを制御するため、主記憶メモリ3351に対するバストラフィックを均一化することができる。すなわち、バス負荷が大きい場合はバス負荷の小さいリプレース処理を行い、バス負荷が小さい場合はバス負荷の大きいリプレース処理を行うことで、バスを有効に使用することができ、局所的なバストラフィックを改善し、バストラフィックを均一化することができる。
 しかし、この方法では、主記憶メモリ3351のバス帯域を越えるシステム性能を発揮することはできず、CPU3301、3302やDSP(1)3303等のマスタが潜在的に持つ能力を全て使い切ることは困難である。またこの場合、主記憶メモリ3351は常に動作し続けることになるため、低消費電力が特に要求される携帯機器等においては、商品性を損なってしまう。
 本発明の目的は、処理時間の短縮及び消費電力の低減が可能な共有メモリシステム及びその制御方法を提供することである。
 本発明の共有メモリシステムは、複数のマスタと、前記複数のマスタによってアクセスされ、クラスタに分割された共有メモリと、前記複数のクラスタの少なくとも1つを含む複数のクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当部と、前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更部とを備える。これにより、マスタの処理性能を向上させて処理時間を短縮することができる。また、外部の主記憶メモリへのアクセスを削減して消費電力を低減することができる。
 また、本発明の共有メモリシステムでは、前記マスタは、中央演算処理装置、デジタルシグナルプロセッサ、汎用グラフィックス処理装置又はハードウェアアクセラレータである。
 また、本発明の共有メモリシステムでは、前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード/ライト属性、アドレス属性、データ/命令属性、セキュア属性、キャッシュ/非キャッシュ属性及び転送属性の少なくとも1つを含む。
 また、本発明の共有メモリシステムでは、前記共有メモリはキャッシュメモリであり、前記クラスタ空間にミスヒットが発生した場合、リフィル動作中、当該クラスタ空間にアクセスが割り当てられたマスタの動作クロック周波数を下げるもしくは当該動作クロックを停止させるクロック制御部を備える。これにより、省電力化が図られる。
 本発明の共有メモリシステムは、前記マスタの属性情報を判別し、当該マスタから前記クラスタ空間へのアクセスを許可するアクセス監視部を備える。これにより、システムのコヒーレンシ性能を向上させることができる。
 本発明の共有メモリシステムは、前記マスタから前記クラスタ空間へのアクセスを格納するスケジューリング部と、前記スケジューリング部によって格納された前記クラスタ空間へのアクセスを制御するアクセスポリシー制御部とを備え、前記アクセス監視部は、前記マスタの属性情報を判別して前記スケジューリング部に渡し、前記アクセスポリシー制御部は、ポリシーを前記スケジューリング部に通知し、前記属性情報に該当するクラスタ空間へのアクセスを許可する。これにより、クラスタ空間へのアクセスに際し、ポリシーを反映させることができる。
 本発明の共有メモリシステムでは、前記アクセスポリシー制御部は、前記クラスタ空間へのアクセスの優先度が設定されたプライオリティ設定レジスタの内容を変更する。これにより、システムのコヒーレンシ性能を向上させることができる。
 本発明の共有メモリシステムは、前記スケジューリング部によって格納された前記マスタから前記クラスタ空間へのアクセスを統合する統合部を備える。これにより、共有性の高いクラスタ空間を統合させることができ、システムのコヒーレンシ性能を向上させることができる。
 本発明の共有メモリシステムでは、前記属性情報は、前記マスタのアクセス信号に付加された、マスタ識別属性、リード/ライト属性、アドレス属性、データ/命令属性、セキュア属性、キャッシュ/非キャッシュ属性及び転送属性を含む。
 本発明の共有メモリシステムは、前記共有メモリはキャッシュメモリであり、前記マスタから前記クラスタ空間へのアクセスに緊急転送属性を付加する緊急転送属性付加部を備え、前記アクセスポリシー制御部は、前記緊急転送属性が付加された前記マスタからのアクセスに、明け渡し可能な前記クラスタ空間の領域を貸与する。これにより、緊急性の高く優先度が低い処理を行うマスタに対しても、クラスタ空間を割り当てることができる。   
 本発明の共有メモリシステムでは、前記緊急転送属性が付加されたマスタからのアクセスが完了すると、前記領域が貸与されたクラスタ空間を元に戻す。これにより、緊急転送前の状態に戻すことができる。
 本発明の共有メモリシステムは、前記共有メモリはキャッシュメモリであり、前記複数のクラスタ空間はラインサイズの異なるクラスタ空間からなり、前記マスタの処理内容に応じたラインサイズの前記クラスタ空間に、前記マスタからのアクセスを振り分けるラインサイズ制御部を備える。これにより、マスタの処理内容に適切なラインサイズのクラスタ空間に振り分けることができる。
 本発明の共有メモリシステムでは、特定の前記クラスタ空間に対し、電源の供給を遮断する、又はリーク電流を抑制する電源制御部を備える。これにより、電力性能を向上させることができる。
 本発明の共有メモリシステムは、半導体装置からなり、前記マスタとして、他の半導体装置が接続された。これにより、システム全体の処理性能を向上させることができるとともに、他の半導体装置に接続される主記憶メモリを削減することができる。
 本発明の共有メモリシステムの制御方法は、複数のマスタと、前記複数のマスタによってアクセスされ、複数のクラスタに分割された共有メモリとを有する共有メモリシステムの制御方法であって、前記複数のクラスタの少なくとも1つを含むクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当ステップと、前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更ステップとを有する。
 本発明によれば、マスタの処理性能を向上させて処理時間を短縮することができる。また、外部の主記憶メモリへのアクセスを削減して消費電力を低減することができる。
 例えば、共有メモリシステムを有するマルチプロセッサを用いることで、プロセッサ処理時間を短縮した高性能マルチプロセッサを実現することができる。さらに、外部ワークメモリ(主記憶メモリ)へのアクセスを低減させることで、バッテリ駆動のポータブル電子機器に用いられるアプリケーションプロセッサに対し、大幅な低消費電力が実現可能となる。
第1の実施形態における共有メモリシステムの構成を示す図 メモリアクセス制御の動作手順を示すフローチャート クラスタメモリ空間の設定更新手順を示すフローチャートの一例 アクセスポリシー制御機構114の設定例を示すテーブル (A)はマスタ識別属性1040の設定例を示すテーブル,(B)はキャッシュ属性1090の設定例を示すテーブル 動画再生動作手順を示すフローチャート 第2の実施形態における共有メモリシステムの構成を示す図 第3の実施形態における共有メモリシステムの構成を示す図 第4の実施形態における共有メモリシステムの構成を示す図 第5の実施形態における共有メモリシステムの構成を示す図 従来の共有メモリシステムの構成を示すブロック図 特許文献1の構成を示すブロック図
 本発明の共有メモリシステム及びその制御方法の実施形態について、図面を参照して説明する。以下説明する実施形態の共有メモリシステムは、非対称マルチプロセッサや対称マルチプロセッサ等、複数のマスタがアクセスする共有メモリとしてキャッシュメモリを有する。
(第1の実施形態)
 図1は、第1の実施形態における共有メモリシステムの構成を示す図である。この共有メモリシステムは、CPU(中央演算処理装置)(1)101、CPU(2)102、DSP(デジタルシグナルプロセッサ)(1)103、DSP(2)104、GPU(汎用グラフィックス処理装置)105、HWA(ハードウェアアクセラレータ)(1)106及びHWA(ハードウェアアクセラレータ)(2)107からなる7つのマスタを有する。
 これら7つのマスタは、クラスタメモリ空間選択装置119を通して8個のクラスタメモリ(クラスタ)111に分割された共有メモリ(キャッシュ)110を共有する。なお、第1のプロセッサ(CPU(1)101)及び第2のプロセッサ(CPU(2)102)は非対称なマルチプロセッサを構成する。また、第3のプロセッサ(DSP(1)103)及び第4のプロセッサ(DSP(2)104)は非対称なマルチプロセッサを構成する。
 各マスタは、共有メモリ110をキャッシュメモリとしてアクセスする時、アクセス先アドレスと同時に属性情報を付加したバスアクセス信号130を出力する。
 アクセス監視機構112は、各マスタが発行する属性情報をもとに、クラスタメモリ空間選択装置119にアクセス許可を示す制御情報131を渡す。クラスタメモリ空間選択装置119は、アクセス許可を示す制御情報131に従って、各マスタから各クラスタ111へのアクセスを制御する。
 特定の属性情報で共有したクラスタメモリ空間(クラスタ空間)にキャッシュミスヒットが発生し、クラスタ111へのリフィル動作を行う場合、キャッシュ制御機構124は、リフィル動作中に、該当するマスタの動作クロック周波数を下げるもしくは動作クロックを停止することを許可するフラグ信号137をクロック制御部122に出力する。   
 クロック制御部122は、キャッシュ制御機構124から、動作クロック周波数を下げるもしくは動作クロックを停止することを許可するフラグ信号137を受け取ると、ストール状態にあると判断したマスタの動作クロック139を停止する、もしくはその周波数を下げる。また、クロック制御部122の動作は、省電力制御部121からの信号138によって制御される。
 上記構成を有する共有メモリシステムの動作を示す。図2は、メモリアクセス制御の動作手順を示すフローチャートである。例えば、DSP(2)104をビデオデコード処理プロセッサとし、DSP(2)104がデコード(復号化)したビデオデータをGPU105が高画質化処理を行うための入力データとして使用する場合について説明する。  
 まず、共有メモリシステムは、アクセス監視機構112に対し、予め動画属性用のクラスタをクラスタメモリ1とクラスタメモリ2とする定義を行う(ステップS1)。
 アクセス監視機構112は、DSP(2)104が画像の属性情報を付加してメモリアクセスを行うと(ステップS2)、このバスアクセス信号130に付加された属性情報はアクセスを許可するものであるか否かを判別する(ステップS3)。この属性情報がアクセスを許可しないものである場合、この動作は終了する。
 一方、この属性情報がアクセスを許可するものである場合、アクセス監視機構112は、クラスタメモリ1とクラスタメモリ2に対してアクセス許可を示す制御情報131を、クラスタメモリ空間選択装置119に出力する(ステップS4)。
 クラスタメモリ空間選択装置119は、このアクセス許可を示す制御情報131に従って、DSP(2)104からのアクセスをクラスタメモリ1もしくはクラスタメモリ2に振り分ける(ステップS5)。同様に、GPU105が画像の属性情報を付加してメモリアクセスを実行すると、GPU105からのメモリアクセスもクラスタメモリ1とクラスタメモリ2に割り当てられる。
 このように、複数のクラスタ111に分割された共有メモリ110を複数のマスタが共有することで、キャッシュメモリのコヒーレンシを容易に保つことができる。また、その他のマスタ、例えばDSP(1)103が異なる属性情報を付加する場合、DSP(2)104及びGPU105以外のマスタからのメモリアクセスを排除することができる。
 また、GPU105の動作中、キャッシュ制御機構124は、キャッシュミスヒットが発生したか否かを判別する(ステップS6)。キャッシュミスヒットが発生した場合、レイテンシの大きい主記憶メモリ151等から該当するクラスタ111にリフィル(入れ替え)動作が行われる。この時、GPU105は所望のデータを受信するまでストール状態となるため、キャッシュ制御機構124は、GPU105のメモリアクセスのキャッシュミスヒット及びストール状態を検知し、クロック制御部122にGPU105のクロック周波数を下げることを許可するフラグ信号137を出力する(ステップS7)。なお、前述したように、クロック周波数を下げる代わりに、クロックを停止しても良い。
 クロック制御部122は、クロック周波数を下げることを許可するフラグ信号137を受け取ると、GPU105のクロック周波数を通常動作のクロック周波数よりも低い周波数に下げてクロックを供給する。キャッシュ制御機構124は、クラスタ(キャッシュ)111に所望のデータを入れ替え(ステップS8)、この入れ替え(リフィル動作)後、フラグ信号137を取り下げる。
 クロック制御部122は、フラグ信号137の取り下げにより、GPU105に供給されるマスタ動作クロック139のクロック周波数を通常のクロック周波数に切り替え、元に戻す(ステップS9)。GPU105は、リフィル動作後のクラスタメモリ1あるいはクラスタメモリ2に対し、メモリアクセスを行う(ステップS10)。この後、この動作が終了する。
 このように、本実施形態の共有メモリシステムによれば、各マスタ間で共有するクラスタメモリ内のデータのコヒーレンシを容易に保つことができる。また、外部メモリ制御部120を介して行われる主記憶メモリ151へのアクセス回数、又はシステムのレイテンシを削減し、プロセッサ処理性能を向上させることができる。
 さらに、局所的なキャッシュヒット率を高めることも可能であるため、下位階層のメモリアクセスを削減し、また、ストール中のマスタのクロック停止もしくはその周波数を動的に下げることで、大幅な消費電力の削減が可能となる。
 なお、本実施形態では、マスタの数を7個設け、クラスタの数を8個設けた場合を示したが、この数は特に限定されるものではなく、任意の数で良い。
 次に、クラスタメモリ空間の設定について説明する。ここで、クラスタメモリ空間は、全マスタで共有する空間111a、複数のマスタ間でのみ共有する空間111b、単一のマスタで占有する空間111cに分けられる。
 アクセス監視機構112は、マスタ101~107とクラスタメモリ空間選択装置119間のバスアクセス信号130を監視し、属性情報を抽出する。属性情報の詳細については後述する。
 アクセス監視機構112は、属性情報をメモリアクセスごとにまとめてスケジューリング機構115に渡す。スケジューリング機構115は、キューイング機構を持っており、アクセスポリシー制御機構114から通知されるポリシーに従い、キューの格納順序を決める。ポリシーは、アクセスポリシー制御機構114の回路で決められるか、若しくは、プライオリティ設定レジスタ113を介してソフトウェアで柔軟に決められるか、又はその両方の形態を有する。
 マージ機構116は、同一又は類似するメモリアクセスをキューに格納した場合、両者の属性情報を統合する機能を有する。例えば、同じマスタからのリード属性であるメモリアクセスのアドレス空間が、もう一方のメモリアクセスのアドレス空間を含む場合、マージ機構116は、含まれる方のメモリアクセスの属性情報を破棄し、含む方のメモリアクセスの属性情報を選択し、両者のうち最前列に近いほうのキューに置き換える。
 また、マージ機構116は、クラスタメモリ空間選択装置119の設定情報を保持しており、スケジューリング機構115のキューにおいて統合後の属性情報から、タグ切替部117を介してクラスタメモリ空間の設定を更新するか否かを判定する機構を有する。
 図3は、クラスタメモリ空間の設定更新手順を示すフローチャートの一例である。例えば、GPU105が生成するLCD表示データの1ラインが、主記憶メモリ151へのライトとして、共有メモリ110のクラスタメモリ5の空間(0x4000_0000より1ライン分)にキャッシュデータとして格納される。
 HWA(2)107をLCDコントローラとすると、アクセス監視機構112は、HWA(2)107からのバスアクセス信号130を監視する(ステップS11)。
 バスアクセス信号130を監視した結果、アクセス監視機構112は、マスタ識別属性がHWA(2)107であり、リード/ライト属性がリード属性であり、開始アドレスが0x4000_0000であり、転送サイズがLCD表示の1ラインであることの属性情報を抽出する(ステップS12)。この抽出された属性情報は、スケジューリング機構115に渡される。
 アクセスポリシー制御機構114は、プライオリティ設定レジスタ113に、予めHWA(2)107からのアクセスの優先度がマスタの中で最高位であるとソフトウェアにより設定されている場合、アクセスポリシー制御機構114に格納されるポリシーに反映し、このポリシーをスケジューリング機構115に通知する(ステップS13)。
 スケジューリング機構115は、このポリシーに従い、HWA(2)107の属性情報をキューの最前列に格納する(ステップS14)。
 マージ機構116は、スケジューリング機構115のキューに格納された属性情報の類似性を分析し、属性情報を統合する(ステップS15)。マージ機構116は、クラスタメモリ空間選択装置119の設定情報から、クラスタメモリ5の空間がリードアドレスを含むと判定した場合、共有メモリ110のクラスタメモリ5の空間制御にかかわる設定を他のメモリアクセスの属性情報に影響されず保持し、HWA(2)107のキャッシュヒットを保証する。
 なお、最初のGPU105のライトアクセスの際、属性情報(この例ではリード属性、ライト属性、開始アドレス、転送サイズより)に適するクラスタメモリを確保していない場合、共有メモリ110のクラスタメモリ5の空間を確保するための設定がクラスタメモリ空間選択装置119に反映される。
 マージ機構116は、設定した情報を保持しており、この設定情報を、以降のメモリアクセスの際、更新が必要であるか否かの判断に使用する。すなわち、マージ機構116は、設定情報をもとに、クラスタメモリ空間の設定を変更する必要があるか否かを判別する(ステップS16)。必要である場合、マージ機構116は、クラスタメモリ空間の設定を変更し(ステップS17)、必要でない場合、そのままにする。
 なお、マージ機構116における属性の類似性を判断する際、今回のリード属性、ライト属性、開始アドレス及び転送サイズから、クラスタメモリ空間の設定を決めていたが、これらの他、マスタ識別属性や命令/データ属性等、アクセス監視機構112によって抽出可能な全ての属性情報は判断情報となる。
 この後、スケジューリング機構115は、そのキューの最前列に格納された属性情報を破棄する(ステップS17)。本動作が終了する。
 これにより、本実施形態の共有メモリシステムによれば、共有性の確保及びリフィル動作の低減による省電力化を実現することができる。
 次に、属性情報について説明する。図4は、アクセスポリシー制御機構114の設定例を示すテーブルである。このアクセスポリシー制御機構114の設定例で示すように、共有メモリシステムにおいて、マスタ101~107がインターコネクトバスにアクセスする際に付与する属性1030によって、クラスタメモリ1~8の共有属性が制御される。
 図5(A)及び(B)は、マスタ識別属性1040及びキャッシュ属性1090の設定例を示すテーブルである。図5(A)はマスタ識別属性1040を示し、図5(B)はキャッシュ属性1090を示す。
 クラスタメモリ1の設定例は次のとおりである。属性1030は1ラインあたり64バイトのラインサイズである。マスタ識別属性1040は0と1である。リード/ライト属性1050はリード/ライトの両方の場合である。アドレス範囲(アドレス属性)1060は、開始アドレス1060aが0x00000000以上、かつ終了アドレス1060bが0x20000000未満である。
 データ/命令属性1070は命令/データである。セキュア属性1080はセキュアである。キャッシュ属性(キャッシュ/非キャッシュ属性)1090はRAである。緊急処理属性10A0は不可である。転送属性(10B0)はシングルの場合にクラスタメモリ1でCPU(1)101とCPU(2)102間で命令/データを共有することができることを示す。
 例えば、携帯機器において動画再生を行う場合を例にあげて説明する。図6は、動画再生動作手順を示すフローチャートである。まず、CPU(1)101は、データの取得と著作権情報の認証を行う(ステップS21)。すなわち、CPU(1)101は、主記憶メモリ151からストリームデータを取得し、著作権情報等の保護情報を認証する処理を行う。その際、CPU(1)101は、属性1030でアクセスを行い、クラスタメモリ1で処理済みデータを共有する。
 CPU(2)102は、音声情報と画像情報の分離処理を行う(ステップS22)。すなわち、CPU(2)102は、認証処理を行ったデータに対し、音声情報と画像情報を分離する処理を行う。分離後のデータは、クラスタメモリ5、6で共有される。
 DSP(1)103は、音声と画像のデコード処理を行う(ステップS23)。すなわち、DSP(1)103は、音声情報をデコードする処理を行う際、CPU(2)102によって処理され、クラスタメモリ5、6で共有されたデータを使用する。音声デコード処理後のデータは、DSP(1)103によってデジタルアナログコンバータに出力される。
 また、DSP(2)104は、動画ストリームデコードを行ってフレームデータに変換する処理を行う際、同様に、クラスタメモリ5、6で共有されたデータを使用する。動画デコード後のフレームデータは、クラスタメモリ8を用いて、HWA(2)107と共有される。
 HWA(2)107は、クラスタメモリ8で共有されたデータを読み出し、LCD(図示せず)に出画する処理を行う(ステップS24)。この後、本動作が終了する。
 上記ステップS21~S24では、それぞれのマスタ間のデータは、属性1030によって制御され、共有される。なお、上記ステップS21~S24は、例示であって制限的なものではないと考えられるべきである。
 このように、第1の実施形態の共有メモリシステムによれば、適切な属性1030を予め設定し、それに応じて動的にクラスタメモリ1~8のいずれかあるいは全てを予め設定された属性1030に従って、適切にデータを共有することで、システムの性能を高めることができる。また、同時に、コヒーレンシ性が向上するため、主記憶メモリ151へのアクセスを減らすことができる。したがって、携帯機器に必要不可欠な低消費電力の性能も高めることができる。
 なお、属性1030では、クラスタメモリごとのラインサイズは、1ラインあたり64バイトのラインサイズ、1ラインあたり128バイトのラインサイズ、1ラインあたり256バイトのラインサイズ又は1ラインあたり512バイトのラインサイズ等であっても良い。
 マスタ識別属性1040は、0と1のみで共有する場合、0と1と5と6で共有する場合、0と2と3で共有する場合、2と3で共有する場合、5のみで共有する場合等、任意の組合せで設定されても良い。
 アドレス範囲1060は、0x00000000以上かつ0x20000000未満というように、任意の範囲で設定されても良い。
 データ/命令属性1070は、命令/データ、命令のみ、データのみ等で設定されても良い。ここで、データ属性1078は、1種類のみ示されたが、複数のデータ属性を持っても良い。
 セキュア属性1080は、セキュア属性の場合又は非セキュア属性としても良い。キャッシュ属性1090は、RA、RAB又はRAWAB等でも良い。緊急処理属性10A0は、対応不可、対応可から選択されても良い。転送属性10B0は、シングル転送、バースト転送等であっても良い。
 このような属性のいずれか1つ以上又はその他の属性情報を組み合わせて、アクセスポリシーを制御するようにしても良い。
(第2の実施形態)
 図7は、第2の実施形態における共有メモリシステムの構成を示す図である。第2の実施形態の共有メモリシステムでは、第1の実施形態の共有メモリシステムに加え、緊急転送属性が付加されたメモリアクセスに対するキャッシュメモリ空間貸与機能が付加されている。
 前記第1の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成110aを有するものとして説明する。
 HWA(2)107には、LCD(液晶表示ディスプレイ)452が接続される。また、クラスタメモリ空間選択装置119によって、クラスタメモリ1に該当するウェイは、CPU(1)101とCPU(2)102の共有クラスタ111として割り当てられている。したがって、クラスタメモリ1へのアクセスには、メモリアクセス471とメモリアクセス472aが存在する。
 また、メモリアクセス472bは、CPU(2)102のデータキャッシュ属性が割り当てられる空間(クラスタメモリ2、3で構成された共有空間461)に対して行われる。
 DSP(1)103のメモリアクセス473aと、DSP(2)104のデータキャッシュ属性メモリアクセス474aは、クラスタメモリ4で構成された空間462を共有する。DSP(2)104のデータキャッシュ属性メモリアクセス474bには、クラスタメモリ5、6で構成された空間463が割り当てられる。
 最後に、HWA(2)107がLCD452に表示する最終画像データは、クラスタメモリ7、8で構成された空間464に対するHWA(2)107のメモリアクセス475によって格納される。
 一方、CPU(2)102が作成するユーザインターフェース(以降、UIと略す)等のアニメーションは、CPU(2)102による最終画像の合成処理後、クラスタメモリ2、3で構成された空間461に格納される。
 ここで、クラスタメモリ7、8で構成された空間464と、クラスタメモリ2、3で構成された空間461とのコヒーレンス性は、内部に具備したコヒーレンシ機能470により保たれる。
 このように、HWA(2)107がメモリアクセス475を行うことで、クラスタメモリ7、8で構成された空間464へのメモリアクセス475でLCD452に出力することが可能である。
 次の動作を例に、緊急処理転送属性を付与したメモリアクセスに対するキャッシュメモリ空間貸与機能について説明する。この動作は、CPU(1)101が周辺接続デバイスの制御を行い、CPU(2)102が表示画面のUI描画制御を行っている場合、かつDSP(1)103が音響処理を行い、DSP(2)104がビデオデコード処理を行い、GPU105とHWA(1)106(ここでは、DMAコントローラ)が動作していない場合、HWA(2)107がLCDに出画データを転送している動作である。
 この動作状態において、HWA(2)107は、1秒間に60枚の映像データを出力する。組み立てられた最終画像データを一定周期でLCD452に遅れることなく出力する必要がある、いわゆるデットライン保証型のリアルタイム処理が課せられるマスタである。
 また、ビデオデコード用DSP(2)104も、毎秒決まったサイズの決まった枚数をデコード処理し、後段のHWA(2)107へ動画データを渡さなければならないため、同様に、リアルタイム処理が必要とされる。
 なお、HWA(2)107に比べ、DSP(2)104が行うビデオデコード処理は、主記憶メモリ151のバンド幅を大量に必要とする処理でもある。したがって、主記憶メモリ151へのスループットは最も優先的に与えられる。
 また、オーディオのデコード処理を担当する第1のDSP(1)103も、リアルタイム処理が必要である。しかし、高精細で大画面なビデオ処理を想定した場合、主記憶メモリ151バンド幅は、DSP(2)104 >> HWA(2)107 > DSP(1)103の順で大きな帯域を必要とする。
 このような場合、共有メモリ(キャッシュ)110は、要求帯域に比例した優先度で、より大きな帯域を必要とするマスタプロセッサに、より大きなクラスタメモリ空間を与えるように制御される。
 このため、共有メモリ110のクラスタ111を構成するウェイについては、DSP(2)104 > HWA(2)107 > DSP(1)103の順で、より多くのウェイが割り当てられる。
 また、共有の度合いとして、DSP(2)104とHWA(2)107のいずれもビデオデータを扱うが、これらの共有度は高くない。また、DSP(1)103はオーディオデータを扱うため、DSP(1)103のデータと他のマスタのデータを共有する必要はない。一方、DSP(1)103とDSP(2)104については、命令を一部共有できる箇所がある。
 このため、DSP(1)103のデータキャッシュ、DSP(2)104のデータキャッシュ及びHWA(2)107のデータキャッシュは非共有で制御される。また、DSP(1)103とDSP(2)104の命令は共有領域に格納され、コヒーレンシ制御が行われる。
 例えば、DSP(1)103、DSP(2)104それぞれのデータについては、同じデータを使って演算が繰り返されるため、共有キャッシュ空間の一部を、各DSPの2次キャッシュとして割り当てることは、レイテンシの性能向上の観点から有効である。
 一方、CPU(1)101の主記憶メモリ151へのアクセスはランダムである。しかも、本実施形態の場合、CPU(1)101については、DSP(2)104、HWA(2)107、DSP(1)103のいずれともデータの共有度合いが低く、プロセッサのコア性能も高くない。したがって、CPU(1)101については、割り当てられるウェイ数も少なく、クラスタへのアクセス制御として、一番優先度が低く設定される。
 また、CPU(2)102は、UIを制御しており、DSP(2)104のビデオデコード結果と、CPU(2)102が生成したUIのアニメーションを合成し、HWA(2)107にフレームデータを渡す。この動作を想定すると、DSP(2)104とHWA(2)107のデータを使って、CPU(2)102がLCD表示データの合成処理を行うため、共有メモリ110における共有度合いは高くなる可能性が高い。したがって、これらのマスタ間のデータは共有可能となるように、クラスタ111の割り当て(アサイン)が行われる。
 さらに、CPU(2)102のデータと、外部機器からの情報を処理するCPU(1)101のデータとの共有性は比較的高い。外部機器、例えばLCDのタッチパネルで得た情報をCPU(1)101が処理する。CPU(2)102は、その結果を受け、描画を制御しているUIを変更しなければならい。例えば、ビデオ再生の画面を早送りするゲージバーにおいて、ゲージの位置で早送りの速度を変える場合、指先でタッチパネル式のLCDを触れる位置に連動し、UIのゲージ位置を随時変更して描画していかなければならない。これらの制御データについては、共有メモリで共有度合いが高く、主記憶メモリ151でデータを共有するよりも、内部の共有メモリ110で共有してコヒーレンシ制御を行う方が、システムの処理性能は大幅に向上する場合がある。
 しかし、前述したように、UI操作がない場合、CPU(1)101の処理は軽く、CPU(2)102とのデータ共有もほとんど無いため、ウェイのアサインの優先度は低い。
 また、外部機器からの入力がない場合、CPU(1)101はアイドル状態にある。この場合、CPU(1)101には、共有メモリ110のウェイは割り当てられず(アサインされず)、ウェイの解放が行われる。
 この場合、電子機器の操作を行うユーザはタッチパネル式のLCDの操作を始めた際、外部デバイスからの割り込みにより、CPU(1)101は、アイドル状態から復帰し、すぐさま外部機器から入ってくるデータの処理を行う。
 このとき、CPU(1)101のバスアクセス信号130に対し、緊急処理属性を付けて(緊急転送属性付加)メモリアクセス471を行うと、共有メモリ110は、通常使っていないタグメモリとして準備したシャドウタグメモリに、それまでウェイが割り当てられていなかったCPU(1)101に、緊急処理属性付きのCPU(1)101のアクセスを割り当てる。
 それ以前、共有キャッシュのウェイ割当ての優先順位は、DSP(2)104 >> HWA(2)107 > DSP(1)103 > CPU(2)102の順であった。GPU105とHWA(1)106(DMAコントローラ)とCPU(1)101には、共有キャッシュのウェイがアサインされていない。このため、一番優先度が低いCPU(2)102のウェイをアサインしていた領域のタグが、一時的にウェイをロックし、シャドウタグに切り替えられる。
 これにより、CPU(2)102が使っていた共有メモリ110のクラスタ111の一部を解放し、この解放された空間をシャドウタグ経由でCPU(1)101が使えるようにする。また、外部機器からの入力がなくなり、CPU(1)101がアイドルに入ると、つまり、緊急転送属性が付加されたメモリアクセスが完了すると、シャドウタグは通常タグと切り替わる。そして、CPU(1)101が使っていたウェイをCPU(2)102が使えるようにする。
 なお、このシャドウタグと通常タグを切り替える時、ウェイ上のデータを一瞬で(フラッシュして)自動で入れ替える制御が行われる。シャドウタグの切替え時には通常タグのデータが残っている。したがって、CPU(1)101に貸与したウェイを解放した際、CPU(2)102にどこのデータを書き戻せばよいかは、この方法で速やかに判別される。シャドウタグはこのような仕組みを提供する。
 このように、第2の実施形態の共有メモリシステムによれば、コヒーレンシ制御を行うため、システムの処理性能を大幅に向上する。また、ウェイのアサインの優先度が低いUI操作のような処理を行うマスタに対しても、共有キャッシュを割り当てることができる。
(第3の実施形態)
 第3の実施形態では、第2の実施形態とは異なるコヒーレンシ制御を行う場合を示す。図8は、第3の実施形態における共有メモリシステムの構成を示す図である。前記第1の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成110aを有するものとして説明する。図8に示す各マスタのクラスタメモリ共有設定は、前記第2の実施の形態とほぼ同じである。
 第3の実施形態では、CPU(2)102のアクセス572cが、クラスタメモリ2、3で構成された空間461に加え、HWA(2)107用に割り当てられているクラスタメモリ7、8で構成された空間464にも設定されている点で、前記第2の実施形態とは異なる。
 これにより、CPU(2)102のデータとHWA(2)107のソースデータとは、常に共有状態となる。ワークアドレスで画像を加工した後、最終出画データを置くアドレスにCPU(2)102がデータを格納すると、HWA(2)107は、共有メモリで出画データを共有することができる。
 このように、第3の実施形態の共有メモリシステムによれば、毎回、HWA(2)107は、主記憶メモリ151にアクセスする必要がなくなるため、主記憶メモリ151のバンド幅を抑制し、消費電力の支配項である、主記憶メモリ151へのアクセス電力を削減することができる。
(第4の実施形態)
 第4の実施形態では、第1の実施形態と異なるラインサイズを備え、処理内容に適切なラインサイズのクラスタ111を割り当てることで、前記第1の実施形態よりも、更に性能の改善を図る場合を示す。
 図9は、第4の実施形態における共有メモリシステムの構成を示す図である。前記第1の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成110aを有するものとして説明する。
 複数のマスタのうち、CPU(1)101が周辺接続デバイスの制御を行い、CPU(2)102がブラウザの表示処理を行い、DSP(2)104がソフトウェアによるビデオコーデックを行う場合を想定する。
 また、本実施形態では、CPU(1)101、CPU(2)102及びDSP(2)104はそれぞれ1次キャッシュを搭載する。
 CPU(1)101は、1次キャッシュ108a、108b及びメモリコントローラ109を有し、外部機器の制御やLSIのIO制御を行う。1次キャッシュ(命令キャッシュ)108a、(データキャッシュ)108bはそれぞれ32バイトのラインサイズで構成される。
 一方、CPU(2)102は、CPU(1)101に比べ、動作周波数も高く、浮動小数点演算等のコプロセッサも搭載した高性能CPUであり、1次キャッシュ以外に2次キャッシュを搭載する。2次キャッシュ608cのラインサイズは64バイトである。
 DSP(2)104は、高いスループットでビデオのコーデック処理を行えるメディア処理対応のDSPである。DSP(2)104の内部には、ラインサイズが128バイトの1次キャッシュ(命令キャッシュ)608d、(データキャッシュ)608eが搭載されている。
 本実施形態では、プロセッサコア間で共有する共有メモリ110には、ラインサイズが128バイトのウェイで構成されるクラスタメモリ群680と、ラインサイズが256バイトのウェイで構成されるクラスタメモリ群681と含む複数種類のクラスタメモリ群が混在する。
 一般的に、キャッシュメモリの容量は、ラインサイズとセット数とウェイ数の掛け算で算出される。また、一般的に、キャッシュのメモリ容量が大きいほどキャッシュヒット率が向上し、見かけ上のプロセッサ性能を高めることができる。ただし、キャッシュヒット率については、ソフトウェア構造の依存性が高く、ヒット率の低いプログラムや、比較的ヒット率が高いプログラムであっても、ある一定のメモリ容量を超えると、メモリ容量を増加させてもヒット率が飽和する傾向にあることが知られている。
 また、同じメモリ容量であったとしても、キャッシュメモリのラインサイズが大きい場合、ヒット率が高くなる場合がある。例えば、特に画像等のメディアデータの場合、比較的1つのデータサイズが大きいため、1つのラインサイズが大きいと効率よくキャッシュヒットする場合がある。
 本実施形態では、こういった特性を活かし、アクセス監視機構112はアクセスの属性を監視し、例えばCPU(2)102が扱うブラウザ描画データや、DSP(2)104が共有メモリ110にアクセスするフレームデータの場合、大きなラインサイズのクラスタ111を優先してマッピングする制御がラインサイズ制御部118によって行われる。
 一方、CPU(1)101の1次データキャッシュに関するミスヒットや、CPU(1)101、CPU(2)102の1次命令キャッシュに関するミスヒットのアクセス等が、共有メモリ110にアクセスする際、大きなラインサイズで構成されるクラスタ111に割り当てられてしまうと、同一ライン上でヒットとミスヒットが混在する場合も多く発生する。この結果、無駄なデータアクセスが増え、共有メモリ110のアクセスによる動作電流の増加やプロセッサのレイテンシ低下といった問題の発生が懸念される。
 本実施形態では、このような特性のアクセスはアクセス監視機構112によって、小さなウェイのクラスタメモリに優先的に割り当てる制御が行われる。
 第4の実施形態の共有メモリシステムによれば、処理内容に適切なラインサイズのクラスタ111を割り当てることで、更に性能の改善を図ることができる。
 なお、少ないマスタでクラスタメモリ111を共有する場合、共有メモリのサイズを増やしても、共有したメモリ容量に対してプロセッサ処理性能が飽和傾向にある場合、あるいは単体マスタしかクラスタメモリ111にアクセスしない場合、共有メモリシステムを、次のような構成にしても良い。すなわち、一部のクラスタメモリ111を、予めどのマスタにも割り当てない(アサインしない)領域に指定し、クロックを抑制する等のクロック制御機能、LSIに搭載したオンチップスイッチをオフする等の電源遮断機能、メモリ内容を保持したままメモリ電圧を下げる等のリーク電流抑制機能のいずれか1つあるいは2つ以上の機能(電源制御機能)を有する構成とすることができる。このような機能を適用することで、電力性能を向上させることができる。
(第5の実施形態)
 図10は、第5の実施形態における共有メモリシステムの構成を示す図である。第5の実施形態の共有メモリシステムでは、非対称なマルチプロセッサ搭載のアプリケーションプロセッサLSI(1)700(半導体装置)に対し、外部にコンパニオンとして拡張接続されたシステムLSI(2)701が、共有メモリシステムのマスタプロセッサ、つまりHWA(3)711として、プロセッサユニット710とともに共有メモリ712を共有するシステムが実現される。
 このような構成を有することで、LSI(2)701のメモリアクセスは、LSI(1)701の内部で、1つのマスタであるHWA3(711)のメモリアクセスとして扱われる。したがって、LSI(1)700とLSI(2)701間で、コヒーレンスをとる構成とすることができる。また、LSI(2)701に接続される主記憶メモリ151bを省くことができる。
 第5の実施形態の共有メモリシステムによれば、それぞれのLSIに設けられていた主記憶メモリ151a、151b(図10参照)の数を削減し、性能を確保しつつ消費電力を削減することができる。また、電子機器のコストダウンを可能とする。
 なお、今回開示された実施の形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
 本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
 本出願は、2010年7月16日出願の日本特許出願(特願2010-161797)に基づくものであり、その内容はここに参照として取り込まれる。
 本発明は、複数のマスタによってアクセスされる共有メモリを有し、処理時間の短縮及び消費電力の低減が可能なメモリシステム等として有用である。
101 CPU(1)
102 CPU(2)
103 DSP(1)
104 DSP(2)
105 GPU
106 HWA(1)
107 HWA(2)
108a 命令キャッシュ
108b データキャッシュ
109 メモリコントローラ
110 共有メモリ
110a 共有キャッシュメモリ構成
111 クラスタ
111a 全マスタで共有する空間
111b 複数のマスタ間のみで共有する空間
111c 単一マスタで占有する空間
112 アクセス監視機構
113 プライオリティ設定レジスタ
114 アクセスポリシー制御機構
115 スケジューリング機構
116 マージ機構
117 タグ切替部
118 ラインサイズ制御部
119 クラスタメモリ空間選択装置
120 外部メモリ制御部
121 省電力制御部
122 クロック制御部
124 キャッシュ制御機構
130 バスアクセス信号
131 制御情報
137 フラグ信号
139 動作クロック
151 主記憶メモリ
151a、151b 主記憶メモリ
3319 インターコネクトバス
3340 バス負荷検出部
3341 バス負荷情報
3350 リプレースウェイ制御部
452 LCD
461 クラスタメモリ2、3で構成された空間
462 クラスタメモリ4で構成された空間
463 クラスタメモリ5、6で構成された空間
464 クラスタメモリ7、8で構成された空間
470 コヒーレンシ機能
471 CPU1のメモリアクセス
472a、472b CPU2のメモリアクセス
473a DSP1のメモリアクセス
474a、474b DSP2のメモリアクセス
475 最終画像データのメモリアクセス
608c CPU2の二次キャッシュ
608d DSP2の1次命令キャッシュ
608e DSP2の1次データキャッシュ
680 ラインサイズが128バイトのウェイで構成するクラスタメモリ群
681 ラインサイズが256バイトのウェイで構成するクラスタメモリ群
700 アプリケーションプロセッサLSI1
701 システムLSI2
710 プロセッサユニット
711 HWA(3)
712 共有メモリ
1030 属性
1040 マスタ識別属性
1050 リード/ライト属性
1060 アドレス属性
1070 データ/命令属性
1080 セキュア属性
1090 キャッシュ属性
10A0 緊急処理属性
10B0 転送属性

Claims (14)

  1.  複数のマスタと、
     前記複数のマスタによってアクセスされ、クラスタに分割された共有メモリと、
     前記複数のクラスタの少なくとも1つを含む複数のクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当部と、
     前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更部と、
    を備えたことを特徴とする共有メモリシステム。
  2.  請求項1に記載の共有メモリシステムであって、
     前記マスタは、中央演算処理装置、デジタルシグナルプロセッサ、汎用グラフィックス処理装置又はハードウェアアクセラレータであることを特徴とする共有メモリシステム。
  3.  請求項1に記載の共有メモリシステムであって、
     前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード/ライト属性、アドレス属性、データ/命令属性、セキュア属性、キャッシュ/非キャッシュ属性及び転送属性の少なくとも1つを含むことを特徴とする共有メモリシステム。
  4.  請求項1に記載の共有メモリシステムであって、
     前記共有メモリはキャッシュメモリであり、
     前記クラスタ空間にミスヒットが発生した場合、リフィル動作中、当該クラスタ空間にアクセスが割り当てられたマスタの動作クロック周波数を下げるもしくは当該動作クロックを停止させるクロック制御部を備えたことを特徴とする共有メモリシステム。
  5.  請求項1に記載の共有メモリシステムであって、
     前記マスタの属性情報を判別し、当該マスタから前記クラスタ空間へのアクセスを許可するアクセス監視部を備えたことを特徴とする共有メモリシステム。
  6.  請求項5に記載の共有メモリシステムであって、
     前記マスタから前記クラスタ空間へのアクセスを格納するスケジューリング部と、
     前記スケジューリング部によって格納された前記クラスタ空間へのアクセスを制御するアクセスポリシー制御部と、を備え、
     前記アクセス監視部は、前記マスタの属性情報を判別して前記スケジューリング部に渡し、
     前記アクセスポリシー制御部は、ポリシーを前記スケジューリング部に通知し、前記属性情報に該当するクラスタ空間へのアクセスを許可することを特徴とする共有メモリシステム。
  7.  請求項6に記載の共有メモリシステムであって、
     前記アクセスポリシー制御部は、前記クラスタ空間へのアクセスの優先度が設定されたプライオリティ設定レジスタの内容を変更することを特徴とする共有メモリシステム。
  8.  請求項6又は7に記載の共有メモリシステムであって、
     前記スケジューリング部によって格納された前記マスタから前記クラスタ空間へのアクセスを統合する統合部を備えたことを特徴とする共有メモリシステム。
  9.  請求項6に記載の共有メモリシステムであって、
     前記共有メモリはキャッシュメモリであり、
     前記マスタから前記クラスタ空間へのアクセスに緊急転送属性を付加する緊急転送属性付加部を備え、
     前記アクセスポリシー制御部は、前記緊急転送属性が付加された前記マスタからのアクセスに、明け渡し可能な前記クラスタ空間の領域を貸与することを特徴とする共有メモリシステム。
  10.  請求項9に記載の共有メモリシステムであって、
     前記緊急転送属性が付加されたマスタからのアクセスが完了すると、前記領域が貸与さ
    れたクラスタ空間を元に戻すことを特徴とする共有メモリシステム。
  11.  請求項1に記載の共有メモリシステムであって、
     前記共有メモリはキャッシュメモリであり、
     前記複数のクラスタ空間はラインサイズの異なるクラスタ空間からなり、
     前記マスタの処理内容に応じたラインサイズの前記クラスタ空間に、前記マスタからのアクセスを振り分けるラインサイズ制御部を備えたことを特徴とする共有メモリシステム。
  12.  請求項1に記載の共有メモリシステムであって、
     特定の前記クラスタ空間に対し、電源の供給を遮断する、又はリーク電流を抑制する電源制御部を備えたことを特徴とする共有メモリシステム。
  13.  請求項1に記載の共有メモリシステムであって、
     半導体装置からなり、前記マスタとして、他の半導体装置が接続されたことを特徴とする共有メモリシステム。
  14.  複数のマスタと、前記複数のマスタによってアクセスされ、複数のクラスタに分割された共有メモリとを有する共有メモリシステムの制御方法であって、
     前記複数のクラスタの少なくとも1つを含むクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当ステップと、
     前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更ステップと、を有する共有メモリシステムの制御方法。
PCT/JP2011/002296 2010-07-16 2011-04-19 共有メモリシステム及びその制御方法 WO2012008073A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/467,684 US20120221795A1 (en) 2010-07-16 2012-05-09 Shared memory system and control method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010161797A JP5485055B2 (ja) 2010-07-16 2010-07-16 共有メモリシステム及びその制御方法
JP2010-161797 2010-07-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/467,684 Continuation US20120221795A1 (en) 2010-07-16 2012-05-09 Shared memory system and control method therefor

Publications (1)

Publication Number Publication Date
WO2012008073A1 true WO2012008073A1 (ja) 2012-01-19

Family

ID=45469093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/002296 WO2012008073A1 (ja) 2010-07-16 2011-04-19 共有メモリシステム及びその制御方法

Country Status (3)

Country Link
US (1) US20120221795A1 (ja)
JP (1) JP5485055B2 (ja)
WO (1) WO2012008073A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130205089A1 (en) * 2012-02-08 2013-08-08 Mediatek Singapore Pte. Ltd. Cache Device and Methods Thereof
WO2019188176A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー キャッシュメモリ

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101915198B1 (ko) * 2012-08-10 2018-11-05 한화테크윈 주식회사 프로세서간 메시지처리장치 및 방법
US8931108B2 (en) 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9274951B2 (en) * 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
US9454485B2 (en) 2013-08-01 2016-09-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing local cache from a failover node
JP6260303B2 (ja) * 2014-01-29 2018-01-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
KR101704674B1 (ko) * 2015-08-11 2017-02-08 주식회사 온캐스팅 디지털 시네마 영상의 고속 생성 장치 및 그 방법
CN105468567B (zh) * 2015-11-24 2018-02-06 无锡江南计算技术研究所 一种异构众核离散访存优化方法
RU168781U1 (ru) * 2016-06-07 2017-02-17 Открытое акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" Устройство обработки стереоизображений
RU2623806C1 (ru) 2016-06-07 2017-06-29 Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") Способ и устройство обработки стереоизображений

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123031A (ja) * 2006-11-08 2008-05-29 Toyota Motor Corp 共有メモリ管理装置及び該装置を備えたマルチプロセッサシステム
JP2008217523A (ja) * 2007-03-06 2008-09-18 Toshiba Corp 半導体集積回路
WO2009130871A1 (ja) * 2008-04-25 2009-10-29 パナソニック株式会社 復号化装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845310A (en) * 1993-12-15 1998-12-01 Hewlett-Packard Co. System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses
JPH07248967A (ja) * 1994-03-11 1995-09-26 Hitachi Ltd メモリ制御方式
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
DE69822591T2 (de) * 1997-11-19 2005-03-24 Imec Vzw System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US20080320209A1 (en) * 2000-01-06 2008-12-25 Super Talent Electronics, Inc. High Performance and Endurance Non-volatile Memory Based Storage Systems
JP3899784B2 (ja) * 2000-06-19 2007-03-28 セイコーエプソン株式会社 クロック制御装置、半導体集積回路装置、マイクロコンピュータ及び電子機器
US20020129274A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a security server in a partitioned processing environment
US6862666B2 (en) * 2002-05-16 2005-03-01 Sun Microsystems, Inc. Hardware assisted lease-based access to memory
US20040034858A1 (en) * 2002-08-14 2004-02-19 Kushlis Robert J. Programming a multi-threaded processor
WO2004046934A2 (en) * 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
US7231504B2 (en) * 2004-05-13 2007-06-12 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
JP4725181B2 (ja) * 2005-04-28 2011-07-13 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム及びキャッシュ管理方法
CN101819555B (zh) * 2005-07-06 2011-11-02 松下电器产业株式会社 访问控制装置、访问控制集成电路以及访问控制方法
JP2007026366A (ja) * 2005-07-21 2007-02-01 Canon Inc メモリコントローラ
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
JP2008097572A (ja) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd 演算装置、コンピュータシステム、および携帯機器
US7924863B2 (en) * 2007-01-10 2011-04-12 Etherntty Networks Ltd. Device and method for processing data chunks
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
JP5231867B2 (ja) * 2008-05-23 2013-07-10 株式会社東芝 キャッシュメモリシステム
US8055848B2 (en) * 2008-07-31 2011-11-08 Samsung Electronics Co., Ltd. Method and system for securing instruction caches using substantially random instruction mapping scheme
US8176282B2 (en) * 2009-03-11 2012-05-08 Applied Micro Circuits Corporation Multi-domain management of a cache in a processor system
US8250332B2 (en) * 2009-06-11 2012-08-21 Qualcomm Incorporated Partitioned replacement for cache memory
US8549249B1 (en) * 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123031A (ja) * 2006-11-08 2008-05-29 Toyota Motor Corp 共有メモリ管理装置及び該装置を備えたマルチプロセッサシステム
JP2008217523A (ja) * 2007-03-06 2008-09-18 Toshiba Corp 半導体集積回路
WO2009130871A1 (ja) * 2008-04-25 2009-10-29 パナソニック株式会社 復号化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASAMI NAKAJIMA ET AL.: "Design and Evaluation of a Heterogeneous Multicore SoC with 9 CPUs and 2 Matrix Processors", IPSJ SIG NOTES, vol. 2008, no. 39, 6 May 2008 (2008-05-06), pages 45 - 50 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130205089A1 (en) * 2012-02-08 2013-08-08 Mediatek Singapore Pte. Ltd. Cache Device and Methods Thereof
WO2019188176A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー キャッシュメモリ
JP2019179413A (ja) * 2018-03-30 2019-10-17 株式会社デンソー キャッシュメモリ

Also Published As

Publication number Publication date
US20120221795A1 (en) 2012-08-30
JP5485055B2 (ja) 2014-05-07
JP2012022616A (ja) 2012-02-02

Similar Documents

Publication Publication Date Title
JP5485055B2 (ja) 共有メモリシステム及びその制御方法
EP2549382B1 (en) Virtual GPU
US8850168B2 (en) Processor apparatus and multithread processor apparatus
US8176220B2 (en) Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
CN105579961B (zh) 数据处理系统及操作方法、用于数据处理系统的硬件单元
US7164427B2 (en) Apparatus, method and system with a graphics-rendering engine having a time allocator
JP2020511706A (ja) 行バッファ競合を低減するための動的メモリの再マッピング
US10970223B2 (en) Cache drop feature to increase memory bandwidth and save power
JP2004536395A (ja) グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
US20160275015A1 (en) Computing architecture with peripherals
TWI773683B (zh) 使用在以一中央處理器單元為基礎的系統中之適應性壓縮提供記憶體頻寬壓縮
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
US20080007561A1 (en) CPU mode-based cache allocation for image data
JP4388005B2 (ja) コンテキスト切替え装置
US9035961B2 (en) Display pipe alternate cache hint
US20160196206A1 (en) Processor and memory control method
JPWO2007099659A1 (ja) データ転送装置及びデータ転送方法
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP2009175960A (ja) 仮想マルチプロセッサシステム
US20130138815A1 (en) Memory bandwidth reallocation for isochronous traffic
US20220300421A1 (en) Memory Sharing
JP2016048502A (ja) 情報処理装置及びメモリアクセス処理方法
JP2009505178A (ja) 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法
JP2006079394A (ja) データ処理装置
JP2012008767A (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: 11806410

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11806410

Country of ref document: EP

Kind code of ref document: A1