WO2004031963A1 - 半導体データプロセッサ - Google Patents

半導体データプロセッサ Download PDF

Info

Publication number
WO2004031963A1
WO2004031963A1 PCT/JP2002/010162 JP0210162W WO2004031963A1 WO 2004031963 A1 WO2004031963 A1 WO 2004031963A1 JP 0210162 W JP0210162 W JP 0210162W WO 2004031963 A1 WO2004031963 A1 WO 2004031963A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
bus
access
data
cache
Prior art date
Application number
PCT/JP2002/010162
Other languages
English (en)
French (fr)
Inventor
Yuki Kondoh
Tatsuya Kamei
Makoto Ishikawa
Original Assignee
Renesas Technology Corp.
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 Renesas Technology Corp. filed Critical Renesas Technology Corp.
Priority to US10/520,653 priority Critical patent/US7356649B2/en
Priority to PCT/JP2002/010162 priority patent/WO2004031963A1/ja
Priority to JP2004541170A priority patent/JP4024247B2/ja
Publication of WO2004031963A1 publication Critical patent/WO2004031963A1/ja

Links

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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Definitions

  • the present invention relates to a data processor having an on-chip memory, particularly to access control of the on-chip memory, and relates to a technique effective when applied to, for example, a single-chip microphone computer.
  • high-performance memory is being used to achieve higher performance.
  • a high-speed memory with a built-in processor can be used by arranging it in an address space of a CPU (Central Processing Unit), like an external memory.
  • a built-in memory as a cache memory and configuring a cache system, the speed of memory access has been increased.
  • An example of the former is disclosed in Japanese Patent Application Laid-Open No. Hei 5-3007485, and an example of the latter is described in Japanese Patent Application Laid-Open Publication No. Hei 6-103044.
  • the performance cannot be improved simply by incorporating the memory in the data processor, but the memory area that is frequently referred to in the running program is checked in advance, and that part is embedded in the data processor. Must be allocated to memory. In short, the manner of address mapping of the built-in memory according to the operation program executed by the processor greatly affects the data processing performance.
  • the access frequency of the memory area is automatically determined and stored in the cache memory. Therefore, it is not necessary to check frequently accessed memory areas in advance, but there are access patterns for which performance cannot be improved depending on the algorithm for determining the access frequency.
  • the cache memory can improve the memory access performance when the same data is accessed a plurality of times, and conversely degrade the memory access performance for image data that is sequentially scanned in series.
  • a program sequentially accesses a memory area once from the start address to the end address (sequential access), and randomly accesses various addresses (random access). Performance may not be obtained in a situation where programs are simultaneously executed in a time-sharing manner.
  • An object of the present invention is to provide a semiconductor data processor which can easily improve the performance of accessing an internal memory.
  • Another object of the present invention is to provide a semiconductor data processor capable of improving the efficiency of sequential access without lowering the performance of random access to a built-in memory.
  • Still another object of the present invention is to provide a semiconductor processor which can easily improve the access performance for both sequential access and random access to a built-in memory.
  • a semiconductor memory processor comprises: a first memory constituting a cache memory; a second memory which can be subjected to cache by the first memory or non-cacheable; and 2 Make sure the memory A read buffer that is enabled to output data overnight when read access is performed as a non-cache target.
  • the specification of the cache target and non-cache target for the second memory is determined by specifying the cache target or non-target for the memory space where the second memory is mapped. The designation may be made, for example, by the operation mode of the data processor or by setting for the control register.
  • sequential access Assume a usage mode in which the effect of speeding up access by cache memory is unlikely to be expected, such as sequential access.
  • sequential access is made to the second memory not subject to cache, by outputting data responding to the sequential access from the read buffer, sequential read access can be sped up.
  • the cache operation of the first memory is not performed, and the cache entry data stored in the first memory is undesirably rewritten or replaced by the sequential access data having a low possibility of being accessed.
  • sequential access can be made more efficient without deteriorating the performance of random access to the built-in memory.
  • the read buffer temporarily holds predetermined access data and an address when the second memory is accessed as a non-cache target. For example, when the read buffer does not hold data corresponding to the access when the second memory is accessed, the data and the address corresponding to the access are newly stored. The stored data is output from the read buffer instead of the second memory read access. In short, the read buffer operates to hold data including the contents of the previous memory access. When an access to the same data as that of the stored data is detected, in response to this, the data already stored is output instead of the access to the second memory.
  • the read buffer is connected to the first bus from the upstream side of the read request, and is connected to the second bus from the downstream side of the read request.
  • the second bus is a bus that can transmit data with the number of parallel bits equal to or greater than the number of bits for parallel access by the first bus.
  • the data sequentially accessed can be stored together in the read buffer via the second bus.
  • the read buffer can output the stored data in response to several read accesses to the second memory.
  • the read buffer comprises: a data register for holding read data transmitted from the first memory via the second bus; and an address register for holding an address of the data. And a control circuit for outputting the data of the data register to the first bus in response to a read request for an address matching the address held in the data register.
  • the first bus and the second bus are dedicated buses for sequential access.
  • an internal circuit which is connected to the second bus and the third bus and controls access to the second memory is provided. It has a memory controller. Further, the third bus has a secondary cache memory controller that controls the second memory as a secondary cache memory for the first memory. The secondary cache memory controller invalidates the cache of the second memory in response to a signal indicating cache invalidation of the first memory. This is useful for matching the information stored in the primary cache and the secondary cache. According to the mode of use for the second memory, the internal memory controller and the secondary cache memory controller may be exclusively operated, and may be set in the control register.
  • a semiconductor memory processor comprises: a first memory constituting a cache memory; a second memory capable of being a non-secondary cache memory or a non-cache memory with respect to the first memory; Specifying means for selectively specifying the two memories to either the secondary cache memory or the memory other than the cache memory.
  • Specifying means for selectively specifying the two memories to either the secondary cache memory or the memory other than the cache memory.
  • a secondary cache memory controller that performs access interface control using the second memory as a secondary cache memory of the first memory.
  • an internal memory controller that performs access interface control as a memory other than the cache memory with respect to the second memory is provided.
  • the second memory selected to be a non-cache memory is the key from the first memory. It may be possible to be cached or uncached.
  • the memory may include a read buffer that is enabled to output data corresponding to the access when the second memory is accessed as a non-cache target.
  • FIG. 1 is a block diagram illustrating a microcomputer according to an example of the present invention.
  • FIG. 2 is a logic circuit diagram illustrating details of the read buffer.
  • FIG. 3 is a timing chart showing, as a comparative example, a case where a read buffer is not used or there is no read buffer, and a case where data is read from an sequential bus for sequential access is used as a comparative example.
  • FIG. 4 is a timing chart showing the operation of reading data from the serial bus for sequential access using the read buffer.
  • FIG. 5 is a block diagram showing another example of the microcomputer. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 illustrates a microcomputer according to an example of the present invention.
  • the microcomputer 1 shown in FIG. 1 is formed on a single semiconductor substrate (semiconductor chip) such as single-crystal silicon by a well-known CMS integrated circuit manufacturing technology.
  • the processor core 2 includes, for example, a CPU (central processing unit) 3, an FPU (floating point arithmetic unit) 4, a primary cache memory controller (L1CC) 5, and a primary cache memory as a first memory.
  • Mori (L 1 CM) 6 The CPU 3 includes an instruction control unit and an execution unit.
  • the instruction control unit fetches an instruction, decodes the fetched instruction, and generates a control signal.
  • the execution unit includes a general-purpose register, an arithmetic and logic unit, and the like. The operation of the execution unit is generated by the control signal, and performs an operation using a flipped operand or the like.
  • the FPU 4 receives a floating-point operation command from the CPU 3 when the CPU 3 fishes a floating-point instruction, receives an operation operand accessed by the CPU 3, and performs a floating-point operation.
  • the primary cache memory 6 has a set-associative associative memory structure.
  • the primary cache memory controller 5 performs an associative search on the primary cache memory 6, and accesses the primary cache memory 6 if the cache cache is a cache miss.
  • a lower memory such as an internal memory 20 described later is accessed to obtain necessary data and instructions, and a cache file for the primary cache memory 6 and, if necessary, replacement of a cache entry are controlled.
  • the internal memory 20 is composed of, for example, an SRAM (study random access memory).
  • the primary cache memory controller 5 has an interface bus 11 for sequential access as the first path and an interface bus for random access as the third bus. 0 is connected.
  • the interface bus 11 for sequential access is connected to one access port of the read buffer 12 and the other access port of the read buffer 12 is connected to the interface bus 13 as the second bus Is done.
  • the interface buses 10, 11, 13 include signal lines for address, data, and access control signals.
  • the number of parallel access data bits of the interface bus 13 is equal to or greater than the number of parallel access data bits of the interface bus 11. For example, the number of parallel access data bits of the interface bus 13 is 256 bits, and the number of parallel access data bits of the interface bus 11 is 64 bits.
  • the number of parallel access data bits of the in-plane bus 10 is 64 bits.
  • the read buffer 12 reads the access buffer 12 when the access request from the interface bus 11 is read and the access request address matches the address stored in the read buffer 12.
  • the held data is transmitted to the primary cache memory controller 5. If the read and address do not match, the data width of the access request is replaced, for example, from 64 bits to 256 bits, and the data is input to the interface bus 13. Issue a face request.
  • the access request transmitted from the interface bus 11 is output to the interface bus 13 as it is as an interface request.
  • An access request from the interface bus 13 is transmitted to the internal memory controller (RAMC) 14.
  • An access request from the interface bus 10 is transmitted to a peripheral bus controller (PBIC) 15, and from there, to one or more peripheral circuits 24 via a peripheral bus 23, and to a third bus.
  • PBIC peripheral bus controller
  • the internal memory controller 14 is transmitted to the internal memory controller 14 via the interface bus 16, and is also transmitted to the secondary cache memory controller 21.
  • the internal memory controller 14 controls access to the internal memory 20.
  • the secondary cache memory controller 21 controls the internal memory 20 as a secondary cache memory for the cache memory 6.
  • the peripheral bus interface controller 16 has address mapping information for the peripheral circuit 24 and the internal memory 20. If the access request from the peripheral bus 10 is to a peripheral circuit, the peripheral bus An access request is output to the interface 23, and if it is for the internal memory 20, an access request is output to the interface bus 15.
  • Peripheral circuit 2 may include a bus master module such as a DMAC (direct-memory-access controller), or a bus slave module such as a timer, serial interface, or the like.
  • the internal memory controller 14 arbitrates the access request from the interface bus 13 and the access request from the interface bus 16 and outputs an access control signal to the internal memory 20 to the bus # 1.
  • the access request from the interface bus 13 is an access request when the internal memory 20 is accessed by the primary cache memory 6 as a non-cache target.
  • an access request via 10 and 16 is an access request for accessing the internal memory 20 as a cache target of the primary cache memory 6.
  • the primary cache memory controller 5 determines whether an access request to the internal memory 20 is to be cached in the primary cache memory 6 based on the access address.
  • the specification of the cache target (cacheable) and non-cache target (non-cache pull) for the internal memory 20 is determined by specifying the cache target or non-target for the memory space to which the internal memory 20 is mapped.
  • the designation is made, for example, by the operation mode of the microcomputer 21 or by setting for the control register (not shown).
  • the secondary cache memory controller 21 is an interface bus.
  • the The address tag of the access address is compared with the cache tag in the secondary cache memory controller 21, and if it is a cache hit, the access control signal of the cache operation for operating the internal memory 20 as the cache memory is transmitted to the bus 18. Output.
  • Either the access control signal from the bus 17 or the access control signal from the bus 18 is transmitted to the internal memory 20 by the selector 19.
  • the internal memory 2 is accessed by the transmitted access control signal. If the access operation instruction to the internal memory 20 is a read access, the internal memory 20 outputs the read data to the bus 26 and transmits it to the internal memory controller 14 or the secondary cache memory controller 21. .
  • write data is supplied from the internal memory controller 14 or the secondary cache memory controller 21 to the memory 20 via the bus 26.
  • the instruction to write data from the secondary cache memory controller 21 to the memory 20 via the bus 26 is issued when a cache miss occurs due to a read miss of the secondary cache memory or a cache fill operation occurs due to a write miss. Is done.
  • the selection by the selector 19 is determined according to the set value of the mode control register 22.
  • the operation of the internal memory controller 14 and the operation of the secondary cache memory controller 21 are determined according to the set value of the register 22.
  • the operation of the internal memory controller 14 is selected (enabled)
  • the secondary cache memory controller 21 is not operated, and the output of the internal memory controller 14 is selected by the selector 19. You.
  • the secondary cache memory controller 21 is valid, the internal memory controller 14 is not operated, and the output of the secondary cache memory controller 21 is selected by the selector 19.
  • Internal memory controller 14 is connected to interface bus 13 or 16 Output the result in response to the access request. Further, the secondary cache memory controller 21 outputs a result in response to the access request to the interface bus 16.
  • the primary cache memory controller 5 outputs a cache entry batch invalidation request signal 30 to the secondary cache memory controller 21 when the primary cache memory 6 is invalidated collectively.
  • This signal 30 is generated by the instruction of the program while the CPU 3 is executing the batch invalidation operation instruction for the primary cache memory 6.
  • the batch invalidation request signal 30 is supplied to the secondary cache memory controller 21 as a batch invalidation request signal 31 via the peripheral bus interface controller 15.
  • the secondary cache memory controller 21 invalidates the valid bits of all cache entries of the cache tag held in the secondary cache memory controller 21, and caches the internal memory 20. Clear the entry.
  • FIG. 2 illustrates the details of the read buffer 12.
  • Reference numerals 4 1 to 4 5 denote the divided evening buses 11.
  • 41 indicates the type of the access request, and indicates that there is no read request, write request, or access request (NOP).
  • 42 indicates the data width of the access request, and there are 1 byte, 2 bytes, 4 bytes, 8 notes, and 32 bytes.
  • Reference numeral 43 denotes an address of the access request, which has a width of 22 bits.
  • Reference numeral 44 denotes a signal for returning read data when the access request is a read request, and has a width of 64 bits (corresponding to 8 bits).
  • Reference numeral 45 denotes a signal for passing the write request when the access request is for writing.
  • 46 and 47 are address signals for the upper 17 bits of the address 43.
  • bus 1 Also, a combination of 48 to 50, 43 and 45 is the bus 1
  • Reference numeral 51 denotes a 256-bit data overnight register, which holds the data of the previous access.
  • Reference numeral 52 denotes an address register having a 17-bit width, which holds the upper 17 bits of the address of the previous access.
  • Reference numeral 53 denotes a 1-bit register evening, which holds "1" when the contents held in the register evening 51 and the register evening 52 are valid, and holds "0" when the contents held are invalid.
  • Reference numeral 54 denotes a comparator, which outputs "1" when the signal 41 is a read request.
  • Reference numeral 55 denotes a comparator which outputs "1" when the signal 47 and the contents held in the address register 52 match.
  • 56 is a NAND gate. The output of the NAND gate 56 is “1" indicating that the signal 41 is a read request, the signal 47 and the contents held in the register 52 match, and the register 53 is valid. It becomes “0”. That is, when the output of the NAND gate 56 is "0", it indicates that the read buffer 12 is hit.
  • 57 is a comparator which outputs "1" when the signal 41 is a write request.
  • selector 60 replaces the output of signal 49 with a 32-byte access request.
  • the output of the comparator 54 is "0", that is, when the signal 41 is not a read request, the input of the signal 42 is output as it is to the signal 49.
  • the selector 61 replaces the output of the signal 48 with NOP.
  • the output of the NAND gate 56 is "1"
  • the output of the signal 41 is output as it is to the signal 48.
  • the aligner 63 rearranges the bit positions of the input data according to the contents of the signals 42 and 43 and outputs the rearranged bits to the signal 44.
  • the registers 51 and 52 take in the contents of the signals 50 and 46, respectively, when the output of the NAND gate 56 is “1".
  • the held content of 53 changes to “0” when the output of the comparator 57 is “1”. This is because, at the time of writing, as in the case of a read buffer error, the data and address are input to the registers 51 and 52.
  • the output of the comparator 54 is "1" and the output of the NAND gate 56 is "1"
  • the output changes to "1". This is to make the data of the register 51 available in the next read operation according to the result of the address comparison of the register 52.
  • FIG. 3 shows, as a comparative example, a timing chart in the case where data is read from the interface bus 11 for sequential access when the read buffer 12 is not used or when the read buffer 12 is not used.
  • FIG. 4 shows a timing chart when data is read from the interface bus 11 for sequential access using the read buffer 12.
  • the ratio of the operating frequency of the read-only sofa 12 to the operating frequency of the internal memory 20 is 2: 1.
  • 301 is the clock signal of processor core 2
  • 302 is the clock signal of internal memory 20
  • 303 is the processor.
  • 304 is bus 44 from internal memory 20 305 indicates the operation of the internal memory 20 and the internal memory controller 14.
  • Reference numerals 31 to 320 indicate clock cycles of the processor core 2.
  • 32 1 is an 8-byte read request from the processor core 2, and the internal memory controller 14 responds to this request in the period 312 to 313.
  • the read operation is performed as shown in FIG. 22, and the read data 323 is output during the period of 3 14.
  • 33 1 to 333, 34 1 to 343, 35 1 to 3 5 3 also have the same operation as 32 1 to 3 23, and 32 1, 33 1, 34 1,
  • the address of the 8-byte request of 35 1 is continuous. In this case, from the first read request 321 to the last data output 353, an operation period of 10 cycles is required for the clock of the processor core 2.
  • Reference numeral 404 denotes a hit signal of the read buffer, which corresponds to the output of the NAND gate 56 in FIG.
  • Reference numeral 405 denotes a data output from the read buffer 12 to the bus 44
  • reference numeral 406 denotes the operation of the internal memory 20 and the internal memory controller 14.
  • Reference numerals 4 1 1 to 4 17 indicate clock cycles of the processor core 2.
  • 42 1 is an 8-byte read request from processor core 2.
  • the corresponding operation of the built-in memory is 422, but this operation replaces the request with the lead buffer 12, and it is a 32-byte read instead of an 8-byte read.
  • 423 is the data output to processor core 2 overnight,
  • processor core 2 issues a second 8-byte read request 431.However, since 32-byte read was performed during the first read request 421, read buffer 12 Hit the 404 signal (NAND —The output signal of 56) changes from “1” to “0”. Data output 4 3 3 to 4 3 1 is performed in period 4 15. The read buffer 12 is also hot for the third and fourth 8-byte read requests 4 4 1 and 4 5 1, and the data is stored in the periods 4 16 and 4 17 respectively. Outputs 4 4 3 and 4 5 3 are performed.
  • FIG. 5 shows another example of a microcomputer.
  • the peripheral bus interface controller 15 shown in FIG. 1 is omitted, and the processor core 2 is directly connected via the interface bus 34 as the third bus.
  • the internal memory controller 14 and the secondary cache memory controller 21 are connected.
  • the signal 30 indicating the batch invalidation request to the secondary cache memory controller 21 output from the primary cache memory controller 5 is supplied to the secondary cache memory controller 21 as it is. Is done.
  • the other components that are the same as those in FIG. 1 are given the same reference numerals, and detailed descriptions thereof are omitted.
  • the peripheral bus interface controller 15 determines the request destination from the address in response to the access request from the primary cache memory controller 5, and performs the necessary access to the determined access request destination. Outputs control signal.
  • the request destination is similarly determined from the address, and necessary access control is performed on the determined access request destination. Outputs a signal. Therefore, the interface buses 10 and 16 are not dedicated buses for specific memories or peripheral circuits. On the other hand, the interface buses 11 and 13 are dedicated buses for sequential access.
  • the access path for accessing the same internal memory 20 via the memory controller 14 is divided into sequential access and random access. If a digitized configuration is used, the sequential access path can be dedicated, a specific interface protocol can be realized, and it is not necessary to consider general-purpose use with other memories and peripheral circuits. This is convenient for increasing the speed of the interface operation for sequential access.
  • the peripheral bus interface controller 15 is not arranged on the interface bus 34, but it is connected to both the memory controller 14 and the secondary cache memory controller 21. In a sense, the drive load of the bus 34 becomes relatively large in terms of the input capacitance of both circuits. Even in the case where the peripheral bus controller 15 is not arranged, in that respect, the dedicated bus for the sequential access by the buses 11 and 13 can increase the speed of the sequential access operation. It is convenient for planning.
  • the program running on the processor core 2 executes the interface bus 11, 13 for sequential access. While accessing the internal memory 20 through the internal bus, the internal memory access request from the peripheral bus (processor path) 23 can also be accepted through the interface bus 16 for random access.
  • a program having sequential access to the internal memory 20 such as image data and music data has a normal memory mode (an operation mode for enabling the internal memory controller 14). 1) is used.
  • performance improvement can be expected with the read buffer 12 for sequential access.
  • the read buffer 12 has a small number of circuits and can be expected to operate at a higher frequency than the internal memory 20.
  • the read buffer 12 and the processor core 2 operate at the same frequency, and the operating frequency of the read buffer 12 and When the operating frequency ratio of the internal memory 20 is 2: 1, from the first read to the last data output when there is no read buffer 12, the clock of the core processor 2 is 10 If a read buffer 12 is provided, whereas a cycle is required, the cycle can be reduced to 7 cycles and the performance can be improved. The number of accesses to the internal memory 20 is also reduced from four to one.
  • the cache operation of the primary cache memory 6 is not performed, the possibility of re-access is low, and the cache cache stored in the primary cache memory 6 by the sequential access data such as image data is stored. There is no undesired rewriting.
  • the control of the internal memory can be switched between the normal memory mode and the secondary cache mode (the operation mode for enabling the secondary cache memory controller 21), the optimum mode can be selected according to the processing contents of the program. It is possible to utilize the internal memory 20 in the form, which contributes to the improvement of data processing performance. In the random access is often programmed to the memory 2 0, by utilizing the secondary cache mode, you can reduce the penalty of the primary cache misses, the improvement of data processing performance contributes c above, specifically the present invention
  • a processor core may be provided with a memory management unit that converts a logical address to a physical address.
  • the primary cache memory may be provided separately for data and instructions.
  • the connection to the read / write memory may be exclusively limited to the data cache memory.
  • the batch invalidation request to the secondary cache memory controller 21 output from the primary cache memory controller 5 is not limited to the case of instructing by an individual signal, and the instruction is given by a command via the interface bus. You may. No. In the examples of FIGS. 1 and 5, the external input / output circuit that interfaces with the outside of the microcomputer is not shown, but it goes without saying that the external input / output circuit is actually provided. There is no. Industrial applicability
  • the present invention can be widely applied to microcomputers, microprocessors, and electronic circuits using the same.

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)

Description

明 細 書 半導体デ一夕プロセッサ
技術分野
本発明は、 オンチップメモリを有するデータプロセッサ、 特にそのォ ンチヅプメモリのアクセス制御に関し、例えばシングルチップのマイク 口コンピュータに適用して有効な技術に関する。 背景技術
データプロセッサにおいて、高速なメモリを内蔵することによって性 能向上を達成することが行われている。例えば、 デ一夕プロセッサ内蔵 の高速メモリを、 外部メモリと同様に C P U (中央処理装置) のァドレ ス空間に配置して使用することが挙げられる。 また、 内蔵メモリをキヤ ヅシュメモリとして利用し、キャッシュシステムを構成することによつ て、 メモリアクセスを高速化することも行われている。前者の例として 特開平 5— 3 0 7 4 8 5号公報があり、後者の例として特開平 6— 1 0 3 0 6 4号公報がある。
前者の例では、デ一夕プロセッサにメモリを内蔵するだけでは性能向 上は得られず、動作するプログラムにおいて頻繁に参照されるメモリ領 域を予め調査して、その部分をデ一夕プロセッサ内蔵メモリに割り付け ることが必要である。要するにデ一夕プロセヅサで実行する動作プログ ラムに応じた内蔵メモリのアドレスマヅピングの仕方がデータ処理性 能に大きく影響する。
また、 後者の例ではプログラムからのメモリアクセスの度に、 メモリ 領域のァクセス頻度を自動的に判断してキヤッシュメモリに格納する ため、 頻繁に参照されるメモリ領域を予め調査する必要はないが、 ァク セス頻度を判定するアルゴリズムに応じて、性能向上が得られないァク セスパターンが存在する。即ち、 キヤヅシュメモリは同じデ一夕が複数 回アクセスされる場合にメモリアクセス性能を向上させることができ、 直列的に順次走査されるような画像データ等に対してはメモリァクセ ス性能を逆に低下させる場合がある。例えば、一般的なアルゴリズムで は、 あるメモリ領域を開始ァドレスから終了ァドレスまで 1回ずつ、 シ 一ケンシャルにメモリアクセス (シーケンシャルアクセス)するプログ ラムと、 様々なァドレスをランダムにアクセス (ランダムアクセス) す るプログラムを、時分割にて擬似的に同時に実行する状況においては、 性能向上が得られないことがある。
本発明の目的は、内蔵メモリに対するアクセス性能を向上させること が容易な半導体データプロセッサを提供することにある。
本発明の別の目的は、内蔵メモリに対するランダムアクセスの性能を 低下させることなくシーケンシャルアクセスを効率化することができ る半導体データプロセッサを提供することにある。
本発明の更に別の目的は、内蔵メモリに対するシーケンシャルァクセ スとランダムアクセスの双方に対してアクセス性能を向上させること が容易な半導体デ一夕プロセッサを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の 記述と添付図面から明らかにされるであろう。
発明の開示
〔 1〕半導体デ一夕プロセッサは、 キャッシュメモリを構成する第 1メ モリと、前記第 1メモリによるキヤヅシュの対象とされ又はキヤヅシュ の非対象とされることが可能な第 2メモリと、前記第 2メモリが前記キ ャヅシュ非対象としてリードアクセスされるときそのアクセスに応ず るデ一夕の出力動作可能にされるリードバッファとを有する。第 2メモ リに対するキャッシュ対象とキヤヅシュ非対象の指定は第 2メモリが マツビングされるメモリ空間に対するキヤッシュ対象又は非対象の指 定によって決められる。その指定は例えばデータプロセッサの動作モ一 ドにより、或いはコントロ一ルレジス夕に対する設定で行うようにして よい。
シーケンシャルアクセスのようにキャッシュメモリによるアクセス 高速化の効果を期待し難い利用形態を想定する。キヤッシュ非対象とさ れる第 2メモリをシーケンシャルアクセスするとき、 リードバッファか らシーケンシャルアクセスに応答するデータを出力することにより、シ ーケンシャルリ―ドアクセスを高速化することができる。上記シーケン シャルアクセスに際して第 1メモリのキヤヅシュ動作は行なわれず、再 ァクセスの可能性の低いシーケンシャルアクセスデータによって第 1 メモリに保有されているキヤヅシユエントリデ一夕が不所望に書換え られ若しくはリプレースされることもない。 これにより、 内蔵メモリに 対するランダムアクセスの性能を低下させることなくシーケンシャル アクセスを効率化することができる。
本発明の一つの望ましい態様として、前記リードバッファは前記キヤ ッシュ非対象として前記第 2メモリがアクセスされたとき所定の当該 アクセスデータとアドレスを一時的に保持する。例えば、 前記第 2メモ リがアクセスされたときリ一ドバヅファがそのアクセスに応ずるデー 夕を保有していないとき当該アクセスに応ずるデータとアドレスを新 たに保持する。保持したデータが第 2メモリのリードアクセスに代えて リードバッファから出力されるデ一夕になる。要するに、 リードノ ッフ ァは直前のメモリアクセスの内容を含むデータを保持するように動作 され、保持するデ一夕と同じデータのアクセスを検出したときはこれに 応答して、既に保持するデータを第 2メモリのアクセスに代えて出力す る。
本発明の一つの望ましい態様として、前記リードバッファはリード要 求の上流側から第 1バスに接続され、 リード要求下流側から第 2バスに 接続される。第 2バスは第 1バスによる並列アクセスデ一夕ビッ ト数以 上の並列ビッ ト数でデータを伝達可能なバスである。シーケンシャルァ クセスされるデ一夕を第 2バスを経由してまとめてリードバッファに 蓄えることができる。リードバッファは蓄えたデータを第 2メモリへの 何回分かのリ一ドアクセスに応答して出力することができる。
本発明の一つの望ましい態様として、 前記リードバッファは、 前記第 1メモリから前記第 2バスを経由して伝達されるリ一ドデータを保持 するデータレジス夕と、そのデータのァドレスを保持するァドレスレジ ス夕と、ァドレスレジス夕に保持されたァドレスに一致するァドレスの リ一ド要求に対して前記デ一夕レジス夕のデータを第 1バスに出力さ せる制御回路とを有する。
本発明の一つの望ましい態様として、前記第 1バス及び第 2バスはシ —ケンシャルアクセス専用バスとされる。 また、前記キヤヅシュ対象と して前記第 2メモリをアクセスするとき第 1及び第 2バスによる径路 と異なる径路で前記第 1メモリを第 2メモリに接続可能にする第 3バ スを有する。周辺バスィン夕フエースコントロ一ラがある時はこれを前 記第 3バスに接続する。シーケンシャルアクセス専用バスとして専用化 される第 2バスに対するィン夕フエース制御は専用化されるが故にィ ン夕フェース制御がシンプルで高速ァクセスに好都合である。
本発明の一つの望ましい態様として、前記第 2バスと第 3バスに接続 され、前記第 2メモリに対するアクセスイン夕フエ一ス制御を行う内部 メモリコントロ一ラを有する。 また、 前記第 3バスに、 前記第 2メモリ を前記第 1メモリに対する 2次キャッシュメモリとして制御する 2次 キヤヅシュメモリコントローラを有する。前記 2次キヤッシュメモリコ ントロ一ラは第 1メモリのキヤッシュ無効化を示す信号に応答して第 2メモリをキャッシュ無効化する。 1次キャッシュと 2次キャッシュの 記憶情報の整合を採るのに便利である。第 2メモリに対する利用形態よ りすれば前記内部メモリコントローラと前記 2次キヤッシュメモリコ ントロ一ラは排他的に動作可能にされればよく、これを制御レジス夕で 設定するようにすればよい。
〔2〕半導体デ一夕プロセッサは、 キヤヅシュメモリを構成する第 1メ モリと、前記第 1メモリに対して 2次キヤヅシュメモリ又はキヤヅシュ メモリではないメモリとされることが可能な第 2メモリと、前記第 2メ モリを 2次キャッシュメモリ又はキャッシュメモリではないメモリの 何れかに選択的に指定する指定手段とを有する。上記した手段によれば、 第 2メモリを 2次キヤヅシュメモリとして用いるのがデータ処理上望 ましいとされる場合、或いは第 2メモリを C P Uのァドレス空間に配置 されたメモリとして用いるのがデータ処理上望ましいとされる場合、の 何れに対しても適切に対応することが可能である。 したがって、 デ一夕 プロセッサによるデータ処理形態に応じて内蔵第 2メモリに対するァ クセス性能を向上させることが容易である。
本発明の一つの望ましい態様として、前記第 2メモリを前記第 1メモ リの 2次キヤヅシュメモリとしてアクセスィン夕フエース制御を行う 2次キャッシュメモリコントローラを有する。 また、前記第 2メモリに 対しキヤヅシュメモリではないメモリ としてアクセスインタフヱ一ス 制御を行う内部メモリコントローラを有する。キヤヅシュメモリではな いメモリとされることが選択された第 2メモリは第 1メモリによるキ ャッシュの対象とされ又はキヤッシュの非対象とされることが可能で あってよい。前記キヤッシュ非対象として前記第 2メモリがリ一ドアク セスされるときそのアクセスに応ずるデータの出力動作可能にされる リ一ドバッファを有してよい。 図面の簡単な説明
第 1図は本発明の一例に係るマイクロコンピュータを例示するプロ ック図である。
第 2図はリードバッファの詳細を例示する論理回路図である。
第 3図はリードバッファを利用しない場合或いはリ一ドバヅファが ない場合にシーケンシャルアクセス用のィン夕フヱ一スバスからデ一 夕をリードする場合を比較例として示すタイミングチャートである。 第 4図はリードバッファを利用してシーケンシャルアクセス用のィ ン夕フヱ一スバスからデ一夕をリードする動作を示す夕ィ ミングチヤ
—トである。
第 5図はマイクロコンピュ一夕の別の例を示すブロック図である。 発明を実施するための最良の形態
第 1図には本発明の一例に係るマイクロコンピュー夕が例示される。 同図に示されるマイクロコンピュー夕 1は、単結晶シリコンのような 1 個の半導体基板(半導体チップ) に公知の C M◦ S集積回路製造技術に より形成される。
第 1図ではプロセッサコアと内蔵メモリとの間のイン夕フェース部 分が代表的に示される。 プロセッサコア 2は、 例えば C P U (中央処理 装置) 3、 F P U (浮動小数点演算ユニッ ト) 4、 1次キャッシュメモ リコントローラ (L 1 C C ) 5、 第 1メモリとしての 1次キヤヅシュメ モリ (L 1 C M ) 6を有する。 C P U 3は命令制御部と実行部から成る。 前記命令制御部は、 命令をフェッチし、 フヱツチした命令を解読して、 制御信号を生成する。前記実行部は汎用レジス夕や算術論理演算器等を 有し、 その動作が前記制御信号で生成され、 フヱツチしたオペランド等 を用いた演算を行う。 F P U 4は、 特に制限されないが、 C P U 3が浮 動小数点命令をフヱツチしたとき、 C P U 3より浮動小数点演算コマン ドを受け取り、 C P U 3がアクセスした演算オペランドを受け取って、 浮動小数点演算を行う。
前記 1次キャッシュメモリ 6は、 特に制限されないが、 セッ トァソシ ァティブ形態の連想メモリ構造を有する。 1次キャッシュメモリコント ローラ 5は、 キャッシュブルエリア (キャッシュ対象領域) のアクセス があると、 1次キヤッシュメモリ 6を連想検索し、 キヤヅシュヒヅ卜で あれば 1次キヤヅシュメモリ 6をアクセスし、キヤッシュミスであれば 後述する内部メモリ 2 0等の下位側のメモリアクセスを行って必要な データや命令を取得し、 1次キヤヅシュメモリ 6に対するキヤヅシュフ ィル、 必要な場合にはキヤッシユエントリのリプレースを制御する。内 部メモリ 2 0は例えば S R A M (ス夕ティ ック .ランダム ·アクセス · メモリ) から成る。
下位側のメモリアクセス等に用いる絰路として、 1次キヤヅシュメモ リコントローラ 5には第 1パスとしてのシーケンシャルアクセス用ィ ンターフェ一スバス 1 1、第 3バスとしてのランダムアクセス用ィン夕 —フェースバス 1 0が接続される。シーケンシャルアクセス用ィン夕ー フェ一スバス 1 1はリードバッファ 1 2の一方のアクセスポ一トに接 続され、 リードバッファ 1 2の他方のアクセスポートは第 2バスとして のインタフェースバス 1 3に接続される。 インタフェースバス 1 0、 1 1、 1 3はアドレス、 データ、 及びアクセス制御信号の信号線を含む。 インタフエースバス 1 3の並列アクセスデ一夕ビヅ ト数はィン夕フエ ースバス 1 1の並列アクセスデータビッ ト数以上とされる。例えばィン 夕フェースバス 1 3の並列アクセスデータビッ ト数は 2 5 6ビヅ ト、ィ ン夕フエースバス 1 1の並列アクセスデータビッ ト数は 6 4ビヅ 卜で ある。イン夕フエ一スバス 1 0の並列アクセスデ一夕ビヅ ト数は 6 4ビ ッ トである。
前記リ一ドノ、'ヅファ 1 2は、インターフェースバス 1 1からのァクセ ス要求がリード、かつアクセス要求アドレスがリードバッファ 1 2内に 格納されているァドレスと一致する場合に、 リードバヅファ 1 2が保有 するデータを 1次キヤッシュメモリコントローラ 5に伝える。リ一ド、 かつァドレスが一致しない場合は、アクセス要求のデ一夕幅を置き換え て、 例えば 6 4ビッ トから 2 5 6 ビヅ 卜に置き換えて、 ィン夕フェース バス 1 3にイン夕一フエース要求を発行する。 また、 ライ トアクセスの 場合はィン夕一フェースバス 1 1から伝達されるアクセス要求をその ままイン夕一フェースバス 1 3にィン夕フェース要求として出力する。 インターフェ一スバス 1 3からのアクセス要求は内部メモリコン ト ローラ (R A M C ) 1 4に伝達される。 インターフェースバス 1 0から のアクセス要求は周辺バスィン夕フエ一スコントローラ (P B I C ) 1 5に伝達され、 そこから、 周辺バス 2 3を介して単数又は複数の周辺回 路 2 4に、第 3バスとしてのインタフェースバス 1 6を介して前記内部 メモリコントローラ 1 4に伝えられ、 また、 2次キャッシュメモリコン トローラ 2 1にも伝えられる。
内部メモリコントロ一ラ 1 4は前記内部メモリ 2 0に対するァクセ スィンタフエ一ス制御を行う。 2次キャッシュメモリコントローラ 2 1 は前記内部メモリ 2 0をキャッシュメモリ 6に対する 2次キヤヅシュ メモリとして制御する。 周辺バスィン夕フェースコントローラ 1 6は、周辺回路 2 4及び内部 メモリ 2 0に対するァドレスマッピングの情報を有し、ィン夕フエ一ス バス 1 0からのアクセス要求が周辺回路に対するものであれば周辺バ ス 2 3にアクセス要求を出力し、内部メモリ 2 0に対するものであれば イン夕フェースバス 1 5にアクセス要求を出力する。周辺回路 2 には D M A C (ダイレク 卜 -メモリ -アクセス 'コントローラ) 等のバスマ ス夕モジュール、 或いは夕イマ .カウン夕、 シリァルインタフエースな どのバススレープモジュールを含むことがある。
内部メモリコントローラ 1 4は、インターフェースバス 1 3からのァ クセス要求とィン夕ーフェースバス 1 6からのアクセス要求とを調停 し、バス 1 Ίに内部メモリ 2 0に対するアクセス制御信号を出力する。 インタフェースバス 1 3からのアクセス要求は前記内部メモリ 2 0を 1次キャッシュメモリ 6によるキヤヅシュ非対象としてアクセスする ときのアクセス要求である。 これに対し 1 0 , 1 6を介するアクセス要 求は前記内部メモリ 2 0を 1次キャッシュメモリ 6によるキャッシュ 対象としてアクセスするときのアクセス要求である。内部メモリ 2 0に 対するアクセス要求が 1次キャッシュメモリ 6のキャッシュ対象であ るか否かは 1次キャッシュメモリコントローラ 5がアクセスアドレス に基づいて判定する。 内部メモリ 2 0に対するキヤヅシュ対象(キヤッ シャブル) とキャッシュ非対象 (ノンキヤッシャプル) の指定は内部メ モリ 2 0がマッピングされるメモリ空間に対するキャッシュ対象又は 非対象の指定によって決められる。その指定は例えばマイクロコンピュ 一夕 2 1の動作モ一ドにより、 或いはコントロールレジス夕 (図示せ ず) に対する設定で行なわれる。
また、 2次キヤヅシュメモリコントローラ 2 1はインタフヱ一スバス
1 6からのアクセス要求に応答して、当該アクセス要求に含まれるァク セスアドレスのァドレスタグを 2次キヤヅシュメモリコントローラ 2 1内のキヤヅシュタグと比較し、キヤヅシュヒッ トであれば内部メモリ 2 0をキヤヅシュメモリとして操作するためのキヤヅシユエン ト リ操 作のアクセス制御信号をバス 1 8に出力する。
バス 1 7からのアクセス制御信号とバス 1 8からのアクセス制御信 号は、セレクタ 1 9によりどちらか一方が内部メモリ 2 0に伝達される。 内部メモリ 2 ◦は伝達されたアクセス制御信号によってアクセスされ る。内部メモリ 2 0に対するアクセス動作指示がリードアクセスである 場合、 内部メモリ 2 0はその読み出しデ一夕をバス 2 6に出力し、 内部 メモリコントローラ 1 4又は 2次キャッシュメモリコン トローラ 2 1 に伝達する。ライ ト動作の場合には書き込みデータが内部メモリコント 口一ラ 1 4又は 2次キヤヅシュメモリコントローラ 2 1からバス 2 6 を介してメモリ 2 0に与えられる。 尚、 2次キヤヅシュメモリコント口 ーラ 2 1からバス 2 6を介するメモリ 2 0への書き込み指示は、 2次キ ャヅシュメモリのリードミスに伴うキャッシュフィル、ライ トミスに伴 うキヤッシュフィル動作等に際して指示される。
前記セレクタ 1 9による選択は、モード制御レジス夕 2 2の設定値に 従ってに決定される。 また、 内部メモリコントローラ 1 4と、 2次キヤ ヅシュメモリコントローラ 2 1も該レジスタ 2 2の設定値に従って動 作のオン、 オフが決まる。 内部メモリコントロ一ラ 1 4の動作が選択さ れる (有効である)場合には、 2次キヤヅシュメモリコントローラ 2 1 は動作されず、内部メモリコントローラ 1 4の出力がセレクタ 1 9で選 択される。逆に 2次キャッシュメモリコントローラ 2 1が有効である場 合には、 内部メモリコントローラ 1 4は動作されず、 2次キヤヅシュメ モリコントロ一ラ 2 1の出力がセレクタ 1 9で選択される。
内部メモリコントローラ 1 4はインタフエースバス 1 3又は 1 6に に、 アクセス要求に応答する結果を出力する。 また、 2次キャッシュメ モリコントロ一ラ 2 1は、 ィン夕フエースバス 1 6に、 アクセス要求に 応答する結果を出力する。
1次キャッシュメモリコントローラ 5は 1次キヤヅシュメモリ 6に 対す一括無効化が行われたとき、 2次キャッシュメモリコントローラ 2 1へのキャッシュェントリー括無効化要求信号 3 0を出力する。この信 号 3 0は C P U 3が 1次キャッシュメモリ 6に対する一括無効化の操 作命令を実行中にプログラムの指示によって生成される。一括無効化要 求信号 3 0は周辺バスインタフヱ一スコントロ一ラ 1 5を介して、一括 無効化要求信号 3 1 として 2次キヤッシュメモリコントローラ 2 1に 供給される。 2次キャッシュメモリコントローラ 2 1は信号 3 1に応答 して、 2次キヤヅシュメモリコントローラ 2 1内に保有するキヤッシュ タグの全キヤッシユエントリの有効ビッ トを無効化し、内部メモリ 2 0 のキャッシュェントリのクリアを行う。
第 2図には前記リードバッファ 1 2の詳細が例示される。 4 1〜4 5 はイン夕フエ一スバス 1 1を分割して示したものである。 4 1はァクセ ス要求の種別を示し、 リード要求、 ライ ト要求、 もしくはアクセス要求 がないこと (N O P ) を示す。 4 2はアクセス要求のデ一夕幅を示し、 1バイ ト、 2バイ ト、 4バイ ト、 8ノ イ ト、 3 2バイ トの種類がある。 4 3はアクセス要求のァドレスであり、 2 2ビヅ ト幅である。 4 4はァ クセス要求がリ一ド要求である場合に、読み出しデータを返す信号であ り、 6 4ビヅ ト幅 ( 8ノ ィ ト分) である。 4 5はアクセス要求がライ ト の時に、 ライ トデ一夕を渡す信号である。 4 6および 4 7は、 アドレス 4 3の上位 1 7ビッ ト分のァドレス信号である。
また、 4 8〜 5 0と、 4 3及び 4 5を組み合わせたものが前記バス 1
3に対応される。 4 8は 4 1と、 4 9は 4 2と、 5 0は 4 4と同等であ る。
51は 256ビヅ ト幅のデ一夕レジス夕であり、前回のアクセスのデ —夕を保持する。 52は 17ビッ ト幅のアドレスレジス夕であり、前回 のアクセスのァドレスの上位 17ビヅ ト分を保持する。 53は、 1ビヅ トのレジス夕であり、レジス夕 51およびレジス夕 52に保持されてい る内容が有効である場合は" 1"を、 無効である場合は" 0"を保持す る。
54は比較器であり、 信号 41がリード要求である場合に" 1"を出 力する。 55は比較器であり、信号 47とアドレスレジス夕 52に保持 されている内容が一致する場合に" 1"を出力する。 56は NAND (ナ ンド) ゲートである。 NANDゲ一ト 56の出力は、 「信号 41がリー ド要求、 かつ信号 47とレジス夕 52に保持されている内容が一致、 か つレジス夕 53が有効を示す" 1"である」 場合に" 0" となる。 すな わち、 N ANDゲート 56の出力が" 0"の場合は、 リードバッファ 1 2のヒッ トを示す。 57は比較器であり、信号 41がライ ト要求である 場合に" 1"を出力する。
比較器 54の出力が" 1"、 すなわち信号 41がリード要求である場 合、 セレクタ 60によって、信号 49の出力は 32バイ トのアクセス要 求に置き換えられる。 比較器 54の出力が" 0"、 すなわち信号 41が リード要求でない場合には、信号 42の入力がそのまま信号 49に出力 される。
NANDゲート 56の出力が" 0 "、 すなわちリードバッファ 12が ヒヅ トの場合、 セレクタ 6 1によって、 信号 48の出力は NOPに置き 換えられる。 N ANDゲート 56の出力が" 1 "の場合は、 信号 41の 出力がそのまま信号 48に出力される。
また、 N ANDゲート 56の出力が" 0"の場合、 セレクタ 62によ つて、 レジス夕 51の出力がァライナ (ALGN) 63に入力される。 NANDゲート 56の出力が" 1"の場合は、 信号 50の入力がァライ ナ 63に入力される。 ァライナ 63は、信号 42および信号 43の内容 にしたがって、入力デ一夕のビッ ト位置の並び替えを行って信号 44に 出力する。
レジス夕 5 1およびレジス夕 52は、 N ANDゲート 56の出力が" 1"の場合に、 それそれ信号 50、 信号 46の内容を取り込む。 53の 保持内容は、 比較器 57の出力が" 1"の場合には" 0"に変化する。 ライ 卜の時も リ一ドバッファミスの場合と同様にレジス夕 5 1及び 5 2にデ一夕及びァドレスを入力するからである。 また、 比較器 54の出 力が" 1"、 かつ N ANDゲート 56の出力が" 1"の場合には、 " 1" に変化する。次のリード動作でレジス夕 52のァドレス比較結果に従つ てレジス夕 5 1のデータを利用可能にするためである。
第 3図はリードバッファ 12を利用しない場合或いはリ一ドバッフ ァ 12がない場合にシーケンシャルアクセス用のィン夕フエースバス 1 1からデータをリードする場合のタイ ミングチャートを比較例とし て示す。第 4図はリ―ドパヅファ 12を利用してシーケンシャルァクセ ス用のインタフエースバス 1 1からデータをリ一ドする場合のタイ ミ ングチヤ一トを示す。
ここでは、 リ―ドバッファ 12とプロセヅサコア 2が同じ周波数で動 作し、 リ一ドノ ソファ 12の動作周波数と、 内部メモリ 20の動作周波 数の比を 2 : 1と想定し、 プロセッサコア 2からのシーケンシャルァク セスが 8バイ ト (64ビヅト)毎のリードが連続する動作を考えている < 第 3図において 301はプロセッサコア 2のクロック信号、 302は 内部メモリ 20のクロヅク信号、 303はプロセッサコア 2からの信号 41, 42によるアクセス要求、 304は内部メモリ 20からバス 44 へのデ一夕出力、 305は内部メモリ 2 0および内部メモリコントロー ラ 14の動作を示している。 また、 3 1 1〜 320はプロセッサコア 2 のクロヅク周期を示している。
32 1はプロセッサコア 2からの 8バイ トリード要求であり、内部メ モリコントローラ 14はこの要求に対して 3 1 2〜3 1 3の期間に、 3
22に示すようにリード動作を行い、 3 1 4の期間にリードデータであ る 323を出力する。 33 1〜 333、 34 1〜 343、 35 1〜 3 5 3も、 32 1〜 3 2 3と同様の動作であり、 32 1、 33 1、 34 1、
35 1の 8バイ トリ一ド要求はァドレスが連続している。 この場合、 最 初のリード要求 32 1から、 最後のデ一夕出力 35 3まで、 プロセッサ コア 2のクロックで 10サイクルの動作期間が必要である。
第 4図のリードバッファ 12を設けた場合のタイ ミングチャートに おいて、 40 1、 402、 403は 30 1、 302、 303と同様であ る。 404はリードバッファのヒッ ト信号であり、 第 2図の NANDゲ ート 5 6の出力に相当する。 405はリードバッファ 1 2からバス 44 へのデ一夕出力であり、 406は内部メモリ 20および内部メモリコン トローラ 14の動作を示す。 また、 4 1 1〜4 1 7はプロセッサコア 2 のクロック周期を示している。
42 1はプロセヅサコア 2からの 8バイ トリード要求である。これに 対応する内蔵メモリの動作は 42 2であるが、この動作はリ一ドバッフ ァ 1 2にて要求の置き換えを行っており、 8バイ トリードではなく 32 バイ トリードである。 423はプロセッサコア 2へのデ一夕出力であり、
422の動作終了後 41 4の期間に行われる。 また、 414の期間に 2 回目の 8バイ トリード要求である 43 1がプロセヅサコア 2から発行 されるが、 1回目のリード要求 42 1の際に 32バイ トリードを行って いるため、 リ一ドバッファ 12にヒッ トし、 404の信号 ( N A N Dゲ —ト 5 6の出力信号) が " 1 " から " 0 " に変化する。 4 3 1に対する データ出力 4 3 3は、 期間 4 1 5に行われる。 3回目、 4回目の 8バイ ト リ一 ド要求である 4 4 1 , 4 5 1に対しても リ一 ドバヅファ 1 2がヒ ヅ トするため、 それそれ期間 4 1 6、 4 1 7にデータ出力 4 4 3、 4 5 3が行われる。
第 5図にはマイクロコンピュー夕の別の例が示される。第 5図に示さ れるマイクロコンピュー夕 3 3は、第 1図の周辺バスィン夕フェースコ ントロ一ラ 1 5が省略され、プロセヅサコア 2は第 3バスとしてのィン 夕フェースバス 3 4を介して直接前記内部メモリコントローラ 1 4と 2次キャッシュメモリコントローラ 2 1に接続される。 また、 1次キヤ ヅシュメモリコントローラ 5から出力される 2次キャッシュメモリコ ントロ一ラ 2 1への一括無効化要求を示す信号 3 0がそのまま 2次キ ャヅシュメモリコント口一ラ 2 1に供給される。その他の第 1図と同じ 構成にはそれと同一符号を付してその詳細な説明を省略する。
第 1図と第 5図の構成の相違について比較する。第 1図の例では周辺 バスインタフェースコントロ一ラ 1 5は 1次キャッシュメモリコント ローラ 5からのアクセス要求に対して、その要求先をァドレスから判定 し、判定したアクセス要求先に対して必要なアクセス制御信号を出力す る。或は D M A C等のバスマス夕モジュールを構成する周辺回路 2 4か らのデ一夕転送要求に対しても同様にその要求先をァドレスから判定 し、判定したアクセス要求先に対して必要なアクセス制御信号を出力す る。 したがって、 ィン夕フェースバス 1 0 , 1 6は特定のメモリや周辺 回路にに対する専用バスにはならない。これに対してィン夕フェースバ ス 1 1, 1 3はシーケンシャルアクセス専用バスとされる。 したがって、 メモリコントロ一ラ 1 4経由で同じ内部メモリ 2 0をアクセスするた めのアクセス径路をシーケンシャルアクセスとランダムアクセスで分 けた構成を採用すれば、シーケンシャルアクセス用径路を専用化でき、 特定のィン夕フェースプロ トコルを実現すればよく、その他のメモリや 周辺回路との汎用利用を考慮しなくてもよいよい分だけ、シーケンシャ ルアクセスのためのィン夕フェース動作の高速化を図るのに好都合で ある。第 5図の構成ではィンタフエースバス 3 4には周辺バスィン夕フ エースコントローラ 1 5が配置されていないが、メモリコントローラ 1 4と 2次キヤッシュメモリコントローラ 2 1の双方に接続されるとい う意味で、双方の回路の入力容量の点でバス 3 4の駆動負荷が比較的大 きくなる。周辺バスィンタフエ一スコントロ一ラ 1 5が配置されていな い場合にも、 その点で、 シーケンシャルアクセスのためのバスをバス 1 1 , 1 3によって専用化すりうことは、 シーケンシャルアクセス動作の 高速化を図るのに好都合である。
また、 第 1図の構成では、 レジス夕 2 2の設定により内部メモリ 2 0 を有効としている場合に、プロセッサコア 2で実行中のプログラムが、 シーケンシャルアクセス用のィン夕ーフエースバス 1 1, 1 3を通じて 内部メモリ 2 0をアクセスしながら、 周辺バス (プロセッサパス) 2 3 側からの内部メモリアクセス要求もランダムアクセス用のイン夕ーフ エースバス 1 6を通じて受け付けることができる。
以上説明したマイクロコンピュー夕によれば、画像データや音楽デー 夕など、内部メモリ 2 0へのシーケンシャルアクセスが存在するプログ ラムでは、通常メモリモード (内部メモリコントローラ 1 4を有効にす る動作モ一ド) を用いる。 特に、 シーケンシャルアクセス用のリードバ ッファ 1 2による性能向上が期待できる。 また、 リードバッファ 1 2は 回路量が少なく、内部メモリ 2 0よりも高い周波数での動作が期待でき る。第 1図に基づいて説明したように、 リードバッファ 1 2とプロセヅ サコア 2が同じ周波数で動作し、 リードバッファ 1 2の動作周波数と、 内部メモリ 2 0の動作周波数の比を 2 : 1である場合には、 リードノ ツ ファ 1 2が無い場合に最初のリード要 から最後のデ一夕出力まで、プ 口セヅサコア 2のクロックで 1 0サイクル必要であるのに対し、 リ一ド バッファ 1 2を設けた場合、 7サイクルに短縮され、性能を向上できる。 また、 内部メモリ 2 0のアクセス回数も 4回から 1回に減少する。
上記シーケンシャルアクセスに際して 1次キヤヅシュメモリ 6のキ ャッシュ動作は行なわれず、再アクセスの可能性の低レ、画像デ一夕など のシーケンシャルアクセスデータによって 1次キャッシュメモリ 6 に 保有されているキャッシュェント リデ一夕不所望に書換えられること も無い。
また、内部メモリの制御を通常メモリモードと 2次キヤヅシュモード ( 2次キヤヅシュメモリコントローラ 2 1を有効にする動作モ一ド)に 切り替えることが可能であるから、プログラムの処理内容に応じて最適 な形態で内部メモリ 2 0を活用することが可能になり、データ処理性能 の向上に寄与する。メモリ 2 0へのランダムアクセスが多いプログラム では、 2次キャッシュモードを活用することにより、 1次キャッシュミ スのペナルティを減らすことができ、データ処理性能の向上に寄与する c 以上、 本発明を具体的に説明したが、 本発明はそれに限定されず、 そ の要旨を逸脱しない範囲で種々の変形が可能である。例えば、 プロセッ サコアには論理ァドレスを物理ァドレスに変換するメモリ管理ュニッ トを設けてもよい。 1次キャッシュメモリはデ一夕と命令でそれそれ 別々に設けてもよい。その場合にリ一 ドノ、ヅファに接続されるのは専ら デ—夕キヤッシュメモリに限定しても良い。 また、 1次キヤヅシュメモ リコントローラ 5から出力される 2次キャッシュメモリコントローラ 2 1への一括無効化要求は個別信号で指示する場合に限定されずィン 夕フヱースバスを介してコマンドで指示を与えるようにしてもよい。第 1図及び第 5図の例ではマイクロコンピュー夕の外部とィンタフエー スされる外部入出力回路について図示を省略してあるが、実際には外部 入出力回路が設けられていることは言うまでも無い。 産業上の利用可能性
本発明は、 マイクロコンピュータ、 マイクロプロセッサ、 更にはそれ を利用する電子回路に広く適用することができる。

Claims

請 求 の 範 囲
1 . キャッシュメモリを構成する第 1メモリと、 前記第 1メモリによる キヤヅシュの対象とされ又はキヤッシュの非対象とされることが可能 な第 2メモリと、前記第 2メモリが前記キヤヅシュ非対象としてリ一ド アクセスされるときそのアクセスに応ずるデ一夕の出力動作可能にさ れるリードバッファと、を有することを特徴とする半導体データプロセ ヅサ。
2 .前記リードバッファは前記キヤッシュ非対象として前記第 2メモリ がアクセスされたとき所定のアクセスデ一夕とァドレスを一時的に保 持することを特徴とする請求の範囲第 1項記載の半導体データプロセ ッサ。
3 .前記リードバッファはリ一ド要求の上流側から第 1バスに接続され、 リ一ド要求下流側から第 2バスに接続され、前記第 2バスは第 1バスに よる並列アクセスデ一夕ビッ ト数以上の並列ビッ ト数でデータを伝達 可能なバスであることを特徵とする請求の範囲第 2項記載の半導体デ —夕プロセッサ。
4 . 前記リ一ドバッファは、 前記第 1メモリから前記第 2バスを経由し て伝達されるリードデータを保持するデータレジス夕と、そのデ一夕の ァドレスを保持するァドレスレジス夕と、アドレスレジス夕に保持され たァドレスに一致するァドレスのリ一ド要求に対して前記デ一夕レジ ス夕のデ一夕を第 1バスに出力させる制御回路とを有することを特徴 とする請求の範囲第 3項記載の半導体デ一夕プロセッサ。
5 .前記第 1バス及び第 2バスはシーケンシャルアクセス専用バスとさ れる請求項 1記載の半導体データプロセッサ。
6 .前記キヤッシュ対象として前記第 2メモリをアクセスするとき第 1 及び第 2バスによる径路と異なる径路で前記第 1メモリを第 2メモリ に接続可能にする第 3バスを有することを特徴とする請求の範囲第 5 項記載の半導体データプロセッサ。
7 . 前記第 3バスに、 周辺バスィン夕フェースコントローラ接続される ことを特徴とする請求項 6記載の半導体データプロセッサ。
8 . 前記第 2バスと第 3バスに接続され、前記第 2メモリに対するァク セスィン夕フェース制御を行う内部メモリコントローラを有すること を特徴とする請求の範囲第 6項記載の半導体デ一夕プロセッサ。
9 . 前記第 3バスに、前記第 2メモリを前記第 1メモリに対する 2次キ ャヅシュメモリとして制御する 2次キャッシュメモリコントローラを 有することを特徴とする請求の範囲第 8項記載の半導体デ一夕プロセ ヅサ。
1 0 .前記 2次キャッシュメモリコントローラは第 1メモリのキヤヅシ ュ無効化を示す信号に応答して第 2メモリをキヤッシュ無効化するこ とを特徴とする請求の範囲第 9項記載の半導体データプロセッサ。
1 1 .前記内部メモリコントローラと前記 2次キャッシュメモリコント ローラを排他的に動作可能に設定する制御レジス夕を有することを特 徴とする請求の範囲第 9項記載の半導体データプロセッサ。
1 2 . キヤヅシュメモリを構成する第 1メモリと、 前記第 1メモリに対 して 2次キヤヅシュメモリ又はキヤッシュメモリではないメモリとさ れることが可能な第 2メモリと、前記第 2メモリを 2次キャッシュメモ リ又はキャッシュメモリではないメモリの何れかに選択的に指定する 指定手段と、 を有することを特徴とする半導体データプロセッサ。
1 3 .前記第 2メモリを前記第 1メモリの 2次キャッシュメモリとして アクセスインタフエース制御を行う 2次キヤヅシュメモリコントロー ラを有することを特徴とする請求の範囲第 1 2項記載の半導体データ プロセッサ。
1 4 .前記第 2メモリに対しキャッシュメモリではないメモリとしてァ クセスインタフエース制御を行う内部メモリコントローラを有するこ とを特徴とする請求の範囲第 1 3項記載の半導体デ一夕プロセッサ。
1 5 .前記指定手段はコントロールレジス夕であることを特徴とする請 求の範囲第 1 4項記載の半導体データプロセッサ。
1 6 .キヤッシュメモリではないメモリとされることが選択された第 2 メモリは第 1メモリによるキヤヅシュの対象とされ又はキャッシュの 非対象とされることが可能であることを特徴とする請求の範囲第 1 5 項記載の半導体デ一夕プロセッサ。
1 7 .前記キヤヅシュ非対象として前記第 2メモリがリードアクセスさ れるときそのアクセスに応ずるデ一夕の出力動作可能にされるリ一ド バッファを有することを特徴とする請求の範囲第 1 6項記載の半導体 デ一夕プロセッサ。
1 8 .前記リードバッファは前記キャッシュ非対象として前記第 2メモ リがアクセスされるときそのアクセスに応ずるデ一夕を保有していな いとき当該アクセスに応ずるデ一夕とァドレスを新たに保持すること を特徴とする請求の範囲第 1 7項記載の半導体データプロセッサ。
1 9 .前記リードバッファはリード要求の上流側から第 1バスに接続さ れ、 リード要求下流側から前記第 1バスよりもバス幅の広い第 2バスに 接続されることを特徴とする請求の範囲第 1 8項記載の半導体デ一夕 プロセッサ。
PCT/JP2002/010162 2002-09-30 2002-09-30 半導体データプロセッサ WO2004031963A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/520,653 US7356649B2 (en) 2002-09-30 2002-09-30 Semiconductor data processor
PCT/JP2002/010162 WO2004031963A1 (ja) 2002-09-30 2002-09-30 半導体データプロセッサ
JP2004541170A JP4024247B2 (ja) 2002-09-30 2002-09-30 半導体データプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/010162 WO2004031963A1 (ja) 2002-09-30 2002-09-30 半導体データプロセッサ

Publications (1)

Publication Number Publication Date
WO2004031963A1 true WO2004031963A1 (ja) 2004-04-15

Family

ID=32051270

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/010162 WO2004031963A1 (ja) 2002-09-30 2002-09-30 半導体データプロセッサ

Country Status (3)

Country Link
US (1) US7356649B2 (ja)
JP (1) JP4024247B2 (ja)
WO (1) WO2004031963A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges
US8549226B2 (en) 2004-05-14 2013-10-01 Hewlett-Packard Development Company, L.P. Providing an alternative caching scheme at the storage area network level

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201015579A (en) * 2008-09-18 2010-04-16 Panasonic Corp Buffer memory device, memory system, and data readout method
US20100191913A1 (en) * 2009-01-26 2010-07-29 Agere Systems Inc. Reconfiguration of embedded memory having a multi-level cache
US9841922B2 (en) * 2016-02-03 2017-12-12 SK Hynix Inc. Memory system includes a memory controller

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142844A (ja) * 1987-11-30 1989-06-05 Toshiba Corp 半導体集積回路
JPH06309216A (ja) * 1993-04-05 1994-11-04 Motorola Inc 線形ラム・バンクとして使用可能なキャッシュ・メモリを有するデータ・プロセッサ
JPH06348593A (ja) * 1993-06-03 1994-12-22 Sumitomo Electric Ind Ltd データ転送制御装置
JP2001256108A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp メモリ内蔵マイクロプロセッサ
JP2001282616A (ja) * 2000-04-03 2001-10-12 Mitsubishi Electric Corp メモリ管理方式

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3171925B2 (ja) 1992-04-30 2001-06-04 株式会社日立製作所 データ処理装置
JP3164915B2 (ja) 1992-09-21 2001-05-14 株式会社日立製作所 データ処理装置及びそのデータ処理方法
US6678790B1 (en) * 1997-06-09 2004-01-13 Hewlett-Packard Development Company, L.P. Microprocessor chip having a memory that is reconfigurable to function as on-chip main memory or an on-chip cache
US6134641A (en) * 1998-03-20 2000-10-17 Vsli Technology, Inc. Method of and system for allowing a computer system to access cacheable memory in a non-cacheable manner
JP2000148584A (ja) 1998-11-10 2000-05-30 Matsushita Electric Ind Co Ltd プリフェッチ方法および装置
JP4034032B2 (ja) * 2000-08-07 2008-01-16 Necエレクトロニクス株式会社 キャッシュ内蔵マイクロコンピュータ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142844A (ja) * 1987-11-30 1989-06-05 Toshiba Corp 半導体集積回路
JPH06309216A (ja) * 1993-04-05 1994-11-04 Motorola Inc 線形ラム・バンクとして使用可能なキャッシュ・メモリを有するデータ・プロセッサ
JPH06348593A (ja) * 1993-06-03 1994-12-22 Sumitomo Electric Ind Ltd データ転送制御装置
JP2001256108A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp メモリ内蔵マイクロプロセッサ
JP2001282616A (ja) * 2000-04-03 2001-10-12 Mitsubishi Electric Corp メモリ管理方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549226B2 (en) 2004-05-14 2013-10-01 Hewlett-Packard Development Company, L.P. Providing an alternative caching scheme at the storage area network level
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置

Also Published As

Publication number Publication date
JP4024247B2 (ja) 2007-12-19
US20050257011A1 (en) 2005-11-17
JPWO2004031963A1 (ja) 2006-02-02
US7356649B2 (en) 2008-04-08

Similar Documents

Publication Publication Date Title
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
KR101532289B1 (ko) 메모리 내 cpu 캐시 아키텍처
JP3934710B2 (ja) マイクロプロセッサ
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US7877537B2 (en) Configurable cache for a microprocessor
JPH11312122A (ja) 使用者が構築可能なオンチッププログラムメモリシステム
US12001351B2 (en) Multiple-requestor memory access pipeline and arbiter
US11720495B2 (en) Multi-level cache security
JP3841810B2 (ja) データプロセッサ
US20240184715A1 (en) Translation lookaside buffer prewarming
US20080147979A1 (en) Configurable cache for a microprocessor
JP5319049B2 (ja) キャッシュシステム
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
US8108621B2 (en) Data cache with modified bit array
WO2004031963A1 (ja) 半導体データプロセッサ
JP4160228B2 (ja) マイクロプロセッサ
US8156283B2 (en) Processing function connected to processor memory hierarchy
US8560748B2 (en) Information processing system including interrupt processing function
JP3735373B2 (ja) マイクロコンピュータ
JP2002108702A (ja) マイクロコンピュータ及びデータ処理装置
JP2009505181A (ja) 少なくとも2つの処理ユニットと、データおよび/または指令のための少なくとも1つの第1のメモリもしくはメモリ領域とを有する計算機システム内で指令および/またはデータを記憶するための方法および装置
JP2680293B2 (ja) データ処理装置及びキャッシュメモリ制御方法
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
JP2923273B2 (ja) データ処理システム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
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: 2004541170

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 10520653

Country of ref document: US

122 Ep: pct application non-entry in european phase