WO2007116612A1 - コマンド出力制御装置 - Google Patents

コマンド出力制御装置 Download PDF

Info

Publication number
WO2007116612A1
WO2007116612A1 PCT/JP2007/053021 JP2007053021W WO2007116612A1 WO 2007116612 A1 WO2007116612 A1 WO 2007116612A1 JP 2007053021 W JP2007053021 W JP 2007053021W WO 2007116612 A1 WO2007116612 A1 WO 2007116612A1
Authority
WO
WIPO (PCT)
Prior art keywords
subcommand
command
storage area
group
subcommands
Prior art date
Application number
PCT/JP2007/053021
Other languages
English (en)
French (fr)
Inventor
Kazuya Furukawa
Masayuki Masumoto
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US12/294,338 priority Critical patent/US7930439B2/en
Priority to EP07714547A priority patent/EP2003564A4/en
Priority to JP2007536524A priority patent/JP4733138B2/ja
Publication of WO2007116612A1 publication Critical patent/WO2007116612A1/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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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 command output control device that controls output of a command used to access a memory, and more particularly to a command output control device that controls output of a command used at the time of reading and writing.
  • Patent Document 1 JP 2001-256106 A
  • Patent Document 2 US Patent No. 6819326
  • the present invention has been made in view of the above problems, and provides a command output control device that improves the efficiency when data mapped on a memory is accessed in units of rectangular areas. For the purpose.
  • a command output control device includes: (a) (al) a first subcommand group generated based on a command for accessing a first storage area; Subcommand holding means for holding a second subcommand group generated based on a command for accessing a second storage area belonging to a bank different from the first storage area, and (a2) a subcommand group A number comparison means for comparing the number of subcommands belonging to the first subcommand group and the second subcommand group, and (a3) based on a result of comparison by the number comparison means. !, A storage area selection means for selecting the smaller number of!
  • a partial storage area selecting means for selecting a partial storage area of a predetermined size or more as a partial storage area to be divided, (a6) a partial storage area obtained by dividing the partial storage area to be divided Subcommand generating means for generating a subcommand for each of the subcommands, and (a7) a subcommand for accessing the partial storage area to be divided among the subcommands held by the subcommand holding means.
  • Subcommand replacement means for replacing with a subcommand group generated by the subcommand generation means; and (a8) a subcommand alternately from the first subcommand group and the second subcommand group. Characterized in that it comprises a subcommand output means for outputting a de to the memory.
  • a partial storage area having a predetermined size or larger is selected as the partial storage area to be divided. For this reason, by setting a predetermined size to the size that can conceal the overhead, it is possible to prevent the partial storage area from becoming so small that the overhead cannot be concealed.
  • the command output control device includes (bl) size specifying means for specifying a size of a partial storage area accessed by the subcommand, and (b2) the subcommand Based on the result specified by the size specifying means, the output means stores a subcommand for accessing a partial storage area less than a predetermined size from among the subcommands held by the subcommand holding means! It may be output later.
  • the command output control device is the same type of sub-command that is not dependent on other types of sub-commands among the sub-commands held by the sub-command holding means (cl) (C2)
  • the subcommand output means outputs the subcommands of the same type classified by the subcommand classification means continuously.
  • the command output control device detects a write / subcommand group that accesses the same partial storage area from among the subcommands held by the subcommand holding means (dl) (D2) the subcommand output means outputs an output from the write subcommand group based on a result detected by the write subcommand dependency detection means.
  • the write 'subcommand with the earlier order may be discarded and the write' subcommand with the later output order may be output.
  • the command output control device detects a read subcommand group that accesses the same partial storage area from among the subcommands held by the subcommand holding means.
  • the subcommand output means includes an output order of the read subcommand group based on the result detected by the read subcommand dependency detection means. May output the first read 'subcommand and discard the next read' subcommand in the output order.
  • the command output control device includes (fl) a buffer that temporarily holds data read from the memory, and (f 2) the subcommand output means includes an output order When the first read 'subcommand is output, the data read from the memory is temporarily stored in the noferer, and the buffer power is also increased when the next read' subcommand is output in the output order. The data may be read out.
  • the command output control device includes (gl) address comparison means for comparing the address of the partial storage area accessed by the subcommand between subcommands belonging to the subcommand group, and (g2 ) Based on the result of the comparison by the address comparison means, the transition of the address power of the partial storage area accessed by the previously output subcommand is subtracted from the subcommands held by the subcommand holding means.
  • the subcommand output unit may output the subcommand selected by the subcommand selection unit.
  • the present invention is not only realized as a command output control device, but also includes a command output control method for controlling the command output control device, an LSI (Large Scale Integration) incorporating the function of the command output control device,
  • This function is realized as an IP (Intellectual Property) core that forms this function in a programmable logic device such as FPGA (Field Programmable Gate Ar ray) CPLD (Complex Programmable Logic Device), and a recording medium that records the IP core. Even so! /
  • a partial storage area having a predetermined size or more is selected as a partial storage area to be divided. For this reason, the size of the partial storage area is so small that the overhead cannot be concealed by setting a predetermined size to the size that can conceal the overhead. It can be suppressed from becoming sad. Also, it is possible to prevent the overhead from entering midway due to the generation of a command with a small partial storage area.
  • the address transition without reducing the access efficiency can be reduced, and the power consumption of the address bus can be reduced.
  • FIG. 1 is a diagram showing a configuration of a command output control apparatus according to a first embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a process in which an access area is divided by a page boundary dividing unit according to the first embodiment of the present invention.
  • FIG. 3 is a diagram showing an outline of an access area divided by a page boundary dividing unit and an access area dividing unit according to the first embodiment of the present invention.
  • FIG. 4 is a diagram showing an outline of attribute information generated by a page boundary dividing unit and an access area dividing unit in the first embodiment according to the present invention.
  • FIG. 5 is a diagram showing a data structure of attribute information held in the attribute information holding unit in the first embodiment according to the present invention.
  • FIG. 6 is a diagram showing a command output control process executed in the command output control device according to the first embodiment of the present invention.
  • FIG. 7 is a diagram showing a command conversion process executed in the command output control device according to the first embodiment of the present invention.
  • FIG. 8 is a diagram showing page boundary division processing executed in the command output control apparatus according to Embodiment 1 of the present invention.
  • FIG. 9 is a diagram showing an access area dividing process executed in the command output control apparatus according to the first embodiment of the present invention.
  • FIG. 10 is a diagram showing a subcommand output process executed in the command output control apparatus in the first embodiment according to the present invention.
  • FIG. 11 is a diagram showing a timing chart of signals output to the command output control device power memory according to the first embodiment of the present invention.
  • FIG. 12 is a timing chart of signals output to the memory of the command output control device according to the conventional embodiment to be compared with the command output control device according to the first embodiment of the present invention.
  • FIG. 13 is a diagram showing a timing chart of signals output to the command output control device power memory in the conventional mode to be compared with the command output control device in the first embodiment according to the present invention.
  • FIG. 14 is a diagram showing a timing chart of signals output to the command output control device power memory in the conventional mode to be compared with the command output control device in the first embodiment according to the present invention.
  • FIG. 15 is a diagram showing a configuration of a command output control apparatus according to the second embodiment of the present invention.
  • FIG. 16A is a first diagram illustrating a schematic example in which the output order is changed by the command output control device according to the second embodiment of the present invention.
  • FIG. 16B is a second diagram illustrating a schematic example in which the output order is changed by the command output control device according to the second embodiment of the present invention.
  • FIG. 17 is a diagram showing a process in which a dependency relationship is detected by a write sub-command dependency relationship detection unit according to the second embodiment of the present invention.
  • FIG. 18 is a diagram showing a process in which a dependency relationship is detected by a read sub-command dependency relationship detection unit according to the second embodiment of the present invention.
  • FIG. 19 is a first diagram showing a command output control process executed in the command output control device according to the second embodiment of the present invention.
  • FIG. 20 is a second diagram showing a command output control process executed in the command output control device according to the second embodiment of the present invention.
  • FIG. 21 is a diagram showing command conversion processing executed in the command output control apparatus in the second embodiment according to the present invention.
  • FIG. 22 shows the command output control apparatus according to the second embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a write 'subcommand dependency detection process executed in the same manner.
  • FIG. 23 is a diagram showing a read sub-command dependency detection process executed in the command output control apparatus in the second embodiment according to the present invention.
  • FIG. 24 is a diagram showing a subcommand output process executed in the command output control apparatus in the second embodiment according to the present invention.
  • Embodiment 1 according to the present invention will be described below with reference to the drawings.
  • the command output control device in the present embodiment includes the following features (a) to (c).
  • a first subcommand group generated based on a command for accessing the first storage area and a second storage area belonging to a bank different from the first storage area are accessed.
  • the number comparison function to compare with the command group, and (a3) based on the result of the comparison by the number comparison function, either the first storage area or the second storage area is used.
  • A4 a size comparison function that compares the size of a partial storage area accessed by a subcommand between subcommands belonging to a group of subcommands, and (a5) Size comparison function A partial storage area selection function for selecting a partial storage area of a predetermined size or more as a partial storage area to be divided from among the partial storage areas constituting the storage area to be divided based on the comparison result; and (a6 ) A subcommand generation function that generates a subcommand for each partial storage area obtained by dividing the target partial storage area, and ( a 7) a subcommand held by the subcommand holding function, A subcommand replacement function that replaces a subcommand that accesses a partial storage area to be divided with a subcommand group generated by the subcommand generation function; and (a8) a first subcommand group and a second subcommand group.
  • Subcommand output function to output subcommands to memory alternately.
  • the command output control device has a size specifying function for specifying the size of the partial storage area accessed by the subcommand, and the subcommand output function is based on the result specified by the size specifying function. Then, a subcommand that accesses a partial storage area with a size less than the predetermined size is issued later from among the subcommands held by the subcommand holding function.
  • the command output control device includes (cl) an address comparison function for comparing the address of the partial storage area accessed by the subcommand between subcommands belonging to the subcommand group, and (c2) address comparison. Based on the results of comparison by function, subcommands with a small transition in the address power of the partial storage area accessed by the previously output subcommand out of the subcommands held by the subcommand holding function (C3) The subcommand output function outputs the subcommand selected by the subcommand selection function.
  • a fragment of a storage area obtained by dividing a storage area accessed by a command is called a partial storage area.
  • a command generated for each partial storage area is called a subcommand.
  • a group of subcommands is called a subcommand group.
  • a fragment of a partial storage area obtained by dividing a partial storage area accessed by a subcommand is also called a partial storage area.
  • a storage area accessed by a command or a partial storage area accessed by a subcommand is called an access area.
  • FIG. 1 is a diagram showing a configuration of a command output control device in the present embodiment.
  • the command output control device 100 includes a command issuing unit 101, a command holding unit 102, a command output control unit 103, a memory IZF unit 104, a memory 105, a page boundary dividing unit 106, and a subcommand holding unit 107.
  • the command issuing unit 101 issues a command for accessing the memory 105.
  • the issued command is output to the command holding unit 102.
  • the command holding unit 102 holds the command output from the command issuing unit 101. In response to the control signal output from the command output control unit 103, the held command is output to the page boundary dividing unit 106.
  • the register 102a to 102c and the selector 102d are configured. Then, the command output from the command issuing unit 101 is The command is held in one of the registers 102a-102c.
  • the control signal output from the command output control unit 103 is input to the selector 102d, one of the registers 102a to 102c is selected by the selector 102d in accordance with the input control signal.
  • the command held in the selected register is output to the page boundary dividing unit 106.
  • the command output control unit 103 controls the command holding unit 102 to output the command held in the command holding unit 102 to the page boundary dividing unit 106. Further, the memory IZF unit 104 is controlled to output subcommands belonging to the subcommand group from the memory IZF unit 104 to the memory 105.
  • the command holding unit 102 selects the first command and the second command from a plurality of commands.
  • the command holding unit 102 is controlled to output the selected first command and second command to the page boundary dividing unit 106.
  • a control signal for selecting the register holding the first command is output to the selector 102d.
  • a control signal for selecting the register holding the second command is output to the selector 102d.
  • a first subcommand group is generated from the first command and a second subcommand group is also generated with respect to the second command force.
  • the command output control unit 103 controls the memory IZF unit 104 to alternately change the subcommands belonging to the first subcommand group and the subcommands belonging to the second subcommand group to the memory IZF unit 104.
  • To memory 105 As a result, the first bank and the second bank of the memory 105 are alternately accessed.
  • the command output control unit 103 selects a partial storage area that is less than a predetermined size from among the subcommands held by the subcommand holding unit 107. Subcommands that access to will be output later.
  • command output control unit 103 is based on the result of comparison by the address comparison unit 113. From the subcommands held by the subcommand holding unit 107, a subcommand having a small transition from the address of the partial storage area accessed by the previously output subcommand is selected. The memory IZF unit 104 is controlled to output the selected subcommand to the memory 105.
  • Memory IZF unit 104 takes out the subcommand selected by command output control unit 103 from subcommand holding unit 107 and outputs the taken out subcommand to memory 105.
  • the memory 105 is a multi-bank SDRAM (Synchronous Dynamic Random Access Memory).
  • the memory 105 may be built in the command output control device 100 or may be externally attached! /.
  • the page boundary dividing unit 106 divides the storage area accessed by the input command at the page boundary. At this time, a subcommand for accessing the partial storage area obtained by dividing the storage area is generated.
  • the generated subcommand group is stored in the subcommand holding unit 107 instead of the input command.
  • the input command is stored in the subcommand holding unit 107 as a subcommand.
  • the subcommand holding unit 107 holds a group of subcommands generated by the page boundary dividing unit 106, the access area dividing unit 109, and the like.
  • the subcommand holding unit 107 holds a first subcommand group and a second subcommand group.
  • the attribute information holding unit 108 holds the attribute information registered for each subcommand group, such as the number of subcommands belonging to the subcommand group and the size of the access area of each subcommand.
  • the access area dividing unit 109 selects a subcommand to be divided in the middle force of the subcommand held by the subcommand holding unit 107, and divides the access area of the selected subcommand. At this time, if a subcommand group is further generated from the subcommand, the generated subcommand group is stored in the subcommand holding unit 107 instead of the subcommand. For example, the access area dividing unit 109 performs subcommands on two subcommand groups to be compared based on the result of comparison by the subcommand number comparing unit 110. It is determined whether or not the number of powers is different.
  • the subcommand group with a small number of subcommands is divided into subcommands with the largest access area size.
  • Select as a subcommand Determine whether the access area of the selected subcommand is equal to or greater than the threshold. If the result of the determination is that it is greater than or equal to the threshold value, the access area of the selected subcommand is divided.
  • a subcommand is generated for each partial storage area obtained by dividing. Replace the selected subcommand with the generated subcommand group.
  • the threshold value is a value with no overhead.
  • the subcommand number comparison unit 110 compares the number of subcommands belonging to the subcommand group between the two subcommand groups to be compared. Specifically, subcommand number comparison section 110 compares the number of subcommands belonging to the subcommand group between the first subcommand group and the second subcommand group. Based on the comparison result, the smaller one is selected as the storage area to be divided, from the difference between the first storage area and the second storage area.
  • the size comparison unit 111 compares the size of the access area accessed by the subcommand among the subcommands belonging to the subcommand group. Specifically, the size comparison unit 11
  • a partial storage area having a predetermined size or more is selected as a partial storage area to be divided from among the partial storage areas constituting the storage area to be divided.
  • the size determination unit 112 specifies the size of the access area accessed by the subcommand. For example, for the subcommand group to be output, the size of the subcommand access area belonging to the subcommand group is compared brute force to identify the subcommand with the largest access area size or less than a predetermined size. To specify subcommands.
  • Address comparing section 113 compares the address of the access area accessed by the subcommand among the subcommands belonging to the subcommand group. For example, the size determination unit 11 The row address and column address are compared between multiple subcommands determined to be applicable in step 2. The subcommand is selected from the corresponding subcommands because the number of transition bits of the address bus of the memory 105 is small.
  • FIG. 2 is a diagram illustrating a process in which the access area is divided by the page boundary dividing unit 106 according to the present embodiment.
  • the page boundary dividing unit 106 for example, when a command A across pages is input as in the command 121, the storage area accessed by the command A (hereinafter referred to as the access area). (Referred to as A)) at page boundaries.
  • the access area A is a rectangular area that is not hatched and is surrounded by a thick frame, and the offset from X (3) to PIXEL (4) with the base M as a reference.
  • Offset Y (3) is a storage area indicated by force LINE (4) minutes.
  • the page boundary dividing unit 106 individually performs a subcommand for each of the access area Al, the access area A2, the access area A3, and the access area A4 obtained by dividing the access area A at the page boundary. Is generated.
  • subcommand group 122 subcommand Al for accessing access area A1, subcommand A2 for accessing access area A2, subcommand A3 for accessing access area A3, and subcommand for accessing access area A4 Command A4 is generated.
  • the access area A1 is a rectangular area corresponding to the upper left portion of the access area A, and is a storage area indicated by row (0) and column (15).
  • the access area A 2 is a rectangular area corresponding to the upper right part of the access area A, and is a storage area indicated by rows (1) and columns (12, 13, 14).
  • the access area A3 is a rectangular area corresponding to the lower left part of the access area A, and is a storage area indicated by row (3) and column (3, 7, 11).
  • Access area A4 is a rectangular area corresponding to the lower right part of access area A, and is indicated by row (4) and column (0, 1, 2, 4, 5, 6, 8, 9, 10). It is an area.
  • FIG. 3 is a diagram showing an outline of the access area divided by the page boundary dividing unit 106 and the access area dividing unit 109 in the present embodiment.
  • the page boundary dividing unit 106 for example, when a command A across pages is input as in the command 131a, the storage area accessed by the command A (hereinafter referred to as access area A). Split at page boundaries.
  • the page boundary dividing unit 106 individually generates a subcommand for each of the access area Al and the access area A2 obtained by dividing the access area A at the page boundary.
  • a subcommand Al for accessing the access area A1 and a subcommand A2 for accessing the access area A2 are generated.
  • the access area A1 is a rectangular area corresponding to the upper part of the access area A, and the bank (0) indicated by row (1) and column (12, 13, 14). ) Storage area.
  • Access area A2 is a rectangular area corresponding to the lower part of access area A. Storage area of bank (0) indicated by row (4) and column (0, 1, 2, 4, 5, 6) It is.
  • the page boundary dividing unit 106 receives a storage area accessed by the command B (hereinafter referred to as an access area B, for example) when a command B across pages is input like the command 131b. Split at page boundaries.
  • the access area B is a rectangular area surrounded by a thick frame in the storage area of the bank (1) shown on the right side, and the offset X ( 3) Force (PIXEL (8)), offset Y (4) Force is the storage area of bank (1) indicated by LINE (1).
  • the page boundary dividing unit 106 individually generates a subcommand for each of the access area Bl, access area B2, and access area B3 obtained by dividing the access area B at the page boundary.
  • subcommand group 132b subcommand Bl for accessing access area B1
  • subcommand for accessing access area B2 Subcommand B3 is generated to access B2 and access area B3.
  • access area B1 is a rectangular area corresponding to the left part of access area B, and is a storage area of bank (1) indicated by row (3) and column (3). It is.
  • the access area B2 is a rectangular area corresponding to the center part of the access area B, and is a storage area of the bank (1) indicated by row (4) and column (0, 1, 2, 3).
  • Access area B3 is a rectangular area corresponding to the right side of access area B, and is a storage area of bank (1) indicated by row (5) and column (0, 1, 2).
  • the number (2) of the subcommand group 132a and the number (3) of the subcommand group 132b are the same.
  • the overhead may appear without being concealed.
  • access area dividing unit 109 selects a subcommand having the largest access area from subcommand group 132a.
  • the subcommand A2 is selected.
  • the access area A2 is divided, and subcommands are individually generated for each of the access area A21 and the access area A22 obtained by dividing the access area A2.
  • the subcommand group 133a a subcommand A21 for accessing the access area A21 and a subcommand A22 for accessing the access area A22 are generated.
  • the access area A21 is a rectangular area corresponding to the upper part of the access area A2, and the bank (0) indicated by row (4) and column (0, 1, 2). ) Storage area.
  • the access area A22 is a rectangular area corresponding to the lower part of the access area A2, and is a storage area of the bank (0) indicated by row (4) and column (4, 5, 6).
  • FIG. 4 is a diagram showing an outline of attribute information generated by the page boundary dividing unit 106 and the access area dividing unit 109 in the present embodiment.
  • the page boundary dividing unit 106 divides the access area A at the page boundary when a command A across pages is input as in the command 131a, for example.
  • attribute information 141a including “command A (2), subcommand A1 (3), subcommand A2 (6)” is generated, and the generated attribute information 141a is registered in the attribute information holding unit 108.
  • command A (2) indicates that the number of subcommands S 2 generated based on command A is S 2.
  • Subcommand A1 (3) indicates that the size of the access area A1 is 3.
  • Subcommand A2 (6) indicates that the size of the access area A2 is 6.
  • the page boundary dividing unit 106 divides the access area B at the page boundary.
  • the attribute information 141b including "command B (3), subcommand Bl (1), subcommand B2 (4), subcommand B3 (3)" is generated, and the generated attribute information 141b is retained. Register with Part 108.
  • command B (3) indicates that the number of subcommands S3 generated based on command B is S3.
  • Subcommand Bl (l) indicates the size of the access area B1.
  • Subcommand B2 (4) indicates that the size of the access area B2 is 4.
  • Subcommand B3 (3) indicates that the size of the access area B3 is 3.
  • the access area dividing unit 109 selects the subcommand having the largest access area from the subcommand group 132a in order to match the number of subcommands.
  • the subcommand A2 is selected.
  • the access area A2 is divided, and a subcommand is generated individually for each of the access area A21 and the access area A22 obtained by dividing the access area A2.
  • a subcommand A21 for accessing the access area A21 and a subcommand A22 for accessing the access area A22 are generated.
  • the attribute information 142a including “subcommand A2 (2), subcommand A21 (3), subcommand A22 (3)” is generated, and the generated attribute information 142a is registered in the attribute information holding unit 108.
  • subcommand A2 (2) indicates that the number of subcommands generated based on subcommand A2 is two.
  • Subcommand A21 (3) indicates that the size of the access area A21 is 3.
  • Subcommand A22 (3) indicates that the size of the access area A22 is 3.
  • attribute information holding section 108 the data structure of attribute information held by attribute information holding section 108 in the present embodiment will be described.
  • FIG. 5 is a diagram showing a data structure of attribute information held by the attribute information holding unit 108 in the present embodiment. As shown in FIG. 5, in the attribute information 150, “command (number of subcommands), subcommand (access area size),...” (Record 151) is registered for each command.
  • command output control apparatus 100 in the present embodiment will be described.
  • FIG. 6 is a diagram showing a command output control process executed in the command output control apparatus 100 according to the present embodiment. As shown in FIG. 6, the command output control device 100 repeatedly executes the following command output control processing (S101) to (S109).
  • the command output control unit 103 determines whether or not the command holding unit 102 holds the command. If it is determined that the command is retained (S101: Yes), the following process (S102) is executed. On the other hand, if the command is not retained (S 101 : No), execute the process (S 101) again.
  • the command output control unit 103 determines whether or not the command holding unit 102 holds a plurality of commands. If it is determined that a plurality of commands are held (S102: Yes), the following process (S103) is executed. On the other hand, if a plurality of commands are stored (S102: No), the following process (S107) is executed.
  • the command output control unit 103 determines whether or not there are commands that access different banks among the plurality of commands held by the command holding unit 102. As a result of the determination, if it exists (S103: Yes), the following processes (S104) to (S106) are executed. On the other hand, if it does not exist (S103: No), the following process (S108) is executed. At this time, in finding the command to access a different bank from the commands held in the registers 102a to 102c, it may be searched in brute force, or the order in which they are issued may be held! You can search in the order in which they were issued!
  • the command output control unit 103 selects a first command from a plurality of commands.
  • the command holding unit 102 is controlled to output the selected first command.
  • the command conversion process (for example, see Figure 7) is executed for the first command that was output.
  • a control signal for selecting the register holding the first command is output to the selector 102d.
  • the command output control unit 103 selects a second command from a plurality of commands.
  • the command holding unit 102 is controlled to output the selected second command.
  • command conversion processing for example, see Figure 7
  • a control signal for selecting the register holding the second command is output to the selector 102d.
  • the command output control unit 103 controls the memory iZF unit 104 to alternately perform subcommand output processing (for example, as shown in FIG. 5) for the first subcommand group and the second subcommand group. 1 See 0). Accordingly, the subcommand belonging to the first subcommand group and the subcommand belonging to the second subcommand group are alternately output to the memory 105 as well. Along with this, the first bank and the second bank of the memory 105 are accessed alternately. Then, the above process (S101) is executed again.
  • the command output control unit 103 controls the command holding unit 102 to output the command held by the command holding unit 102. Then, a command conversion process (for example, see FIG. 7) is executed for the output command. At this time, a control signal for selecting the register holding the command is output to the selector 102d. Then, the following process (S109) is executed.
  • the command output control unit 103 selects a command from a plurality of commands held by the command holding unit 102.
  • the command holding unit 102 is controlled to output the selected command.
  • command conversion processing (for example, see FIG. 7) is executed on the output command.
  • the commands may be selected in the order in which they are issued, or the type of the command output first may be held, and the same type of command as the command output first may be selected preferentially.
  • the following process (S109) is executed.
  • the command output control unit 103 controls the memory iZF unit 104 to execute a subcommand output process for the subcommand group. Along with this, the subcommand force S memory belonging to the subcommand group is output from the iZF unit 104 to the memory 105. Then, the above process (S 101) is executed again.
  • FIG. 7 is a diagram showing command conversion processing executed in command output control apparatus 100 in the present embodiment. As shown in FIG. 7, when a command is output from the command holding unit 102, the command output control device 100 executes the following command conversion processing (S111) and (S112) and ends the command conversion processing. .
  • the page boundary dividing unit 106 performs page boundary dividing processing (for example, see FIG. 8) on the input command. At this time, if a subcommand group is generated from the input command, Instead of the input command, the generated subcommand group is stored in the subcommand holding unit 107. On the other hand, if not generated, the input command is stored in the subcommand holding unit 107 as a subcommand.
  • the access area dividing unit 109 executes an access area dividing process (for example, see FIG. 9) for the subcommand held by the subcommand holding unit 107 at a predetermined timing. At this time, if a subcommand group is further generated from the subcommand, the generated subcommand group is stored in the subcommand holding unit 107 instead of the subcommand.
  • FIG. 8 is a diagram showing page boundary division processing executed in the command output control apparatus 100 according to the first embodiment. As shown in FIG. 8, the command output control device 100 executes the following page boundary division processing (S 121) to (S 127).
  • the page boundary dividing unit 106 determines whether or not the access area of the input command crosses the page. As a result of the determination, when straddling pages (S121: Yes), the following processes 122) to (3126) are executed, and the page boundary dividing process is terminated. On the other hand, when the page does not straddle (S121: No), the following process (S127) is executed, and the page boundary division process is terminated.
  • the page boundary dividing unit 106 divides the access area of the input command at the page boundary. At this time, the access area is divided into a plurality of areas (hereinafter referred to as divided access areas).
  • the page boundary dividing unit 106 generates a subcommand for each divided access area. At this time, a subcommand for accessing the divided access area is generated.
  • the page boundary dividing unit 106 stores the generated subcommand group in the subcommand holding unit 107.
  • the page boundary dividing unit 106 generates attribute information related to the generated subcommand group. At this time, attribute information including the number of subcommands belonging to the subcommand group and the size of the access area of each subcommand is generated.
  • the page boundary dividing unit 106 sends the generated attribute information to the attribute information holding unit 108. sign up.
  • the page boundary dividing unit 106 stores the input command as a subcommand in the subcommand holding unit 107.
  • FIG. 9 is a diagram showing an access area dividing process executed in the command output control apparatus 100 according to the present embodiment. As shown in FIG. 9, the command output control device 100 executes the following access area division processing (S 131) to (S 138).
  • the access area division unit 109 determines whether the number of subcommands differs for the two subcommand groups to be compared. Determine whether. If the number of subcommands is different as a result of the determination (S1 31: Yes), the following processes (S132) and (S133) are executed. On the other hand, if the number of subcommands is the same (S131: No), the access area dividing process is terminated.
  • the sub-command number comparison unit 110 holds the number information regarding the number of sub-commands belonging to the sub-command group in the attribute information holding unit 108 for the two sub-command groups to be compared. Each attribute information is obtained. The obtained two pieces of piece number information are compared, and the comparison result is output to the access area dividing unit 109.
  • the access area dividing unit 109 has a small number of subcommands! /, And the subcommand group has the largest access area size. Select a command.
  • the access area dividing unit 109 determines whether or not the access area of the selected subcommand is greater than or equal to a threshold value. As a result of the determination, if it is equal to or greater than the threshold (S 133: Yes), the following processing (SI 34) to (SI 38) is executed. On the other hand, if it is less than the threshold (S133: No), the access area dividing process is terminated.
  • the access area dividing unit 109 divides the access area of the selected subcommand.
  • the access area dividing unit 109 generates a subcommand for each divided access area.
  • the access area dividing unit 109 replaces the selected subcommand with the generated subcommand group.
  • the access area dividing unit 109 generates attribute information related to the generated subcommand group.
  • the access area dividing unit 109 registers the generated attribute information in the attribute information holding unit 108.
  • FIG. 10 is a diagram showing a subcommand output process executed in the command output control apparatus 100 in the present embodiment. As shown in FIG. 10, the command output control apparatus 100 executes the following subcommand output processes (S141) to (S145).
  • Command output control section 103 selects the subcommand with the largest access area size from the subcommand group to be output based on the result determined by size determination section 112. .
  • the size determination unit 112 executes the following processing (S 142).
  • the command output control unit 103 controls the memory IZF unit 104 to execute the following processing (S 145), and outputs the selected subcommand to the memory 105.
  • the size determination unit 112 compares the sizes of the access areas of the subcommands belonging to the subcommand group with respect to the subcommand group to be output, and the size of the access area is maximized. Identify subcommands. At this time, if there are a plurality of subcommands having the largest access area size, the address comparison unit 113 is caused to execute the following processing (S143) and (S144). On the other hand, if there is only one subcommand with the largest access area size, the following processing (S 145) is performed without executing the following processing (S 143) and (S 144). To run.
  • the address comparison unit 113 compares the row address and the column address between the subcommands for the plurality of subcommands determined to be applicable by the size determination unit 112. Then, the following process (S 144) is executed.
  • the address comparison unit 113 selects a subcommand with a small number of transition bits of the address bus of the memory 105 from the corresponding subcommands. And the following processing
  • the IZF unit 104 takes out the subcommand selected by the command output control unit 103 from the subcommand holding unit 107 and outputs the taken out subcommand to the memory 105.
  • FIG. 11 shows a timing chart of signals output from command output control apparatus 100 to memory 105 in the present embodiment.
  • the command output control unit 103 controls the memory IZF unit 104 to alternately output the subcommand group 133a and the subcommand group 132b shown in FIG. Explain the case.
  • the memory IZF unit 104 decodes the subcommand A1, and outputs a control signal group for writing data to the bank (0), row (1), and columns (12, 13, 14) to the memory 105. .
  • the memory IZF unit 104 outputs the row signal (Low level) and the address signal (0Z1) to the memory 105 in the period T1, and sets the row address of the access area to the bank (0) and row (1).
  • the column signal (Low level) and the address signal (0Z12) are output to the memory 105, and the column address of the access area is set to the bank (0) and the column (12).
  • a write signal (low level) is output to the memory 105 and data writing is started.
  • the data (A, ⁇ , C) is output to the memory 105, and the bank (0), row (1), and column (12) forces are also written in order.
  • a low signal (Low level) an address signal (0 ⁇ 1), and a precharge signal are output to the memory 105.
  • Bank (0) and row (1) are precharged.
  • the memory IZF unit 104 decodes the subcommand B2, and stores a control signal group for writing data in the bank (1), row (4), and column (0, 1, 2, 3) in the memory 105. Output to. At this time, the memory IZF unit 104 outputs the row signal (Low level) and the address signal (1Z4) to the memory 105 in the period T4, and sets the row address of the access area to the bank (1) and the row (4). Set to. In period T6, the column signal (Low level) and the address signal (1Z0) are output to the memory 105, and the column address of the access area is set to bank (1) and column (0). In addition, a write signal (low level) is output to the memory 105 and data writing is started.
  • the memory IZF unit 104 decodes the subcommand A21, and outputs to the memory 105 a control signal group for writing data to the bank (0), row (4), and power ram (0, 1, 2). To do. At this time, the memory IZF unit 104 outputs the row signal (Low level) and the address signal (0Z4) to the memory 105 in the period T8, and sets the row address of the access area to the bank (0), row (4). Set to. In period T10, the column signal (Low level) and the address signal (0Z0) are output to the memory 105, and the column address of the access area is set to the bank (0) and the column (0).
  • a write signal (Low level) is output to the memory 105 and data writing is started.
  • data ( ⁇ ⁇ ⁇ , I, J) is output to the memory 105, and data is written in order from the bank (0), the mouth (4), and the column (0).
  • a low signal (Low level), an address signal (0Z4), and a precharge signal are output to the memory 105 in a period T12. Precharge bank (0) and row (4).
  • the memory IZF unit 104 decodes the subcommand B3 and outputs a control signal group for writing data to the bank (1), row (5), and column (0, 1, 2) to the memory 105. To do. At this time, the memory IZF unit 104 outputs the row signal (Low level) and the address signal (1Z5) to the memory 105 in the period T11, and sets the row address of the access area to the bank (1) and the row (5). Set. In period T13, the column signal (Low level) and the address signal (1Z0) are output to the memory 105, and the column address of the access area is set to bank (1) and column (0). In addition, a write signal (low level) is output to the memory 105 and data writing is started.
  • the memory IZF unit 104 decodes the subcommand A22, and outputs to the memory 105 a control signal group for writing data to the bank (0), row (4), and power ram (4, 5, 6). To do.
  • the memory IZF unit 104 outputs the row signal (Low level) and the address signal (0Z4) to the memory 105, and sets the row address of the access area to the bank (0) and row (4).
  • the column signal (Low level) and the address signal (0Z4) are output to the memory 105, and the column address of the access area is set to the bank (0) and the column (4).
  • a write signal (Low level) is output to the memory 105 and data writing is started.
  • data ( ⁇ , ⁇ , ⁇ ) is output to the memory 105, and data is written in order from the bank (0), row (4), and column (4).
  • a low signal (low level), an address signal (0 to 4), and a precharge are output to the memory 105.
  • the memory IZF unit 104 decodes the subcommand B1, and outputs a control signal group for writing data to the bank (1), row (3), and column (3) to the memory 105.
  • the memory IZF unit 104 outputs the row signal (Low level) and the address signal (1Z3) to the memory 105, and sets the row address of the access area to the bank (1) and the row (3). Set to.
  • the column signal (Low level) and address signal (1Z3) to the memory 105, and set the column address of the access area to bank (1) and column (3).
  • a write signal (low level) is output to the memory 105 and data writing is started.
  • data (Q) is output to the memory 105, and data is written to the bank (1), row (3), and column (3).
  • a low signal (low level), an address signal (0Z4), and a precharge are output to the memory 105 in a period T18.
  • FIG. 12 to FIG. 14 are diagrams showing timing charts of signals output from the command output control device 100 in the conventional embodiment to be compared with the command output control device 100 in the present embodiment to the memory 105. .
  • the access area can be divided and accessed, so that access to a different bank is inserted during a period of overhead. Overhead can be concealed.
  • a command including a plurality of row addresses can be processed, and even when data mapped on a memory is accessed in a rectangular unit. Can be accessed efficiently. Furthermore, when the area accessed by the command is divided into multiple partial areas, the access area below the threshold is not divided, so that the size of the partial area becomes so small that the overhead cannot be concealed. Can be suppressed. In addition, it is possible to prevent the overhead from entering midway due to the generation of a command with a small partial area size. Furthermore, the power consumption of the address bus can be reduced without reducing access efficiency.
  • the command output control device includes the following features (d) to (g).
  • the command output controller further subclasses the same type of subcommands that have no dependency with other types of subcommands among the subcommands held by the subcommand holding function.
  • the subcommand output function continuously outputs the same type of subcommands classified by the command type function.
  • the command output control device further depends on the write 'subcommand group for detecting the write' subcommand group accessing the same partial storage area 'from the subcommands held by the subcommand holding function.
  • subcommand output function is write ' Based on the result detected by the subcommand dependency detection function, the write 'subcommand' with the output order earlier in the write ⁇ subcommand group is discarded and the write 'subcommand with the output order later is output.
  • the command output control device further depends on the subcommand that detects the read 'subcommand group that accesses the same partial storage area from the subcommands held by the subcommand holding function. Based on the result detected by the read sub-command dependency detection function, the sub-command output function outputs the first read sub-command in the output sub-command group based on the detection result. Discards the read subcommand whose output order is later.
  • the command output control device further includes a notor 215 that temporarily holds the data read from the memory, and the subcommand output function is configured to execute the read subcommand whose output order is first.
  • the data read from the memory is temporarily stored in the buffer, and the data is also read by the notifier when the read 'subcommand whose output order is later is output.
  • a subcommand for writing data to the partial storage area is referred to as a “write” subcommand.
  • the subcommand for reading data for partial memory capacity is the read subcommand.
  • FIG. 15 is a diagram showing a configuration of the command output control device in the present embodiment. As shown in FIG. 15, the command output control device 200 differs from the command output control device 100 in the first embodiment in the following points (1) to (8).
  • a command output control unit 203 is provided instead of the command output control unit 103.
  • the command output control unit 203 controls the memory IZF unit 204 to output the subcommand with the output order earlier in the read 'subcommand group. Discards subcommands in later power order.
  • the data read from the memory 105 is temporarily stored in the buffer 215 when the subcommand with the output order is output first, and the subcommand is output when the subcommand with the output order is output later. Read data from buffer 215.
  • the command output control unit 203 controls the memory IZF unit 204 to discard the subcommand with the output order earlier in the write 'subcommand group and output the subcommand with the output order later.
  • command output control unit 203 controls the memory IZF unit 204 to continuously output the same type of subcommands classified by the read Z write attribute determination unit 212.
  • a memory IZF unit 204 is provided instead of the memory IZF unit 104.
  • the memory IZF unit 204 In response to the control signal input from the command output control unit 203, the memory IZF unit 204 outputs the first read sub-command in the read sub-command group held in the sub-command holding unit 107. Outputs the command and discards the read subcommand with the output order later. At this time, when outputting the first read 'subcommand in the output order, the data read from the memory 105 is temporarily held in the buffer 215, and when the subsequent read' subcommand is output in the output order. Then, the data is read from the nota 215.
  • the memory IZF unit 204 discards the write 'subcommand whose output order is earlier in the write' subcommand group, and the output order is Output the later write 'subcommand.
  • An attribute information holding unit 208 is provided instead of the attribute information holding unit 108.
  • the attribute information holding unit 208 holds attribute information including the contents shown in the following (a) and (b) as an example.
  • a duplicate flag can be set for each subcommand.
  • the first duplicate flag The initial value is 0.
  • a read Z write attribute determination unit 212 is newly provided.
  • the read Z write attribute determination unit 212 classifies the same type of subcommands that are not dependent on other types of subcommands from the subcommands held by the subcommand holding unit 107.
  • a write 'subcommand dependency relation detection unit 213 is newly provided.
  • the write 'subcommand dependency detection unit 213 detects a write' subcommand group that accesses the same access area from the subcommands held by the subcommand holding unit 107.
  • a read 'subcommand dependency relationship detection unit 214 is newly provided.
  • the read sub-command dependency detection unit 214 detects a read sub-command group that accesses the same access area from the sub-commands held by the sub-command holding unit 107.
  • a buffer 215 is newly provided.
  • the noffer 215 is provided between the memory 105 and the memory IZF unit 204, and temporarily holds data read from the memory 105.
  • the size determination unit 112 and the address comparison unit 113 are not provided.
  • FIG. 16A and FIG. 16B are diagrams showing an outline example in which the output order is changed by the command output control device 200 in the present embodiment.
  • command group 221a is command issuer 101 in the order of Read [1], Read [2], Write [1], Read [3], Write [2], Write [3]. It is assumed that it was issued from. Here, it is assumed that the access area of write [1] and the access area of read [3] do not overlap, and there is no dependency between write [1] and read [3]. Then, when the command group 221a is output to the memory 105 in the order in which the commands are issued, read [2] and write [1], write [1] and read [3], read [3] And overhead [2], there is overhead.
  • the command output control unit 203 determines whether the read Z write attribute determination unit 212 has determined. Based on the result, the order of the write [1] and the read [3] of the command group 221a is switched. Then, it is assumed that the command group 221a in which the order is changed, that is, the command group 222a is output to the memory 105 in the order in which the commands are output. In this case, read [1], read [2], read [3], write [1], write [2], and write [3] are output in this order. At this time, an overhead is inserted between the read [3] and the write [1].
  • the command output control unit 203 switches the order of the read [6] and the write [5] of the command group 221b based on the result determined by the read Z write attribute determining unit 212. . Then, it is assumed that the command group 221b in which the order is changed, that is, the command group 222b is output to the memory 105 in the order in which the commands are output. In this case, read [4], read [5], write [4], write [5], read [6], and read [7] are output in this order. At this time, overhead occurs between read [5] and write [4] and between write [5] and read [6].
  • FIG. 17 is a diagram showing a process in which the dependency relation is detected by the write sub-command dependency relation detection unit 213 according to the present embodiment.
  • the write 'subcommand dependency relationship detection unit 213 refers to the attribute information and searches for subcommands having overlapping access areas from the subcommands registered in the attribute information. When a duplicate subcommand is found, the attribute information is updated by setting the duplication flag of the subcommand with the output order to 1.
  • the write [1] command shown in FIG. 16A is a write command (hereinafter referred to as a write 'command (A3)) for writing data to the access area A3.
  • the access area A3 is divided into access areas A31, A32, A33, and A34, and the write 'subcommand (A31), write' subcommand (A32), write 'subcommand (A33), and write' subcommand Assume that (A34) is generated.
  • the command [3] shown in FIG. 16A is a write command (hereinafter referred to as a write 'command (A4)) for writing data to the access area A4. Then, it is assumed that the access area A4 is divided into access areas A41 and A33, and a write 'subcommand (A41) and a write' subcommand (A33) are generated. At this time, “write” command (A4), write “subcommand” (A41) ⁇ 0 ⁇ , and write “subcommand (A33) ⁇ 0 ⁇ ” are registered in attribute information 231.
  • the write 'subcommand dependency detection unit 213 associates the write subcommand (A33) with the write subcommand (A3) and the write' command (A4) as duplicate subcommands. ) And the 'write' subcommand (A33) associated with it. Accordingly, as shown in the attribute information 232, 1 is set in the duplication flag of the write subcommand (A33) associated with the write'command (A3) output earlier.
  • FIG. 18 is a diagram showing a process in which the dependency relationship is detected by the read sub-command dependency relationship detection unit 214 in the present embodiment.
  • the lead sub-coma The command dependency detection unit 214 refers to the attribute information and searches for subcommands having overlapping access areas from the subcommands registered in the attribute information. When a duplicate subcommand is found, the attribute information is updated by setting the duplication flag of the subcommand with the output order to 1.
  • the command [1] shown in FIG. 16A is a read command for writing data into the access area A1 (hereinafter referred to as a read command (A1)). Then, the access area A1 is divided into access areas All, A12, A13, and A14. The read subcommand (All), read subcommand (A12), read subcommand (A13), and read Assume that a subcommand (A14) is generated. At this time, "Read" command (A1), Read subcommand (All) ⁇ 0 ⁇ , Read subcommand (A12) ⁇ 0 ⁇ , Read subcommand (A13) ⁇ 0 ⁇ , Read sub Command (A14) ⁇ 0 ⁇ "is registered in attribute information 241.
  • the command [3] shown in FIG. 16A is a read command (hereinafter referred to as a read command (A2)) for writing data in the access area A2. Then, it is assumed that the access area A2 is divided into access areas A21 and A13 and a read subcommand (A21) and a read subcommand (A13) are generated. At this time, “read” command (A2), read “subcommand” (A21) ⁇ 0 ⁇ , and read “subcommand (A13) ⁇ 0 ⁇ ” are registered in attribute information 241.
  • the read sub-command dependency detecting unit 214 reads the read sub-command (A13) associated with the read command (A1) and the read command (A2) as duplicate sub-commands. To find the read subcommand (A13). Accordingly, as shown in the attribute information 242, 1 is set to the duplication flag of the read “subcommand” (A 13) associated with the read “command” (A 2) output later.
  • command output control apparatus 200 in the present embodiment will be described.
  • FIG. 19 and FIG. 20 are diagrams showing command output control processing executed in the command output control device 200 in the present embodiment.
  • the command output control device 200 executes the following command output control processing (S101), (S102), (S201) to (S218).
  • the processing (S101) is the command in the first embodiment.
  • the operation is the same as the process (S101) included in the output control process (for example, see FIG. 6), and the description thereof is omitted here.
  • the command output control unit 203 determines whether or not the command holding unit 102 is holding a plurality of commands. If it is determined that a plurality of commands are held (S102: Yes), the following process (S201) is executed. On the other hand, if multiple commands are stored (S102: No), the following process (S211) is executed.
  • the command output control unit 203 selects a command from among a plurality of commands held by the command holding unit 102.
  • the command holding unit 102 is controlled to output the selected command.
  • Command conversion processing (for example, see Fig. 21) is executed for the output command.
  • the commands may be selected in the order in which they are issued, or the type of the command output first may be retained, and the same type of command as the command output first may be selected preferentially. .
  • the following process (S202) is executed.
  • the command output control unit 203 controls the memory iZF unit 204 to execute a subcommand output process (see, for example, FIG. 24) for the subcommand group. Accordingly, the subcommand force S memory iZF unit 204 force belonging to the subcommand group is also output to the memory 105. Then, the process (S 101) is executed again.
  • the command output control unit 203 assigns an output order to the read command and the write command in the order of issue. Then, the following process (S212) is executed.
  • the command output control unit 203 executes the following processing (S213) to (S217) for all combinations of the read “command” and the write “command”. Then, when the following processes (S213) to (S217) are executed for all combinations, the following process (S218) is executed.
  • the command output control unit 203 determines whether or not the read command has been previously output to the page boundary dividing unit 106. As a result of the determination, if it is output first (S213: Yes), the following processing (S214) is executed. On the other hand, if it has not been output first (S213: No), the following processing (S217) is executed.
  • the command output control unit 203 determines whether or not the write “command” is issued earlier than the command issuing unit 101 than the “read” command. As a result of judgment, it is issued first. If it is (S214: Yes), the following process (S215) is executed. On the other hand, if it is issued later (S214: No), the above processing (S212) is executed again.
  • the command output control unit 203 determines whether or not the access areas overlap for the combination of the write “command” and the read “command”. If the result of the determination is that there is no overlap (S215: Yes), the following processing (S216) is executed. On the other hand, if they overlap (S215: No), the above processing (S212) is executed again.
  • the command output control unit 203 determines whether or not the read “command” is issued earlier than the command issuing unit 101 than the write “command”. As a result of the determination, if it is issued first (S217: Yes), the above processing (S215) is executed. On the other hand, if it is issued later (S217: No), the above processing (S212) is executed again.
  • the command output control unit 203 selects a command according to the output order, controls the command holding unit 102, and outputs the selected command. Then, a command conversion process (see, for example, FIG. 21) is executed on the output command. Then, the above process (S202) is executed.
  • FIG. 21 is a diagram showing a command conversion process executed in the command output control apparatus 200 in the present embodiment.
  • the command output control device 200 executes the following command conversion processes (S 111), (S 112), (S 221), and (S 222).
  • S 111 the following command conversion processes
  • S 112 the same operations as the processing (S111) and (S112) included in the command conversion processing in Embodiment 1 (see, for example, FIG. 7)
  • the explanation is omitted here.
  • the write sub-command dependency detection unit 213 performs write / sub-command dependency detection processing (for example, see FIG. 22) for the sub-command held by the sub-command holding unit 107! )) To detect duplicate write 'subcommands.
  • FIG. 22 is a diagram showing a write sub-command dependency relationship detection process executed in the command output control device 200 according to the present embodiment. As shown in FIG. 22, the command output control apparatus 200 executes the following write sub-command dependency relationship detection processing (S231) to (S233).
  • the write 'subcommand dependency relation detection unit 213 executes the following processing (S232) and (S233) for all combinations of write' subcommands. When the following processes (S232) and (S233) are executed for all combinations, the write sub-command dependency detection process is terminated.
  • the write 'subcommand dependency relation detection unit 213 determines whether or not to access the same access area for the write' subcommand combination. As a result of the determination, if the same access area is accessed (S232: Yes), the following process (S233) is executed. On the other hand, when the same access area is not accessed (S232: No), the processing (S231) is executed for the next combination.
  • the write 'subcommand dependency detection unit 213 includes the attribute information held in the attribute information holding unit 208, and the output order of the write' subcommand group that accesses the same access area is the first. For the 'write' subcommand, set the duplicate flag to 1.
  • FIG. 23 is a diagram showing the lead 'subcommand dependency detection processing executed in the command output control apparatus 200 in the present embodiment. As shown in FIG. 23, the command output control device 200 executes the following read 'subcommand dependency relationship detection processing (S241) to (S243).
  • the read 'subcommand dependency relation detection unit 214 executes the following processing (S242) and (S243) for all combinations of read' subcommands. When the following processes (S242) and (S243) are executed for all combinations, the read sub-command dependency relation detection process is terminated.
  • the read 'subcommand dependency relationship detection unit 214 determines whether or not to access the same access area for the read' subcommand combination. If the same access area is accessed as a result of the determination (S242: Yes), the following process (S243) is executed. To do. On the other hand, when the same access area is not accessed (S242: No), the process (S241) is executed for the next combination.
  • the read 'subcommand dependency relationship detecting unit 214 sets the output order in the read' subcommand group that accesses the same access area out of the attribute information held in the attribute information holding unit 208. Set the duplicate flag to 1 for the 'read' subcommand.
  • FIG. 24 is a diagram showing a subcommand output process executed in the command output control apparatus 200 in the present embodiment.
  • the command output control device 200 executes the following subcommand output processing (S251) to (S259), (S145).
  • the processing (S145) is the same as the processing (S145) included in the subcommand output processing (for example, refer to FIG. 10) in the first embodiment, and the description is omitted here.
  • the command output control unit 203 selects a subcommand from the subcommand group to be output. Then, the following process (S252) is executed.
  • the command output control unit 203 determines whether or not the selected subcommand is a read subcommand based on the result determined by the read Z write attribute determination unit 212. As a result of the determination, if it is a read 'subcommand (S252: Yes), the following processing (S253) is executed. On the other hand, if it is not a read 'subcommand (S252: No), the following processing (S256) is executed. At this time, the read Z write attribute determining unit 212 refers to the attribute information held by the attribute information holding unit 208, identifies the type of subcommand selected by the command output control unit 203, and identifies the identified type. The information on is output to the command output control unit 203.
  • the command output control unit 203 refers to the attribute information held in the attribute information holding unit 208, and determines whether or not the duplication flag of the selected subcommand is set to “0”. As a result of the determination, if the duplication flag is set to 0 (S253: Yes), the memory IZF unit 204 is caused to execute the following processing (S254). On the other hand, when the overlap flag is set to 1 and V (S253: No), the memory IZF unit 204 is caused to execute the following process (S255).
  • the IZF unit 204 receives the subcommand selected by the command output control unit 203. Take out from the subcommand holding unit 107. The retrieved subcommand is output to memory 105. The access area power specified by the output subcommand is also read out. Then, the subcommand output process ends.
  • the IZF unit 204 takes out the subcommand selected by the command output control unit 203 from the subcommand holding unit 107.
  • the retrieved subcommand is discarded without being output to the memory 105.
  • Data read from the access area specified by the discarded subcommand and stored in the buffer 215 is read from the buffer 215. Then, the subcommand output process ends.
  • the command output control unit 203 determines whether the selected subcommand is a write 'subcommand based on the result determined by the read Z write attribute determination unit 212. If the result of the determination is that it is a write subcommand (S256: Yes), the following processing (S257) is executed. On the other hand, if it is not the write 'subcommand (S256: No), the following process (S1 45) is executed. At this time, the read / write attribute determination unit 212 refers to the attribute information held in the attribute information holding unit 208, specifies the type of subcommand selected by the command output control unit 203, and information on the specified type Is output to the command output control unit 203.
  • the command output control unit 203 refers to the attribute information held in the attribute information holding unit 208, and determines whether or not the duplication flag of the selected subcommand is set to “0”. As a result of the determination, if the duplication flag is set to 0 (S257: Yes), the memory IZF unit 204 is caused to execute the following processing (S258). On the other hand, when the overlap flag is set to 1 and V (S257: No), the memory IZF unit 204 is caused to execute the following process (S259).
  • the IZF unit 204 takes out the subcommand selected by the command output control unit 203 from the subcommand holding unit 107. The retrieved subcommand is output to memory 105. Data is written in the access area specified by the output subcommand. Then, the subcommand output process ends.
  • the IZF unit 204 takes out the subcommand selected by the command output control unit 203 from the subcommand holding unit 107. The retrieved subcommand is discarded without being output to the memory 105. Then, the subcommand output process ends.
  • the command output control apparatus 200 in the present embodiment it is possible to reduce the opportunity for overhead to be inserted between the read 'command' and the write 'command.
  • duplicate write 'commands can be omitted, and access efficiency can be improved.
  • duplicate read commands can be omitted, and access efficiency can be improved.
  • command output control device is realized by LSI that incorporates each function of the command output control device.
  • LSIs include semi-custom LSIs such as Funore Custom LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gauge Array), CPLD (Complex Programmable Logic Device), etc.
  • Such a programmable logic device may be formed into a dynamic reconfigurable device whose circuit configuration can be dynamically rewritten.
  • the design data for forming each function of the command output control device in the LSI may be a program described in a hardware description language (hereinafter referred to as an HDL program). Furthermore, it may be a gate-level netlist obtained by logical synthesis of an HDL program. Alternatively, macro cell information in which arrangement information, process conditions, etc. are added to a gate level netlist may be used. Also, it may be mask data in which dimensions, timing, etc. are defined.
  • VHDL Very high speed integrated circuit Hardware Description Language
  • Verilog—HDL Verilog—HDL
  • systemCa systemCa are used as hardware description languages.
  • the design data may be recorded on a recording medium readable by a hardware system such as a computer system or an embedded system.
  • the program may be read and executed by another hardware system via a recording medium.
  • the design data read into other hardware systems via these recording media may be downloaded to a programmable 'logic' device via a download cable.
  • a computer system readable recording medium an optical recording medium (for example, CD-ROM), a magnetic recording medium (for example, hard disk), a magneto-optical recording medium (for example, MO), a semiconductor memory, etc. (Eg memory card Such. )and so on.
  • design data is stored in a hardware system connected to a network such as the Internet or a local area network! It ’s really good! /. Furthermore, it may be downloaded to another hardware system via a network and executed. Then, design data obtained by other hardware systems via these networks may be downloaded to programmable 'logic' devices via download cables.
  • a network a terrestrial broadcasting network, a satellite broadcasting network, a PLC (Power Line Communication), a mobile telephone network, a wired communication network (for example, IEEE802.3), a wireless communication network (for example, IEEE802.11).
  • a network a terrestrial broadcasting network, a satellite broadcasting network, a PLC (Power Line Communication), a mobile telephone network, a wired communication network (for example, IEEE802.3), a wireless communication network (for example, IEEE802.11).
  • the design data may be recorded in the serial ROM so that it can be transferred to the FPGA when energized.
  • the design data recorded in the serial ROM may be downloaded directly to the FPGA when power is applied.
  • the design data may be generated by a microprocessor and downloaded to the FPGA when energized.
  • the present invention provides a command output control device for controlling the output of a command for controlling a memory, and particularly as a command output control device for controlling the output of a command used at the time of reading and writing. ⁇ Can be used for IJ.

Abstract

 コマンド出力制御装置(100)は、サブコマンド個数比較部(110)で比較された結果に基づいて、第1の記憶領域と第2の記憶領域とのいずれかから、個数の少ない方を分割対象の記憶領域として選択し、サイズ比較部(111)で比較された結果に基づいて、分割対象の記憶領域を構成する部分記憶領域の中から、所定のサイズ以上の部分記憶領域を分割対象の部分記憶領域として選択し、分割対象の部分記憶領域を分割して得られた部分記憶領域ごとにアクセス領域分割部(109)でサブコマンドを生成し、分割対象の部分記憶領域にアクセスするサブコマンドを、生成したサブコマンド群で置き換え、置き換えた後の第1のサブコマンド群と第2のサブコマンド群とから交互に選択したサブコマンドをメモリ(105)へ出力する。

Description

明 細 書
コマンド出力制御装置
技術分野
[0001] 本発明は、メモリにアクセスするコマンドの出力を制御するコマンド出力制御装置な どとして、特に、リード、ライト時において使用されるコマンドの出力を制御するコマン ド出力制御装置などに関する。
背景技術
[0002] 従来、 SDRAMなどのようなメモリに効率的にアクセスする技術が色々と提案されて いる。例えば、その中の一つとして、 SDRAMのバンクに対するアクセス特性を利用 して、バンクを交互にアクセスすることで、コマンド間のオーバヘッドを隠蔽する技術 が提案されている (例えば、特許文献 1及び 2参照。 )0
[0003] そして、近年の画像処理のように、複数のロウアドレスを含むコマンドによってメモリ 上にマッピングされたデータを矩形領域の単位でアクセスする場合にお 、ても、効率 よくアクセスすることが要求されて ヽる。
特許文献 1:特開 2001— 256106号公報
特許文献 2 :米国特許第 6819326号明細書
発明の開示
発明が解決しょうとする課題
[0004] し力しながら、従来の技術において、矩形領域の単位でアクセスすることが想定さ れていないので、複数のロウアドレスを含むコマンドを処理することができない。また、 コマンドによってアクセスされる記憶領域を複数の部分記憶領域に分割するにあたつ て、オーバヘッドを隠蔽することができないほど、部分記憶領域のサイズが小さくなつ てしまう場合がある。
[0005] そこで、本発明は、上記問題に鑑みてなされたものであり、メモリ上にマッピングさ れたデータを矩形領域の単位でアクセスするときの効率を向上させるコマンド出力制 御装置を提供することを目的とする。
課題を解決するための手段 [0006] 上記目的を達成するために、本発明に係わるコマンド出力制御装置は、(a) (al) 第 1の記憶領域にアクセスするコマンドに基づいて生成された第 1のサブコマンド群と 、前記第 1の記憶領域とは異なるバンクに属する第 2の記憶領域にアクセスするコマ ンドに基づいて生成された第 2のサブコマンド群とを保持するサブコマンド保持手段 と、(a2)サブコマンド群に属するサブコマンドの個数を、前記第 1のサブコマンド群と 前記第 2のサブコマンド群との間で比較する個数比較手段と、 (a3)前記個数比較手 段で比較された結果に基づ!、て、前記第 1の記憶領域と前記第 2の記憶領域との 、 ずれかから、個数の少な!/、方を分割対象の記憶領域として選択する記憶領域選択 手段と、(a4)サブコマンドによってアクセスされる部分記憶領域のサイズを、サブコマ ンド群に属するサブコマンド間で比較するサイズ比較手段と、 (a5)前記サイズ比較 手段で比較された結果に基づ!、て、前記分割対象の記憶領域を構成する部分記憶 領域の中から、所定のサイズ以上の部分記憶領域を分割対象の部分記憶領域とし て選択する部分記憶領域選択手段と、 (a6)前記分割対象の部分記憶領域を分割し て得られた部分記憶領域ごとにサブコマンドを生成するサブコマンド生成手段と、 (a 7)前記サブコマンド保持手段で保持されて 、るサブコマンドの中から、前記分割対 象の部分記憶領域にアクセスするサブコマンドを、前記サブコマンド生成手段で生成 されたサブコマンド群で置き換えるサブコマンド置換手段と、 (a8)前記第 1のサブコ マンド群と前記第 2のサブコマンド群とから交互にサブコマンドをメモリへ出力するサ ブコマンド出力手段とを備えることを特徴とする。
[0007] これによつて、複数のロウアドレスを含むコマンドによってメモリ上にマッピングされ たデータを矩形領域の単位でアクセスする場合にぉ 、ても、サブコマンドの個数を合 わせて交互に出力するので、バンクを切り替えながら効率よくアクセスすることができ る。さらに、分割対象の部分記憶領域として所定のサイズ以上の部分記憶領域が選 択される。このため、オーバヘッドを隠蔽することができるサイズに所定のサイズを設 定することで、オーバヘッドを隠蔽することができないほど、部分記憶領域のサイズが 小さくなることを抑制することができる。
[0008] さらに、(b)前記コマンド出力制御装置は、(bl)サブコマンドによってアクセスされ る部分記憶領域のサイズを特定するサイズ特定手段を備え、 (b2)前記サブコマンド 出力手段は、前記サイズ特定手段で特定された結果に基づいて、前記サブコマンド 保持手段で保持されて!、るサブコマンドの中から、所定のサイズ未満の部分記憶領 域にアクセスするサブコマンドを後に出力するとしてもよい。
[0009] これによつて、部分記憶領域のサイズが小さいサブコマンドが生成されてオーバへ ッドが途中で入ることを防ぐことができる。
[0010] または、(c)前記コマンド出力制御装置は、(cl)前記サブコマンド保持手段で保持 されて!/、るサブコマンドの中から、他種のサブコマンドと依存関係のない同種のサブ コマンドを種別するサブコマンド種別手段を備え、 (c2)前記サブコマンド出力手段は 、前記サブコマンド種別手段で種別された前記同種のサブコマンドを連続して出力 するとしてちょい。
[0011] これによつて、リード'サブコマンドとライト'サブコマンドとの間にオーバヘッドが入る 機会を削減することができる。
[0012] または、(d)前記コマンド出力制御装置は、(dl)前記サブコマンド保持手段で保持 されて 、るサブコマンドの中から、同一の部分記憶領域にアクセスするライト ·サブコ マンド群を検出するライト'サブコマンド依存関係検出手段を備え、(d2)前記サブコ マンド出力手段は、前記ライト'サブコマンド依存関係検出手段で検出された結果に 基づいて、前記ライト'サブコマンド群のうち、出力順番が先のライト'サブコマンドを 廃棄し、出力順番が後のライト'サブコマンドを出力するとしてもよい。
[0013] これによつて、重複するライト ·サブコマンドを省略することができ、アクセス効率を向 上させることができる。
[0014] または、(e)前記コマンド出力制御装置は、(el)前記サブコマンド保持手段で保持 されているサブコマンドの中から、同一の部分記憶領域にアクセスするリード'サブコ マンド群を検出するリード'サブコマンド依存関係検出手段を備え、(e2)前記サブコ マンド出力手段は、前記リード'サブコマンド依存関係検出手段で検出された結果に 基づいて、前記リード'サブコマンド群のうち、出力順番が先のリード'サブコマンドを 出力し、出力順番が後のリード'サブコマンドを廃棄するとしてもよい。
[0015] さらに、(f)前記コマンド出力制御装置は、(fl)前記メモリから読み出されたデータ を一時的に保持するバッファを備え、(f 2)前記サブコマンド出力手段は、出力順番 が先のリード'サブコマンドを出力したときに、前記メモリから読み出したデータを前記 ノ ッファに一時的に保持しておき、出力順番が後のリード'サブコマンドを出力すると きに、前記バッファ力も前記データを読み出すとしてもよい。
[0016] これによつて、重複するリード'サブコマンドを省略することができ、アクセス効率を 向上させることができる。
[0017] または、(g)前記コマンド出力制御装置は、(gl)サブコマンドによってアクセスされ る部分記憶領域のアドレスを、サブコマンド群に属するサブコマンド間で比較するアド レス比較手段と、(g2)前記アドレス比較手段で比較された結果に基づいて、前記サ ブコマンド保持手段で保持されているサブコマンドの中から、先に出力されたサブコ マンドによってアクセスされた部分記憶領域のアドレス力 の遷移が小さいサブコマ ンドを選択するサブコマンド選択手段とを備え、 (g3)前記サブコマンド出力手段は、 前記サブコマンド選択手段で選択されたサブコマンドを出力するとしてもよい。
[0018] これによつて、アクセス効率を下げることなぐアドレスバスの消費電力を下げること ができる。
[0019] なお、本発明は、コマンド出力制御装置として実現される以外に、コマンド出力制 御装置を制御するコマンド出力制御方法、コマンド出力制御装置の機能が組み込ま れた LSI (Large Scale Integration)、その機能を FPGA (Field Programmable Gate Ar ray) CPLD (Complex Programmable Logic Device)などのプログラマブノレ 'ロジック' デバイスに形成する IP (Intellectual Property)コア、その IPコアを記録した記録媒体 などとして実現されるとしてもよ!/、。
発明の効果
[0020] 本発明によれば、複数のロウアドレスを含むコマンドによってメモリ上にマッピングさ れたデータを矩形領域の単位でアクセスする場合にぉ 、ても、サブコマンドの個数を 合わせて交互に出力するので、バンクを切り替えながら効率よくアクセスすることがで きる。
[0021] さらに、分割対象の部分記憶領域として所定のサイズ以上の部分記憶領域が選択 される。このため、オーバヘッドを隠蔽することができるサイズに所定のサイズを設定 することで、オーバヘッドを隠蔽することができないほど、部分記憶領域のサイズが小 さくなることを抑制することができる。また、部分記憶領域のサイズが小さいコマンドが 生成されてオーバヘッドが途中で入ることを防ぐことができる。
[0022] さらに、リード'サブコマンドとライト'サブコマンドとの間にオーバヘッドが入る機会を 削減することができる。また、重複するライト'サブコマンドやリード'サブコマンドを省 略することができ、アクセス効率を向上させることができる。
[0023] そして、アクセス効率を下げることなぐアドレスの遷移を小さくし、アドレスバスの消 費電力を下げることができる。
図面の簡単な説明
[0024] [図 1]図 1は、本発明に係わる実施の形態 1におけるコマンド出力制御装置の構成を 示す図である。
[図 2]図 2は、本発明に係わる実施の形態 1におけるページ境界分割部によってァク セス領域が分割される過程を示す図である。
[図 3]図 3は、本発明に係わる実施の形態 1におけるページ境界分割部とアクセス領 域分割部とによって分割されたアクセス領域の概要を示す図である。
[図 4]図 4は、本発明に係わる実施の形態 1におけるページ境界分割部とアクセス領 域分割部とによって生成された属性情報の概要を示す図である。
[図 5]図 5は、本発明に係わる実施の形態 1における属性情報保持部で保持される属 性情報のデータ構造を示す図である。
[図 6]図 6は、本発明に係わる実施の形態 1におけるコマンド出力制御装置において 実行されるコマンド出力制御処理を示す図である。
[図 7]図 7は、本発明に係わる実施の形態 1におけるコマンド出力制御装置において 実行されるコマンド変換処理を示す図である。
[図 8]図 8は、本発明に係わる実施の形態 1におけるコマンド出力制御装置において 実行されるページ境界分割処理を示す図である。
[図 9]図 9は、本発明に係わる実施の形態 1におけるコマンド出力制御装置において 実行されるアクセス領域分割処理を示す図である。
[図 10]図 10は、本発明に係わる実施の形態 1におけるコマンド出力制御装置におい て実行されるサブコマンド出力処理を示す図である。 [図 11]図 11は、本発明に係わる実施の形態 1におけるコマンド出力制御装置力 メ モリに出力される信号のタイミングチャートを示す図である。
[図 12]図 12は、本発明に係わる実施の形態 1におけるコマンド出力制御装置の比較 対象とする従来の形態におけるコマンド出力制御装置力 メモリに出力される信号の タイミングチャートを示す図である。
[図 13]図 13は、本発明に係わる実施の形態 1におけるコマンド出力制御装置の比較 対象とする従来の形態におけるコマンド出力制御装置力 メモリに出力される信号の タイミングチャートを示す図である。
[図 14]図 14は、本発明に係わる実施の形態 1におけるコマンド出力制御装置の比較 対象とする従来の形態におけるコマンド出力制御装置力 メモリに出力される信号の タイミングチャートを示す図である。
[図 15]図 15は、本発明に係わる実施の形態 2におけるコマンド出力制御装置の構成 を示す図である。
[図 16A]図 16Aは、本発明に係わる実施の形態 2におけるコマンド出力制御装置によ つて出力順が変更される概要例を示す第 1の図である。
[図 16B]図 16Bは、本発明に係わる実施の形態 2におけるコマンド出力制御装置によ つて出力順が変更される概要例を示す第 2の図である。
[図 17]図 17は、本発明に係わる実施の形態 2におけるライト'サブコマンド依存関係 検出部によって依存関係が検出される過程を示す図である。
[図 18]図 18は、本発明に係わる実施の形態 2におけるリード'サブコマンド依存関係 検出部によって依存関係が検出される過程を示す図である。
[図 19]図 19は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるコマンド出力制御処理を示す第 1の図である。
[図 20]図 20は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるコマンド出力制御処理を示す第 2の図である。
[図 21]図 21は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるコマンド変換処理を示す図である。
[図 22]図 22は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるライト'サブコマンド依存関係検出処理を示す図である。
[図 23]図 23は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるリード'サブコマンド依存関係検出処理を示す図である。
[図 24]図 24は、本発明に係わる実施の形態 2におけるコマンド出力制御装置におい て実行されるサブコマンド出力処理を示す図である。
符号の説明
100 コマンド出力制御装置
101 コマンド発行部
102 コマンド保持部
102a〜102c レジスタ
102d セレクタ
103 コマンド出力制御部
104 メモリ IZF部
105 メモリ
106 ページ境界分割部
107 サブコマンド保持部
108 属性情報保持部
109 アクセス領域分割部
110 サブコマンド個数比較部
111 サイズ比較部
112 サイズ判定部
113 アドレス比較部
200 コマンド出力制御装置
203 コマンド出力制御部
204 メモリ IZF部
208 属性情報保持部
212 リード/ライト属性判断部
213 ライト'サブコマンド依存関係検出部 214 リード'サブコマンド依存関係検出部
215 ノ ッファ
発明を実施するための最良の形態
[0026] (実施の形態 1)
以下、本発明に係わる実施の形態 1につ 、て図面を参照しながら説明する。
[0027] 本実施の形態におけるコマンド出力制御装置は、下記 (a)〜(c)に示される特徴を 備える。
[0028] (a) (al)第 1の記憶領域にアクセスするコマンドに基づいて生成された第 1のサブ コマンド群と、第 1の記憶領域とは異なるバンクに属する第 2の記憶領域にアクセスす るコマンドに基づいて生成された第 2のサブコマンド群とを保持するサブコマンド保持 機能と、(a2)サブコマンド群に属するサブコマンドの個数を、第 1のサブコマンド群と 第 2のサブコマンド群との間で比較する個数比較機能と、 (a3)個数比較機能で比較 された結果に基づいて、第 1の記憶領域と第 2の記憶領域とのいずれかから、個数の 少な 、方を分割対象の記憶領域として選択する記憶領域選択機能と、 (a4)サブコ マンドによってアクセスされる部分記憶領域のサイズを、サブコマンド群に属するサブ コマンド間で比較するサイズ比較機能と、 (a5)サイズ比較機能で比較された結果に 基づいて、分割対象の記憶領域を構成する部分記憶領域の中から、所定のサイズ 以上の部分記憶領域を分割対象の部分記憶領域として選択する部分記憶領域選択 機能と、 (a6)分割対象の部分記憶領域を分割して得られた部分記憶領域ごとにサ ブコマンドを生成するサブコマンド生成機能と、 (a7)サブコマンド保持機能で保持さ れているサブコマンドの中から、分割対象の部分記憶領域にアクセスするサブコマン ドを、サブコマンド生成機能で生成されたサブコマンド群で置き換えるサブコマンド置 換機能と、(a8)第 1のサブコマンド群と第 2のサブコマンド群とから交互にサブコマン ドをメモリへ出力するサブコマンド出力機能とを備える。
[0029] (b)コマンド出力制御装置は、サブコマンドによってアクセスされる部分記憶領域の サイズを特定するサイズ特定機能を備え、サブコマンド出力機能は、サイズ特定機能 で特定された結果に基づ ヽて、サブコマンド保持機能で保持されて ヽるサブコマンド の中から、所定のサイズ未満の部分記憶領域にアクセスするサブコマンドを後に出 力する。
[0030] (c)コマンド出力制御装置は、(cl)サブコマンドによってアクセスされる部分記憶領 域のアドレスを、サブコマンド群に属するサブコマンド間で比較するアドレス比較機能 と、(c2)アドレス比較機能で比較された結果に基づいて、サブコマンド保持機能で保 持されているサブコマンドの中から、先に出力されたサブコマンドによってアクセスさ れた部分記憶領域のアドレス力 の遷移が小さいサブコマンドを選択するサブコマン ド選択機能とを備え、(c3)サブコマンド出力機能は、サブコマンド選択機能で選択さ れたサブコマンドを出力する。
[0031] 以上の点を踏まえて、本実施の形態におけるコマンド出力制御装置について説明 する。なお、コマンドによってアクセスされる記憶領域を分割して得られた記憶領域の フラグメントを部分記憶領域と呼称する。部分記憶領域ごとに生成されたコマンドをサ ブコマンドと呼称する。サブコマンドの集まりをサブコマンド群と呼称する。また、サブ コマンドによってアクセスされる部分記憶領域を分割して得られた部分記憶領域のフ ラグメントも部分記憶領域と呼称する。コマンドによってアクセスされる記憶領域や、 サブコマンドによってアクセスされる部分記憶領域をアクセス領域と呼称する。
[0032] 先ず、本実施の形態におけるコマンド出力制御装置の構成について説明する。
[0033] 図 1は、本実施の形態におけるコマンド出力制御装置の構成を示す図である。図 1 に示されるように、コマンド出力制御装置 100は、コマンド発行部 101、コマンド保持 部 102、コマンド出力制御部 103、メモリ IZF部 104、メモリ 105、ページ境界分割部 106、サブコマンド保持部 107、属性情報保持部 108、アクセス領域分割部 109、サ ブコマンド個数比較部 110、サイズ比較部 111、サイズ判定部 112、アドレス比較部 1 13などを備える。
[0034] コマンド発行部 101は、メモリ 105にアクセスするコマンドを発行する。発行したコマ ンドをコマンド保持部 102へ出力する。
[0035] コマンド保持部 102は、コマンド発行部 101から出力されたコマンドを保持する。コ マンド出力制御部 103から出力された制御信号に応じて、保持しているコマンドをぺ ージ境界分割部 106へ出力する。ここでは、一例として、レジスタ 102a〜102c、セレ クタ 102dとから構成されているとする。そして、コマンド発行部 101から出力されたコ マンドがレジスタ 102a〜102cのいずれかに保持される。コマンド出力制御部 103か ら出力された制御信号がセレクタ 102dに入力すると、入力した制御信号に応じて、 レジスタ 102a〜102cのいずれかがセレクタ 102dによって選択される。選択されたレ ジスタに保持されているコマンドがページ境界分割部 106へ出力される。
[0036] コマンド出力制御部 103は、コマンド保持部 102を制御して、コマンド保持部 102で 保持されているコマンドをページ境界分割部 106へ出力させる。また、メモリ IZF部 1 04を制御して、サブコマンド群に属するサブコマンドをメモリ IZF部 104からメモリ 10 5へ出力させる。
[0037] 例えば、コマンド保持部 102で保持されている複数のコマンドの中に、互いに異な るバンクにアクセスする第 1のコマンドと第 2のコマンドとが存在するとする。ここで、第 1のコマンドは、第 1のバンクに属する第 1の記憶領域にアクセスするコマンドである。 第 2のコマンドは、第 2のバンクに属する第 2の記憶領域にアクセスするコマンドであ る。この場合において、コマンド出力制御部 103は、複数のコマンドの中から、第 1の コマンドと第 2のコマンドとを選択する。コマンド保持部 102を制御して、選択した第 1 のコマンドと第 2のコマンドとをページ境界分割部 106へ出力させる。このとき、第 1の コマンドが保持されているレジスタを選択させる制御信号をセレクタ 102dに出力する 。また、第 2のコマンドが保持されているレジスタを選択させる制御信号をセレクタ 10 2dに出力する。
[0038] さらに、第 1のコマンドから第 1のサブコマンド群が生成され、第 2のコマンド力も第 2 のサブコマンド群が生成されたとする。この場合において、コマンド出力制御部 103 は、メモリ IZF部 104を制御して、第 1のサブコマンド群に属するサブコマンドと、第 2 のサブコマンド群に属するサブコマンドとを交互にメモリ IZF部 104からメモリ 105へ 出力させる。これによつて、メモリ 105の第 1のバンクと第 2のバンクとが交互にァクセ スされる。
[0039] また、コマンド出力制御部 103は、サイズ判定部 112で特定された結果に基づいて 、サブコマンド保持部 107で保持されているサブコマンドの中から、所定のサイズ未 満の部分記憶領域にアクセスするサブコマンドを後に出力する。
[0040] また、コマンド出力制御部 103は、アドレス比較部 113で比較された結果に基づい て、サブコマンド保持部 107で保持されているサブコマンドの中から、先に出力され たサブコマンドによってアクセスされた部分記憶領域のアドレスからの遷移が小さい サブコマンドを選択する。メモリ IZF部 104を制御して、選択したサブコマンドをメモリ 105へ出力させる。
[0041] メモリ IZF部 104は、コマンド出力制御部 103で選択されたサブコマンドをサブコマ ンド保持部 107から取り出し、取り出したサブコマンドをメモリ 105へ出力する。
[0042] メモリ 105は、ここでは、一例として、多バンク構造の SDRAM (Synchronous Dynam ic Random Access Memory)とする。なお、メモリ 105は、コマンド出力制御装置 100 に内蔵されて 、るとしてもよ 、し、外付けされて 、るとしてもよ!/、。
[0043] ページ境界分割部 106は、コマンド保持部 102から出力されたコマンドが入力する と、入力したコマンドによってアクセスされる記憶領域をページ境界で分割する。この とき、その記憶領域を分割して得られた部分記憶領域にアクセスするサブコマンドを 生成する。そして、入力したコマンドからサブコマンド群を生成した場合は、入力した コマンドの代わりに、生成したサブコマンド群をサブコマンド保持部 107に格納する。 一方、生成しな力つた場合は、入力したコマンドをサブコマンドとしてサブコマンド保 持部 107に格納する。
[0044] サブコマンド保持部 107は、ページ境界分割部 106、アクセス領域分割部 109など で生成されたサブコマンド群などを保持する。ここでは、一例として、サブコマンド保 持部 107は、第 1のサブコマンド群と、第 2のサブコマンド群とを保持する。
[0045] 属性情報保持部 108は、サブコマンド群に属するサブコマンドの個数、各サブコマ ンドのアクセス領域のサイズなど、サブコマンド群ごとに登録されて 、る属性情報を保 持する。
[0046] アクセス領域分割部 109は、サブコマンド保持部 107で保持されているサブコマン ドの中力も分割対象のサブコマンドを選択し、選択したサブコマンドのアクセス領域を 分割する。このとき、さらに、そのサブコマンドからサブコマンド群を生成した場合は、 そのサブコマンドの代わりに、生成したサブコマンド群をサブコマンド保持部 107に格 納する。例えば、アクセス領域分割部 109は、サブコマンド個数比較部 110で比較さ れた結果に基づいて、比較対象とする二つのサブコマンド群に対して、サブコマンド の個数が異なる力否かを判定する。判定した結果、サブコマンドの個数が異なる場合 は、サイズ比較部 111で比較された結果に基づいて、サブコマンドの個数が少ない サブコマンド群の中力もアクセス領域のサイズが最大のサブコマンドを分割対象のサ ブコマンドとして選択する。選択したサブコマンドのアクセス領域が閾値以上であるか 否かを判定する。判定した結果、閾値以上である場合は、選択したサブコマンドのァ クセス領域を分割する。分割して得られた部分記憶領域ごとに、サブコマンドを生成 する。選択したサブコマンドを、生成したサブコマンド群で置き換える。生成したサブ コマンド群に関する属性情報を生成する。生成した属性情報を属性情報保持部 108 に登録する。一方、閾値未満である場合は、アクセス領域を分割しない。ここで、閾 値として、オーバヘッドがでない値とする。
[0047] サブコマンド個数比較部 110は、サブコマンド群に属するサブコマンドの個数を、比 較対象となる二つのサブコマンド群の間で比較する。具体的には、サブコマンド個数 比較部 110は、サブコマンド群に属するサブコマンドの個数を、第 1のサブコマンド群 と第 2のサブコマンド群との間で比較する。比較した結果に基づいて、第 1の記憶領 域と第 2の記憶領域との 、ずれかから、個数の少な 、方を分割対象の記憶領域とし て選択する。
[0048] サイズ比較部 111は、サブコマンドによってアクセスされるアクセス領域のサイズを、 サブコマンド群に属するサブコマンドの間で比較する。具体的には、サイズ比較部 11
1は、サブコマンドのアクセス領域のサイズを、サブコマンド群に属するサブコマンドの 間で比較する。比較した結果に基づいて、分割対象の記憶領域を構成する部分記 憶領域の中から、所定のサイズ以上の部分記憶領域を分割対象の部分記憶領域と して選択する。
[0049] サイズ判定部 112は、サブコマンドによってアクセスされるアクセス領域のサイズを 特定する。例えば、出力対象のサブコマンド群に対して、サブコマンド群に属するサ ブコマンドのアクセス領域のサイズを総当りで比較して、アクセス領域のサイズが最大 のサブコマンドを特定したり、所定のサイズ未満のサブコマンドを特定したりする。
[0050] アドレス比較部 113は、サブコマンドによってアクセスされるアクセス領域のアドレス を、サブコマンド群に属するサブコマンドの間で比較する。例えば、サイズ判定部 11 2で該当すると判定された複数のサブコマンドの間で、ロウアドレスとカラムアドレスと を比較する。該当する複数のサブコマンドの中から、メモリ 105のアドレスバスの遷移 ビット数が小さ 、サブコマンドを選択する。
[0051] 次に、本実施の形態におけるページ境界分割部 106によってアクセス領域が分割 される過程にっ 、て説明する。
[0052] 図 2は、本実施の形態におけるページ境界分割部 106によってアクセス領域が分 割される過程を示す図である。図 2に示されるように、ページ境界分割部 106は、例 えば、コマンド 121のようにページを跨ぐコマンド Aが入力されると、コマンド Aによつ てアクセスされる記憶領域 (以下、アクセス領域 Aと呼称する。)をページ境界で分割 する。
[0053] ここで、図中にお 、て、アクセス領域 Aは、ハッチングされずに太枠で囲まれた矩形 領域であり、ベース Mを基準として、オフセット X (3)から PIXEL (4)分、オフセット Y( 3)力 LINE (4)分で示される記憶領域である。
[0054] そして、ページ境界分割部 106は、アクセス領域 Aをページ境界で分割して得られ たアクセス領域 Al、アクセス領域 A2、アクセス領域 A3、アクセス領域 A4のそれぞれ に対して、個別にサブコマンドを生成する。ここでは、サブコマンド群 122に示される ように、アクセス領域 A1にアクセスするサブコマンド Al、アクセス領域 A2にアクセス するサブコマンド A2、アクセス領域 A3にアクセスするサブコマンド A3、アクセス領域 A4にアクセスするサブコマンド A4が生成される。
[0055] ここで、図中において、アクセス領域 A1は、アクセス領域 Aの左上の部分に該当す る矩形領域であり、ロウ(0)、カラム(15)で示される記憶領域である。アクセス領域 A 2は、アクセス領域 Aの右上の部分に該当する矩形領域であり、ロウ(1)、カラム(12 , 13, 14)で示される記憶領域である。アクセス領域 A3は、アクセス領域 Aの左下の 部分に該当する矩形領域であり、ロウ(3)、カラム(3, 7, 11)で示される記憶領域で ある。アクセス領域 A4は、アクセス領域 Aの右下の部分に該当する矩形領域であり、 ロウ(4)、カラム(0, 1, 2, 4, 5, 6, 8, 9, 10)で示される記憶領域である。
[0056] 次に、本実施の形態におけるページ境界分割部 106とアクセス領域分割部 109と によって分割されたアクセス領域について説明する。 [0057] 図 3は、本実施の形態におけるページ境界分割部 106とアクセス領域分割部 109と によって分割されたアクセス領域の概要を示す図である。図 3に示されるように、ぺー ジ境界分割部 106は、例えば、コマンド 131aのようにページを跨ぐコマンド Aが入力 されると、コマンド Aによってアクセスされる記憶領域 (以下、アクセス領域 Aと呼称す る。)をページ境界で分割する。
[0058] ここで、図中にお!/、て、アクセス領域 Aは、左側に示されて!/、るバンク(0)の記憶領 域において太枠で囲まれた矩形領域であり、ベース Nを基準として、オフセット X (4) 力 PIXEL (3)分、オフセット Y (3)力 LINE (3)分で示されるバンク(0)の記憶領 域である。
[0059] そして、ページ境界分割部 106は、アクセス領域 Aをページ境界で分割して得られ たアクセス領域 Al、アクセス領域 A2のそれぞれに対して、個別にサブコマンドを生 成する。ここでは、サブコマンド群 132aに示されるように、アクセス領域 A1にアクセス するサブコマンド Al、アクセス領域 A2にアクセスするサブコマンド A2が生成される。
[0060] ここで、図中において、アクセス領域 A1は、アクセス領域 Aの上側の部分に該当す る矩形領域であり、ロウ(1)、カラム(12, 13, 14)で示されるバンク (0)の記憶領域で ある。アクセス領域 A2は、アクセス領域 Aの下側の部分に該当する矩形領域であり、 ロウ (4)、カラム (0, 1, 2, 4, 5, 6)で示されるバンク(0)の記憶領域である。
[0061] これとは、別に、ページ境界分割部 106は、例えば、コマンド 131bのようにページ を跨ぐコマンド Bが入力されると、コマンド Bによってアクセスされる記憶領域 (以下、 アクセス領域 Bと呼称する。)をページ境界で分割する。
[0062] ここで、図中において、アクセス領域 Bは、右側に示されているバンク(1)の記憶領 域において太枠で囲まれた矩形領域であり、ベース Mを基準として、オフセット X (3) 力も PIXEL (8)分、オフセット Y (4)力も LINE (1)分で示されるバンク(1)の記憶領 域である。
[0063] そして、ページ境界分割部 106は、アクセス領域 Bをページ境界で分割して得られ たアクセス領域 Bl、アクセス領域 B2、アクセス領域 B3のそれぞれに対して、個別に サブコマンドを生成する。ここでは、サブコマンド群 132bに示されるように、アクセス 領域 B1にアクセスするサブコマンド Bl、アクセス領域 B2にアクセスするサブコマンド B2、アクセス領域 B3にアクセスするサブコマンド B3が生成される。
[0064] ここで、図中において、アクセス領域 B1は、アクセス領域 Bの左側の部分に該当す る矩形領域であり、ロウ(3)、カラム(3)で示されるバンク(1)の記憶領域である。ァク セス領域 B2は、アクセス領域 Bの中央の部分に該当する矩形領域であり、ロウ (4)、 カラム (0, 1, 2, 3)で示されるバンク(1)の記憶領域である。アクセス領域 B3は、ァク セス領域 Bの右側の部分に該当する矩形領域であり、ロウ(5)、カラム (0, 1, 2)で示 されるバンク(1)の記憶領域である。
[0065] ここで、サブコマンド群 132aとサブコマンド群 132bとから交互にサブコマンドが出 力されると、サブコマンド群 132aの個数(2)とサブコマンド群 132bの個数(3)とが同 じでないため、オーバヘッドが隠蔽されずに表れる場合がある。
[0066] そこで、オーバヘッドを隠蔽するために、サブコマンドの個数を合わせる必要がある 。なお、サブコマンドの個数を合わせるにあたって、サブコマンド群 132aの個数(2) とサブコマンド群 132bの個数(3)とを比較して、個数の少ないサブコマンド群 132a に対して、アクセス領域を分割してサブコマンドを増やす。
[0067] 具体的には、アクセス領域分割部 109は、サブコマンド群 132aの中から、アクセス 領域が最大のサブコマンドを選択する。ここでは、アクセス領域 A2が最大となるので 、サブコマンド A2が選択される。そして、アクセス領域 A2を分割し、アクセス領域 A2 を分割して得られたアクセス領域 A21、アクセス領域 A22のそれぞれに対して、個別 にサブコマンドを生成する。ここでは、サブコマンド群 133aに示されるように、ァクセ ス領域 A21にアクセスするサブコマンド A21、アクセス領域 A22にアクセスするサブ コマンド A22が生成される。
[0068] ここで、図中において、アクセス領域 A21は、アクセス領域 A2の上側の部分に該 当する矩形領域であり、ロウ (4)、カラム (0, 1, 2)で示されるバンク (0)の記憶領域 である。アクセス領域 A22は、アクセス領域 A2の下側の部分に該当する矩形領域で あり、ロウ (4)、カラム (4, 5, 6)で示されるバンク (0)の記憶領域である。
[0069] このようにして生成されたサブコマンド群 133aの個数とサブコマンド群 132bの個数 とが同じであるため、サブコマンド群 133aとサブコマンド群 132bとから交互にサブコ マンドを出力しても、オーバヘッドが表れずに隠蔽される。 [0070] なお、個数を合わせるにあたって、アクセス領域を分割しても、分割して得られたァ クセス領域のサイズが所定のサイズ未満になると、オーバヘッドが隠蔽されずに表れ る。このため、アクセス領域を分割するときは、所定のサイズ以上のアクセス領域を対 象とする。
[0071] 次に、本実施の形態におけるページ境界分割部 106とアクセス領域分割部 109と によって生成された属性情報について説明する。ここでは、図 3に示される場合を例 にする。
[0072] 図 4は、本実施の形態におけるページ境界分割部 106とアクセス領域分割部 109と によって生成された属性情報の概要を示す図である。図 4に示されるように、ページ 境界分割部 106は、例えば、コマンド 131aのようにページを跨ぐコマンド Aが入力さ れると、アクセス領域 Aをページ境界で分割する。このとき、 "コマンド A (2)、サブコマ ンド A1 (3)、サブコマンド A2 (6) "を含む属性情報 141aを生成し、生成した属性情 報 141 aを属性情報保持部 108に登録する。
[0073] ここで、 "コマンド A (2) "とは、コマンド Aに基づいて生成されたサブコマンドの個数 力 S 2であることが示される。また、 "サブコマンド A1 (3) "とは、アクセス領域 A1のサイ ズが 3であることが示される。 "サブコマンド A2 (6) "とは、アクセス領域 A2のサイズが 6であることが示される。
[0074] また、ページ境界分割部 106は、例えば、コマンド 131bのようにページを跨ぐコマ ンド Bが入力されると、アクセス領域 Bをページ境界で分割する。このとき、 "コマンド B (3)、サブコマンド Bl (1)、サブコマンド B2 (4)、サブコマンド B3 (3) "を含む属性情 報 141bを生成し、生成した属性情報 141bを属性情報保持部 108に登録する。
[0075] ここで、 "コマンド B (3) "とは、コマンド Bに基づいて生成されたサブコマンドの個数 力 S3であることが示される。また、 "サブコマンド Bl (l) "とは、アクセス領域 B1のサイズ 力 であることが示される。 "サブコマンド B2 (4) "とは、アクセス領域 B2のサイズが 4 であることが示される。 "サブコマンド B3 (3) "とは、アクセス領域 B3のサイズが 3であ ることが示される。
[0076] さらに、アクセス領域分割部 109は、サブコマンドの個数を合わせるにあたって、サ ブコマンド群 132aの中から、アクセス領域が最大のサブコマンドを選択する。ここで は、アクセス領域 A2が最大となるので、サブコマンド A2が選択される。そして、ァクセ ス領域 A2を分割し、アクセス領域 A2を分割して得られたアクセス領域 A21、ァクセ ス領域 A22のそれぞれに対して、個別にサブコマンドを生成する。ここでは、サブコ マンド群 134a〖こ示されるよう〖こ、アクセス領域 A21にアクセスするサブコマンド A21、 アクセス領域 A22にアクセスするサブコマンド A22が生成される。このとき、 "サブコマ ンド A2 (2)、サブコマンド A21 (3)、サブコマンド A22 (3) "を含む属性情報 142aを 生成し、生成した属性情報 142aを属性情報保持部 108に登録する。
[0077] ここで、 "サブコマンド A2 (2) "とは、サブコマンド A2に基づいて生成されたサブコ マンドの個数が 2であることが示される。また、 "サブコマンド A21 (3) "とは、アクセス 領域 A21のサイズが 3であることが示される。 "サブコマンド A22 (3) "とは、アクセス 領域 A22のサイズが 3であることが示される。
[0078] 次に、本実施の形態における属性情報保持部 108で保持される属性情報のデータ 構造について説明する。
[0079] 図 5は、本実施の形態における属性情報保持部 108で保持される属性情報のデー タ構造を示す図である。図 5に示されるように、属性情報 150には、コマンドごとに、 " コマンド(サブコマンドの個数)、サブコマンド(アクセス領域のサイズ)、 · · · "(レコード 151)が登録される。
[0080] 例えば、図 4に示される場合では、 "コマンド A (3)、サブコマンド A1 (3)、サブコマ ンド A21 (3)、サブコマンド A22 (3) " (レコード 152)、 "コマンド B (3)、サブコマンド B 1 (1)、サブコマンド B2 (4)、サブコマンド B3 (3) " (レコード 153)が登録される。
[0081] 次に、本実施の形態におけるコマンド出力制御装置 100の動作について説明する
[0082] 図 6は、本実施の形態におけるコマンド出力制御装置 100において実行されるコマ ンド出力制御処理を示す図である。図 6に示されるように、コマンド出力制御装置 10 0は、下記のコマンド出力制御処理 (S101)〜(S109)を繰り返し実行する。
[0083] (S101)コマンド出力制御部 103は、コマンド保持部 102でコマンドが保持されてい る力否かを判定する。判定した結果、コマンドが保持されている場合は(S101 : Yes) 、下記の処理 (S102)を実行する。一方、コマンドが保持されていない場合は(S 101 : No)、再度、処理 (S 101)を実行する。
[0084] (S102)コマンド出力制御部 103は、コマンド保持部 102で複数のコマンドが保持 されている力否かを判定する。判定した結果、複数のコマンドが保持されている場合 は(S 102 : Yes)、下記の処理 (S 103)を実行する。一方、複数のコマンドが保持され て ヽな 、場合は(S 102: No)、下記の処理(S 107)を実行する。
[0085] (S103)コマンド出力制御部 103は、コマンド保持部 102で保持されている複数の コマンドの中に、互 ヽに異なるバンクにアクセスするコマンドが存在するか否かを判定 する。判定した結果、存在する場合は(S 103 : Yes)、下記の処理(S 104)〜(S 106 )を実行する。一方、存在しない場合は(S 103 : No)、下記の処理 (S 108)を実行す る。このとき、レジスタ 102a〜102cに保持されているコマンドの中から、異なるバンク にアクセスするコマンドを見つけ出すに当たって、総当りで探索するとしてもよいし、 発行された順番を保持してお!ヽて、発行された順に探索するとしてもよ!ヽ。
[0086] ここでは、一例として、第 1のコマンドと第 2のコマンドとがコマンド発行部 101から順 に発行されたとする。
[0087] (S104)コマンド出力制御部 103は、複数のコマンドの中から、第 1のコマンドを選 択する。コマンド保持部 102を制御して、選択した第 1のコマンドを出力させる。そし て、出力させた第 1のコマンドに対して、コマンド変換処理 (例えば、図 7参照。)を実 行させる。このとき、第 1のコマンドを保持しているレジスタが選択される制御信号をセ レクタ 102dに出力する。
[0088] ここでは、一例として、コマンド変換処理が実行されて、第 1のコマンド力 第 1のサ ブコマンド群が生成されたとする。
[0089] (S105)コマンド出力制御部 103は、複数のコマンドの中から、第 2のコマンドを選 択する。コマンド保持部 102を制御して、選択した第 2のコマンドを出力させる。そし て、出力させた第 2のコマンドに対して、コマンド変換処理 (例えば、図 7参照。)を実 行させる。このとき、第 2のコマンドを保持しているレジスタが選択される制御信号をセ レクタ 102dに出力する。
[0090] ここでは、一例として、コマンド変換処理が実行されて、第 2のコマンド力 第 2のサ ブコマンド群が生成されるとする。 [0091] (S106)コマンド出力制御部 103は、メモリ iZF部 104を制御して、第 1のサブコマ ンド群と第 2のサブコマンド群とに対して、交互にサブコマンド出力処理 (例えば、図 1 0参照。)を実行させる。これに伴い、第 1のサブコマンド群に属するサブコマンドと、 第 2のサブコマンド群に属するサブコマンドとが交互にメモリ I/F部 104力もメモリ 10 5に出力される。これに伴ってメモリ 105の第 1のバンクと第 2のバンクとが交互にァク セスされる。そして、再度、上記の処理 (S101)を実行する。
[0092] (S107)コマンド出力制御部 103は、コマンド保持部 102を制御して、コマンド保持 部 102で保持されているコマンドを出力させる。そして、出力させたコマンドに対して 、コマンド変換処理 (例えば、図 7参照。)を実行させる。このとき、コマンドが保持され ているレジスタを選択させる制御信号をセレクタ 102dに出力する。そして、下記の処 理 (S 109)を実行する。
[0093] (S108)コマンド出力制御部 103は、コマンド保持部 102で保持されている複数の コマンドの中から、コマンドを選択する。コマンド保持部 102を制御して、選択したコ マンドを出力させる。そして、出力させたコマンドに対して、コマンド変換処理 (例えば 、図 7参照。)を実行させる。このとき、発行された順に選択するとしてもよいし、先に 出力させたコマンドの種類を保持しておいて、先に出力されたコマンドと同種のコマ ンドを優先して選択するとしてもよい。そして、下記の処理 (S 109)を実行する。
[0094] (S109)コマンド出力制御部 103は、メモリ iZF部 104を制御して、サブコマンド群 に対して、サブコマンド出力処理を実行させる。これに伴い、サブコマンド群に属する サブコマンド力 Sメモリ iZF部 104からメモリ 105に出力される。そして、再度、上記の 処理 (S 101)を実行する。
[0095] 図 7は、本実施の形態におけるコマンド出力制御装置 100において実行されるコマ ンド変換処理を示す図である。図 7に示されるように、コマンド出力制御装置 100は、 コマンド保持部 102からコマンドが出力されると、下記のコマンド変換処理 (S111) , ( S 112)を実行し、コマンド変換処理を終了する。
[0096] (S111)ページ境界分割部 106は、コマンド保持部 102から出力されたコマンドが 入力すると、入力したコマンドに対して、ページ境界分割処理 (例えば、図 8参照。 ) を実行する。このとき、入力したコマンドからサブコマンド群が生成された場合は、入 力したコマンドの代わりに、生成されたサブコマンド群をサブコマンド保持部 107に格 納する。一方、生成されない場合は、入力したコマンドをサブコマンドとしてサブコマ ンド保持部 107に格納する。
[0097] (S112)アクセス領域分割部 109は、所定のタイミングで、サブコマンド保持部 107 で保持されているサブコマンドに対して、アクセス領域分割処理 (例えば、図 9参照。 )を実行する。このとき、さらに、サブコマンドからサブコマンド群が生成された場合は 、そのサブコマンドの代わりに、生成されたサブコマンド群をサブコマンド保持部 107 に格納する。
[0098] 図 8は、本実施の形態 1におけるコマンド出力制御装置 100において実行されるぺ ージ境界分割処理を示す図である。図 8に示されるように、コマンド出力制御装置 10 0は、下記のページ境界分割処理 (S 121)〜(S127)を実行する。
[0099] (S121)ページ境界分割部 106は、入力したコマンドのアクセス領域がページを跨 ぐ力否かを判定する。判定した結果、ページを跨ぐ場合は(S121 : Yes)、下記の処 理 122)〜(3126)を実行し、ページ境界分割処理を終了する。一方、ページを 跨がない場合は(S 121 : No)、下記の処理 (S 127)を実行し、ページ境界分割処理 を終了する。
[0100] (S122)ページ境界分割部 106は、入力したコマンドのアクセス領域をページ境界 で分割する。このとき、アクセス領域が複数の領域 (以下、分割後のアクセス領域と呼 称する。 )に分割される。
[0101] (S123)ページ境界分割部 106は、分割後のアクセス領域ごとに、サブコマンドを 生成する。このとき、分割後のアクセス領域にアクセスするサブコマンドが生成される
[0102] (S124)ページ境界分割部 106は、生成したサブコマンド群をサブコマンド保持部 107に格納する。
[0103] (S125)ページ境界分割部 106は、生成したサブコマンド群に関する属性情報を 生成する。このとき、サブコマンド群に属するサブコマンドの個数と、各サブコマンドの アクセス領域のサイズとを含む属性情報が生成される。
[0104] (S126)ページ境界分割部 106は、生成した属性情報を属性情報保持部 108に 登録する。
[0105] (S127)ページ境界分割部 106は、入力したコマンドをサブコマンドとしてサブコマ ンド保持部 107に格納する。
[0106] 図 9は、本実施の形態におけるコマンド出力制御装置 100において実行されるァク セス領域分割処理を示す図である。図 9に示されるように、コマンド出力制御装置 10 0は、下記のアクセス領域分割処理 (S 131)〜(S138)を実行する。
[0107] (S131)アクセス領域分割部 109は、サブコマンド個数比較部 110で比較された結 果に基づいて、比較対象とする二つのサブコマンド群に対して、サブコマンドの個数 が異なる力否かを判定する。判定した結果、サブコマンドの個数が異なる場合は(S1 31 :Yes)、下記の処理(S132) , (S 133)を実行する。一方、サブコマンドの個数が 同じ場合は(S131 :No)、アクセス領域分割処理を終了する。
[0108] このとき、サブコマンド個数比較部 110は、比較対象となる二つのサブコマンド群に 対して、サブコマンド群に属するサブコマンドの個数に関する個数情報を、属性情報 保持部 108で保持されている属性情報カゝらそれぞれ取得する。それぞれ取得した二 つの個数情報を比較し、比較した結果をアクセス領域分割部 109に出力する。
[0109] (S132)アクセス領域分割部 109は、サイズ比較部 111で比較された結果に基づ V、て、サブコマンドの個数が少な!/、サブコマンド群からアクセス領域のサイズが最大 のサブコマンドを選択する。
[0110] (S133)アクセス領域分割部 109は、選択したサブコマンドのアクセス領域が閾値 以上であるか否かを判定する。判定した結果、閾値以上である場合は(S 133 : Yes) 、下記の処理 (SI 34)〜(SI 38)を実行する。一方、閾値未満である場合は(S 133 : No)、アクセス領域分割処理を終了する。
[0111] (S134)アクセス領域分割部 109は、選択したサブコマンドのアクセス領域を分割 する。
[0112] (S135)アクセス領域分割部 109は、分割後のアクセス領域ごとに、サブコマンドを 生成する。
[0113] (S136)アクセス領域分割部 109は、選択したサブコマンドを、生成したサブコマン ド群で置換する。 [0114] (S137)アクセス領域分割部 109は、生成したサブコマンド群に関する属性情報を 生成する。
[0115] (S138)アクセス領域分割部 109は、生成した属性情報を属性情報保持部 108に 登録する。
[0116] 図 10は、本実施の形態におけるコマンド出力制御装置 100において実行されるサ ブコマンド出力処理を示す図である。図 10に示されるように、コマンド出力制御装置 100は、下記のサブコマンド出力処理(S141)〜(S145)を実行する。
[0117] (S141)コマンド出力制御部 103は、サイズ判定部 112で判定された結果に基づ いて、出力対象とするサブコマンド群の中から、アクセス領域のサイズが最大のサブ コマンドを選択する。このとき、下記の処理 (S 142)をサイズ判定部 112に実行させる
[0118] そして、コマンド出力制御部 103は、メモリ IZF部 104を制御して、下記の処理 (S1 45)を実行させて、選択したサブコマンドをメモリ 105に出力させる。
[0119] (S142)サイズ判定部 112は、出力対象のサブコマンド群に対して、サブコマンド群 に属するサブコマンドのアクセス領域のサイズを総当りで比較して、アクセス領域のサ ィズが最大のサブコマンドを特定する。このとき、アクセス領域のサイズが最大のサブ コマンドが複数ある場合は、下記の処理 (S 143) , (S 144)をアドレス比較部 113に 実行させる。一方、アクセス領域のサイズが最大のサブコマンドが一つしかない場合 は、下記の処理 (S 143) , (S 144)を実行させずに、下記の処理 (S 145)をメモリ IZ F部 104に実行させる。
[0120] (S143)アドレス比較部 113は、サイズ判定部 112で該当すると判定された複数の サブコマンドに対して、サブコマンド間で、ロウアドレスとカラムアドレスとを比較する。 そして、下記の処理 (S 144)を実行する。
[0121] (S144)アドレス比較部 113は、該当する複数のサブコマンドの中から、メモリ 105 のアドレスバスの遷移ビット数が小さいサブコマンドを選択する。そして、下記の処理
(S145)をメモリ IZF部 104に実行させる。
[0122] (S145)メモリ IZF部 104は、コマンド出力制御部 103で選択されたサブコマンドを サブコマンド保持部 107から取り出し、取り出したサブコマンドをメモリ 105に出力す る。
[0123] ここで、本実施の形態におけるコマンド出力制御装置 100からメモリ 105に出力さ れる信号のタイミングチャートを用いながら動作例について説明する。
[0124] 図 11は、本実施の形態におけるコマンド出力制御装置 100からメモリ 105に出力さ れる信号のタイミングチャートを示す図である。図 11に示されるように、ここでは、一例 として、コマンド出力制御部 103は、メモリ IZF部 104を制御して、図 3に示されるサ ブコマンド群 133aとサブコマンド群 132bとを交互に出力する場合について説明する 。なお、サブコマンド Al、サブコマンド B2、サブコマンド A21、サブコマンド B3、サブ コマンド A22、サブコマンド B1の順で、メモリ IZF部 104からメモリ 105へ出力させる
[0125] 先ず、メモリ IZF部 104は、サブコマンド A1をデコードし、バンク(0)、ロウ(1)、カラ ム(12, 13, 14)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、 メモリ IZF部 104は、期間 T1において、ロウ信号 (Lowレベル)とアドレス信号(0Z1 )とをメモリ 105へ出力し、アクセス領域のロウアドレスを、バンク(0)、ロウ(1)に設定 する。期間 T3において、カラム信号 (Lowレベル)とアドレス信号(0Z12)とをメモリ 1 05へ出力し、アクセス領域のカラムアドレスを、バンク(0)、カラム(12)に設定する。 また、ライト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。 そして、期間 T3〜T5において、データ (A, Β, C)をメモリ 105へ出力し、バンク(0) 、ロウ(1)、カラム(12)力も順にデータを書き込む。なお、期間 Τ5において、ロウ信 号 (Lowレベル)、アドレス信号(0Ζ1)、プリチャージ信号をメモリ 105へ出力する。 バンク(0)、ロウ(1)をプリチャージさせる。
[0126] 次に、メモリ IZF部 104は、サブコマンド B2をデコードし、バンク(1)、ロウ(4)、カラ ム(0, 1, 2, 3)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、メ モリ IZF部 104は、期間 T4において、ロウ信号 (Lowレベル)とアドレス信号(1Z4) とをメモリ 105へ出力し、アクセス領域のロウアドレスを、バンク(1)、ロウ(4)に設定す る。期間 T6において、カラム信号 (Lowレベル)とアドレス信号(1Z0)とをメモリ 105 へ出力し、アクセス領域のカラムアドレスを、バンク(1)、カラム (0)に設定する。また、 ライト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。そして 、期間 T6〜T9において、データ(D, E, F, G)をメモリ 105へ出力し、バンク(1)、口 ゥ (4)、カラム (0)から順にデータを書き込む。なお、期間 T7において、ロウ信号 (Lo wレベル)、アドレス信号(1Z4)、プリチャージ信号をメモリ 105へ出力する。ノ ンク( 1)、ロウ(4)をプリチャージさせる。
[0127] 次に、メモリ IZF部 104は、サブコマンド A21をデコードし、バンク(0)、ロウ(4)、力 ラム (0, 1, 2)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、メ モリ IZF部 104は、期間 T8において、ロウ信号 (Lowレベル)とアドレス信号(0Z4) とをメモリ 105へ出力し、アクセス領域のロウアドレスを、バンク(0)、ロウ(4)に設定す る。期間 T10において、カラム信号 (Lowレベル)とアドレス信号(0Z0)とをメモリ 10 5へ出力し、アクセス領域のカラムアドレスを、バンク(0)、カラム (0)に設定する。また 、ライト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。そし て、期間 T10〜T12において、データ(Η, I, J)をメモリ 105へ出力し、バンク(0)、口 ゥ (4)、カラム (0)から順にデータを書き込む。なお、期間 T12において、ロウ信号 (L owレベル)、アドレス信号(0Z4)、プリチャージ信号をメモリ 105へ出力する。バンク (0)、ロウ(4)をプリチャージさせる。
[0128] 次に、メモリ IZF部 104は、サブコマンド B3をデコードし、バンク(1)、ロウ(5)、カラ ム(0, 1, 2)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、メモリ IZF部 104は、期間 T11において、ロウ信号 (Lowレベル)とアドレス信号(1Z5)と をメモリ 105へ出力し、アクセス領域のロウアドレスを、バンク(1)、ロウ(5)に設定する 。期間 T13において、カラム信号 (Lowレベル)とアドレス信号(1Z0)とをメモリ 105 へ出力し、アクセス領域のカラムアドレスを、バンク(1)、カラム (0)に設定する。また、 ライト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。そして 、期間 T13〜T15において、データ(K, L, Μ)をメモリ 105へ出力し、バンク(1)、口 ゥ(5)、カラム (0)から順にデータを書き込む。なお、期間 T15において、ロウ信号 (L owレベル)、アドレス信号(1Ζ5)、プリチャージをメモリ 105へ出力する。バンク(1) 、ロウ(5)をプリチャージさせる。
[0129] 次に、メモリ IZF部 104は、サブコマンド A22をデコードし、バンク(0)、ロウ(4)、力 ラム (4, 5, 6)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、メ モリ IZF部 104は、期間 T14において、ロウ信号 (Lowレベル)とアドレス信号(0Z4 )とをメモリ 105へ出力し、アクセス領域のロウアドレスを、バンク(0)、ロウ(4)に設定 する。期間 T16において、カラム信号 (Lowレベル)とアドレス信号(0Z4)とをメモリ 1 05へ出力し、アクセス領域のカラムアドレスを、バンク(0)、カラム (4)に設定する。ま た、ライト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。そ して、期間 T16〜T18において、データ(Ν, Ο, Ρ)をメモリ 105へ出力し、バンク(0) 、ロウ (4)、カラム (4)から順にデータを書き込む。なお、期間 T18において、ロウ信 号(Lowレベル)、アドレス信号(0Ζ4)、プリチャージをメモリ 105へ出力する。バンク (0)、ロウ(4)をプリチャージさせる。
[0130] 次に、メモリ IZF部 104は、サブコマンド B1をデコードし、バンク(1)、ロウ(3)、カラ ム(3)にデータを書き込む制御信号群をメモリ 105へ出力する。このとき、メモリ IZF 部 104は、期間 T17において、ロウ信号 (Lowレベル)とアドレス信号(1Z3)とをメモ リ 105へ出力し、アクセス領域のロウアドレスを、バンク(1)、ロウ(3)に設定する。期 間 T19にお!/、て、カラム信号 (Lowレベル)とアドレス信号( 1Z3)とをメモリ 105へ出 力し、アクセス領域のカラムアドレスを、バンク(1)、カラム(3)に設定する。また、ライ ト信号 (Lowレベル)をメモリ 105へ出力し、データの書き込みを開始する。そして、期 間 T19において、データ (Q)をメモリ 105へ出力し、バンク(1)、ロウ(3)、カラム(3) にデータを書き込む。なお、期間 T18において、ロウ信号 (Lowレベル)、アドレス信 号 (0Z4)、プリチャージをメモリ 105へ出力する。バンク(0)、ロウ(4)をプリチャージ させる。
[0131] ここで、従来のコマンド出力制御装置 100によるタイミングチャートと比べながら、本 実施の形態におけるコマンド出力制御装置 100の利点について説明する。
[0132] 図 12〜図 14は、本実施の形態におけるコマンド出力制御装置 100の比較対象と する従来の形態におけるコマンド出力制御装置 100からメモリ 105に出力される信号 のタイミングチャートを示す図である。
[0133] 例えば、同じバンクの異なるロウアドレスにアクセスする場合において、従来のコマ ンド出力制御装置では、期間 Τ9〜Τ12において、異なるバンクに対してアクセスが なければ、オーバヘッドが隠蔽されずに表れる (例えば、図 12参照。 ) 0また、期間 Τ 9〜T10において、異なるバンクに対してアクセスしても、期間 Τ11〜Τ12において、 アクセスがなければ、オーバヘッドが隠蔽されずに表れる(例えば、図 13参照。 )0な お、期間 Τ9〜Τ12において、異なるバンクに対してアクセスがあれば、オーバヘッド が隠蔽されて表れない (例えば、図 14参照。 )0
[0134] これは、同じバンクの異なるロウアドレスにアクセスするときは、プリチャージをした後 でなければ、同じバンクの異なるロウにアクセスすることができないためである。
[0135] これに対して、本実施の形態におけるコマンド出力制御装置 100によれば、ァクセ ス領域を分割してアクセスすることができるので、オーバヘッドが入る期間に、異なる バンクに対するアクセスを挿入してオーバヘッドを隠蔽することができる。
[0136] 以上、本実施の形態におけるコマンド出力制御装置 100によれば、複数のロウアド レスを含むコマンドを処理することができ、メモリ上にマッピングされたデータを矩形単 位でアクセスする場合においても、効率よくアクセスすることができる。さら〖こ、コマン ドによってアクセスされる領域を複数の部分領域に分割するにあたって、閾値未満の アクセス領域を分割しないので、オーバヘッドを隠蔽することができないほど、部分領 域のサイズが小さくなることを抑制することができる。また、部分領域のサイズが小さい コマンドが生成されてオーバヘッドが途中で入ることを防ぐことができる。さらに、ァク セス効率を下げることなぐアドレスバスの消費電力を下げることができる。
[0137] (実施の形態 2)
次に、本発明に係わる実施の形態 2について図面を参照しながら説明する。
[0138] 本実施の形態におけるコマンド出力制御装置は、下記 (d)〜 (g)に示される特徴を 備える。
[0139] (d)コマンド出力制御装置は、さらに、サブコマンド保持機能で保持されているサブ コマンドの中から、他種のサブコマンドと依存関係のない同種のサブコマンドを種別 するサブコマンド種別機能を備え、サブコマンド出力機能は、コマンド種別機能で種 別された同種のサブコマンドを連続して出力する。
[0140] (e)コマンド出力制御装置は、さらに、サブコマンド保持機能で保持されているサブ コマンドの中から、同一の部分記憶領域にアクセスするライト'サブコマンド群を検出 するライト'サブコマンド依存関係検出機能を備え、サブコマンド出力機能は、ライト' サブコマンド依存関係検出機能で検出された結果に基づいて、ライト ·サブコマンド 群のうち、出力順番が先のライト'サブコマンドを廃棄し、出力順番が後のライト'サブ コマンドを出力する。
[0141] (f)コマンド出力制御装置は、さらに、サブコマンド保持機能で保持されているサブ コマンドの中から、同一の部分記憶領域にアクセスするリード'サブコマンド群を検出 するリード'サブコマンド依存関係検出機能を備え、サブコマンド出力機能は、リード' サブコマンド依存関係検出機能で検出された結果に基づいて、リード ·サブコマンド 群のうち、出力順番が先のリード'サブコマンドを出力し、出力順番が後のリード'サブ コマンドを廃棄する。
[0142] (g)コマンド出力制御装置は、さらに、メモリから読み出されたデータを一時的に保 持するノ ッファ 215を備え、サブコマンド出力機能は、出力順番が先のリード'サブコ マンドを出力したときに、メモリから読み出したデータをバッファに一時的に保持して おき、出力順番が後のリード'サブコマンドを出力するときに、ノ ッファカもデータを読 み出す。
[0143] 以上の点を踏まえて本実施の形態におけるコマンド出力制御装置について説明す る。なお、実施の形態 1における構成要素と同一の構成要素については、同一の参 照符号を付して説明を省略する。また、部分記憶領域にデータを書き込むサブコマ ンドをライト'サブコマンドとする。部分記憶領域力もデータを読み出すサブコマンドを リード ·サブコマンドとする。
[0144] 先ず、本実施の形態におけるコマンド出力制御装置の構成について説明する。
[0145] 図 15は、本実施の形態におけるコマンド出力制御装置の構成を示す図である。図 15に示されるように、コマンド出力制御装置 200は、実施の形態 1におけるコマンド 出力制御装置 100と比べて、下記(1)〜(8)の点が異なる。
[0146] (1)コマンド出力制御部 103の代わりに、コマンド出力制御部 203を備える。
[0147] 例えば、リード'サブコマンド依存関係検出部 214で検出された結果、同一のァクセ ス領域にアクセスするリード'サブコマンド群がサブコマンド保持部 107で保持されて いるとする。この場合において、コマンド出力制御部 203は、メモリ IZF部 204を制御 して、そのリード'サブコマンド群のうち、出力順番が先のサブコマンドを出力させ、出 力順番が後のサブコマンドを廃棄させる。このとき、出力順番が先のサブコマンドを出 力させたときに、メモリ 105から読み出したデータをバッファ 215に一時的に保持して おき、出力順番が後のサブコマンドを出力させるときに、ノ ッファ 215からデータを読 み出す。
[0148] また、ライト'サブコマンド依存関係検出部 213で検出された結果、同一のアクセス 領域にアクセスするライト'サブコマンド群がサブコマンド保持部 107で保持されてい るとする。この場合において、コマンド出力制御部 203は、メモリ IZF部 204を制御し て、そのライト'サブコマンド群のうち、出力順番が先のサブコマンドを廃棄させ、出力 順番が後のサブコマンドを出力させる。
[0149] さらに、コマンド出力制御部 203は、メモリ IZF部 204を制御して、リード Zライト属 性判断部 212で種別された同種のサブコマンドを連続して出力させる。
[0150] (2)メモリ IZF部 104の代わりに、メモリ IZF部 204を備える。
[0151] メモリ IZF部 204は、コマンド出力制御部 203から入力される制御信号に応じて、 サブコマンド保持部 107で保持されているリード'サブコマンド群のうち、出力順番が 先のリード ·サブコマンドを出力し、出力順番が後のリード ·サブコマンドを廃棄する。 このとき、出力順番が先のリード'サブコマンドを出力するときに、メモリ 105から読み 出したデータをバッファ 215に一時的に保持しておき、出力順番が後のリード'サブコ マンドを出力するときに、ノ ッファ 215からデータを読み出す。
[0152] また、メモリ IZF部 204は、コマンド出力制御部 203から出力される制御信号に応じ て、ライト'サブコマンド群のうち、出力順番が先のライト'サブコマンドを廃棄し、出力 順番が後のライト'サブコマンドを出力する。
[0153] (3)属性情報保持部 108の代わりに、属性情報保持部 208を備える。
[0154] 属性情報保持部 208は、実施の形態 1における属性情報の内容に加えて、ここで は、一例として、下記 (a) , (b)に示される内容も含む属性情報を保持する。
[0155] (a) "コマンド (アクセス領域)、サブコマンド (アクセス領域) {重複フラグ }、サブコマ ンド (アクセス領域) {重複フラグ }、 · · · "のように、コマンドから生成されたサブコマンド 群をコマンドごとに対応付けたレコードが登録されている。
[0156] (b)サブコマンドごとに、重複フラグを設定することができる。なお、重複フラグの初 期値は 0とする。
[0157] (4)新たにリード Zライト属性判断部 212を備える。
[0158] リード Zライト属性判断部 212は、サブコマンド保持部 107で保持されているサブコ マンドの中から、他種のサブコマンドと依存関係のない同種のサブコマンドを種別す る。
[0159] (5)新たにライト'サブコマンド依存関係検出部 213を備える。
[0160] ライト'サブコマンド依存関係検出部 213は、サブコマンド保持部 107で保持されて いるサブコマンドの中から、同一のアクセス領域にアクセスするライト'サブコマンド群 を検出する。
[0161] (6)新たにリード'サブコマンド依存関係検出部 214を備える。
[0162] リード'サブコマンド依存関係検出部 214は、サブコマンド保持部 107で保持されて いるサブコマンドの中から、同一のアクセス領域にアクセスするリード'サブコマンド群 を検出する。
[0163] (7)新たにバッファ 215を備える。
[0164] ノッファ 215は、メモリ 105とメモリ IZF部 204との間に設けられており、メモリ 105力 ら読み出されたデータを一時的に保持する。
[0165] (8)サイズ判定部 112、アドレス比較部 113を備えない。
[0166] 次に、本実施の形態におけるコマンド出力制御装置 200によって出力順が変更さ れる過程につ!、て説明する。
[0167] 図 16A、図 16Bは、本実施の形態におけるコマンド出力制御装置 200によって出 力順が変更される概要例を示す図である。図 16Aに示されるように、リード [1]、リー ド [2]、ライト [1]、リード [3]、ライト [2]、ライト [3]の順で、コマンド群 221aがコマンド 発行部 101から発行されたとする。ここで、ライト [1]のアクセス領域とリード [3]のァク セス領域とが重ならな 、として、ライト [ 1]とリード [3]との間に依存関係がな 、とする。 そして、コマンド群 221aがコマンド発行時の順番でメモリ 105へ出力されると、リード [ 2]とライト [1]との間、ライト [1]とリード [3]との間、リード [3]とライト [2]との間のそれ ぞれにオーバヘッドが入る。
[0168] そこで、コマンド出力制御部 203は、リード Zライト属性判断部 212で判断された結 果に基づいて、コマンド群 221aのライト [1]とリード [3]との順番を入れ替える。そして 、順番を入れ替えたコマンド群 221a、すなわち、コマンド群 222aがコマンド出力時の 順番でメモリ 105へ出力されるとする。この場合において、リード [1]、リード [2]、リー ド [3]、ライト [1]、ライト [2]、ライト [3]の順に出力される。このとき、リード [3]とライト[ 1]との間にオーバヘッドが入る。
[0169] この例から、入れ替えを行わずに、コマンド発行時の順番でメモリ 105へ出力すれ ば、オーバヘッドが入る機会が 4回になる。一方、入れ替えを行い、コマンド出力時の 順番でメモリ 105へ出力すれば、オーバヘッドが入る機会が 1回になる。すなわち、 入れ替えを行うことによって、オーバヘッドが入る機会が 3回も削減される。
[0170] 同様に、図 16Bに示されるように、リード [4]、リード [5]、ライト [4]、リード [6]、ライ ト [5]、リード [7]の順で、コマンド群 221bがコマンド発行部 101から発行されたとす る。ここで、ライト [4]のアクセス領域とリード [6]のアクセス領域とが重なるとして、ライ ト [4]とリード [6]との間に依存関係があるとする。さらに、リード [6]のアクセス領域と ライト [5]のアクセス領域とが重ならな 、として、リード [6]とライト [5]との間に依存関 係がないとする。そして、コマンド群 221bがコマンド発行時の順番でメモリに出力さ れると、リード [5]とライト [4]との間、ライト [4]とリード [6]との間、リード [6]とライト [5] との間、ライト [5]とリード [7]との間のそれぞれにオーバヘッドが入る。
[0171] これに対して、コマンド出力制御部 203は、リード Zライト属性判断部 212で判断さ れた結果に基づいて、コマンド群 221bのリード [6]とライト [5]との順番を入れ替える 。そして、順番を入れ替えたコマンド群 221b、すなわち、コマンド群 222bがコマンド 出力時の順番でメモリ 105へ出力されるとする。この場合において、リード [4]、リード [5]、ライト [4]、ライト [5]、リード [6]、リード [7]の順に出力される。このとき、リード [ 5]とライト [4]との間、ライト [5]とリード [6]との間のそれぞれにオーバヘッドが入る。
[0172] この例から、入れ替えを行わずに、コマンド発行時の順番でメモリ 105に出力すれ ば、オーバヘッドが入る機会が 4回になる。一方、入れ替えを行い、コマンド出力時の 順番でメモリ 105へ出力すれば、オーバヘッドが入る機会が 2回になる。すなわち、 入れ替えを行うことによって、オーバヘッドが入る機会が 2回も削減される。
[0173] 次に、本実施の形態におけるライト'サブコマンド依存関係検出部 213によって依 存関係が検出される過程について説明する。
[0174] 図 17は、本実施の形態におけるライト'サブコマンド依存関係検出部 213によって 依存関係が検出される過程を示す図である。図 17に示されるように、ライト'サブコマ ンド依存関係検出部 213は、属性情報を参照し、属性情報に登録されているサブコ マンドの中から、アクセス領域が重複するサブコマンドを探す。重複するサブコマンド が見つ力ると、出力順番が先のサブコマンドの重複フラグを 1に設定して属性情報を 更新する。
[0175] 例えば、図 16Aに示されるライト [1]のコマンドをアクセス領域 A3にデータを書き込 むライト ·コマンド(以下、ライト'コマンド (A3)と呼称する。)とする。そして、アクセス領 域 A3が、アクセス領域 A31, A32, A33, A34に分割されて、ライト'サブコマンド( A31)、ライト'サブコマンド (A32)、ライト'サブコマンド (A33)、ライト'サブコマンド( A34)が生成されたとする。このとき、 "ライト'コマンド (A3)、ライト'サブコマンド (A3 1) {0}、ライト'サブコマンド (A32) {0}、ライト'サブコマンド (A33) {0}、ライト'サブ コマンド (A34) {0} "が属性情報 231に登録される。
[0176] また、図 16Aに示されるライト [3]のコマンドをアクセス領域 A4にデータを書き込む ライト ·コマンド(以下、ライト'コマンド (A4)と呼称する。)とする。そして、アクセス領域 A4が、アクセス領域 A41, A33に分割されて、ライト'サブコマンド (A41)、ライト'サ ブコマンド (A33)が生成されたとする。このとき、 "ライト'コマンド (A4)、ライト'サブコ マンド (A41) {0}、ライト'サブコマンド (A33) {0} "が属性情報 231に登録される。
[0177] そして、ライト'サブコマンド依存関係検出部 213は、重複するサブコマンドとして、 ライト,コマンド (A3)と対応付けられて 、るライト ·サブコマンド (A33)と、ライト 'コマン ド (A4)と対応付けられているライト'サブコマンド (A33)とを見つける。これに伴い、 属性情報 232に示されるように、先に出力されるライト'コマンド (A3)と対応付けられ て 、るライト ·サブコマンド (A33)の重複フラグに 1を設定する。
[0178] 次に、本実施の形態におけるリード'サブコマンド依存関係検出部 214によって依 存関係が検出される過程について説明する。
[0179] 図 18は、本実施の形態におけるリード'サブコマンド依存関係検出部 214によって 依存関係が検出される過程を示す図である。図 18に示されるように、リード'サブコマ ンド依存関係検出部 214は、属性情報を参照し、属性情報に登録されているサブコ マンドの中から、アクセス領域が重複するサブコマンドを探す。重複するサブコマンド が見つ力ると、出力順番が先のサブコマンドの重複フラグを 1に設定して属性情報を 更新する。
[0180] 例えば、図 16Aに示されるリード [1]のコマンドをアクセス領域 A1にデータを書き 込むリード ·コマンド (以下、リード'コマンド (A1)と呼称する。)とする。そして、ァクセ ス領域 A1が、アクセス領域 Al l, A12, A13, A14に分割されて、リード'サブコマ ンド (Al l)、リード'サブコマンド (A12)、リード'サブコマンド(A13)、リード'サブコ マンド (A14)が生成されたとする。このとき、 "リード'コマンド (A1)、リード'サブコマ ンド (Al l) {0}、リード'サブコマンド (A12) {0}、リード'サブコマンド (A13) {0}、リ ード ·サブコマンド (A14) {0} "が属性情報 241に登録される。
[0181] また、図 16Aに示されるリード [3]のコマンドをアクセス領域 A2にデータを書き込む リード ·コマンド (以下、リード'コマンド (A2)と呼称する。)とする。そして、アクセス領 域 A2が、アクセス領域 A21、 A13に分割されて、リード'サブコマンド (A21)、リード •サブコマンド (A13)が生成されたとする。このとき、 "リード'コマンド (A2)、リード'サ ブコマンド (A21) {0}、リード'サブコマンド (A13) {0} "が属性情報 241に登録され る。
[0182] そして、リード'サブコマンド依存関係検出部 214は、重複するサブコマンドとして、 リード ·コマンド (A1)と対応付けられているリード'サブコマンド (A13)と、リード'コマ ンド (A2)と対応付けられて 、るリード ·サブコマンド (A13)とを見つける。これに伴!ヽ 、属性情報 242に示されるように、後に出力されるリード'コマンド (A2)と対応付けら れているリード'サブコマンド (A13)の重複フラグに 1を設定する。
[0183] 次に、本実施の形態におけるコマンド出力制御装置 200の動作について説明する
[0184] 図 19、図 20は、本実施の形態におけるコマンド出力制御装置 200において実行さ れるコマンド出力制御処理を示す図である。図 19、図 20に示されるように、コマンド 出力制御装置 200は、下記のコマンド出力制御処理 (S101) , (S102) , (S201)〜 (S218)を実行する。なお、処理 (S101)については、実施の形態 1におけるコマンド 出力制御処理 (例えば、図 6参照。)に含まれる処理 (S101)と同一の動作により、こ こでは説明を省略する。
[0185] (S102)コマンド出力制御部 203は、コマンド保持部 102で複数のコマンドが保持 されている力否かを判定する。判定した結果、複数のコマンドが保持されている場合 は(S102 :Yes)、下記の処理 (S201)を実行する。一方、複数のコマンドが保持され て ヽな 、場合は(S 102: No)、下記の処理(S211)を実行する。
[0186] (S201)コマンド出力制御部 203は、コマンド保持部 102で保持されている複数の コマンドの中から、コマンドを選択する。コマンド保持部 102を制御して、選択したコ マンドを出力させる。出力させたコマンドに対して、コマンド変換処理 (例えば、図 21 参照。)を実行させる。このとき、発行された順に選択するとしてもよいし、先に出力さ せたコマンドの種類を保持しておいて、先に出力されたコマンドと同種のコマンドを優 先して選択するとしてもよい。そして、下記の処理 (S202)を実行する。
[0187] (S202)コマンド出力制御部 203は、メモリ iZF部 204を制御して、サブコマンド群 に対して、サブコマンド出力処理 (例えば、図 24参照。)を実行させる。これに伴い、 サブコマンド群に属するサブコマンド力 Sメモリ iZF部 204力もメモリ 105へ出力される 。そして、再度、処理 (S 101)を実行する。
[0188] (S211)コマンド出力制御部 203は、発行された順に、リード'コマンドとライト'コマ ンドとに出力順番を割り当てる。そして、下記の処理 (S212)を実行する。
[0189] (S212)コマンド出力制御部 203は、リード'コマンドとライト'コマンドとの全ての組 合せに対して、下記の処理 (S213)〜(S217)を実行する。そして、全ての組合せに 対して、下記の処理 (S213)〜(S217)を実行すると、下記の処理 (S218)を実行す る。
[0190] (S213)コマンド出力制御部 203は、リード'コマンドがページ境界分割部 106へ先 に出力されたカゝ否かを判定する。判定した結果、先に出力された場合は(S213 : Ye s)、下記の処理 (S214)を実行する。一方、先に出力されていない場合は(S213 :N o)、下記の処理 (S217)を実行する。
[0191] (S214)コマンド出力制御部 203は、ライト'コマンドの方がリード'コマンドよりもコマ ンド発行部 101から先に発行されたか否かを判定する。判定した結果、先に発行さ れた場合は(S214 :Yes)、下記の処理 (S215)を実行する。一方、後に発行された 場合は(S214 :No)、再度、上記の処理 (S212)を実行する。
[0192] (S215)コマンド出力制御部 203は、ライト'コマンドとリード'コマンドとの組合せに 対して、アクセス領域が重複しないか否かを判定する。判定した結果、重複しない場 合は(S215 :Yes)、下記の処理 (S216)を実行する。一方、重複する場合は(S215 : No)、再度、上記の処理 (S212)を実行する。
[0193] (S216)コマンド出力制御部 203は、リード'コマンドとライト'コマンドの組合せに対 して、出力順番を入れ替える。そして、再度、処理 (S212)を実行する。
[0194] (S217)コマンド出力制御部 203は、リード'コマンドの方がライト'コマンドよりもコマ ンド発行部 101から先に発行されたか否かを判定する。判定した結果、先に発行さ れた場合は(S217 :Yes)、上記の処理 (S215)を実行する。一方、後に発行された 場合は(S217 :No)、再度、上記の処理 (S212)を実行する。
[0195] (S218)コマンド出力制御部 203は、出力順番に従って、コマンドを選択し、コマン ド保持部 102を制御して、選択したコマンドを出力させる。そして、出力させたコマン ドに対して、コマンド変換処理 (例えば、図 21参照。)を実行させる。そして、上記の 処理 (S 202)を実行する。
[0196] 図 21は、本実施の形態におけるコマンド出力制御装置 200において実行されるコ マンド変換処理を示す図である。図 21に示されるように、コマンド出力制御装置 200 は、下記のコマンド変換処理 (S 111) , (S112) , (S221) , (S222)を実行する。な お、処理 (Si l l) , (S112)については、実施の形態 1におけるコマンド変換処理 (例 えば、図 7参照。)に含まれる処理 (S 111) , (S112)と同一の動作により、ここでは説 明を省略する。
[0197] (S221)ライト'サブコマンド依存関係検出部 213は、サブコマンド保持部 107で保 持されて!、るサブコマンドに対して、ライト ·サブコマンド依存関係検出処理 (例えば、 図 22参照。)を実行し、重複しているライト'サブコマンドを検出する。
[0198] (S222)リード'サブコマンド依存関係検出部 214は、サブコマンド保持部 107で保 持されているサブコマンドに対して、リード'サブコマンド依存関係検出処理 (例えば、 図 23参照。)を実行し、重複しているリード'サブコマンドを検出する。 [0199] 図 22は、本実施の形態におけるコマンド出力制御装置 200において実行されるラ イト'サブコマンド依存関係検出処理を示す図である。図 22に示されるように、コマン ド出力制御装置 200は、下記のライト'サブコマンド依存関係検出処理 (S231)〜(S 233)を実行する。
[0200] (S231)ライト'サブコマンド依存関係検出部 213は、全てのライト'サブコマンドの 組合せに対して、下記の処理(S232) , (S233)を実行する。そして、全ての組合せ に対して、下記の処理 (S232) , (S233)を実行すると、ライト'サブコマンド依存関係 検出処理を終了する。
[0201] (S232)ライト'サブコマンド依存関係検出部 213は、ライト'サブコマンドの組合せ に対して、同一のアクセス領域にアクセスするか否かを判定する。判定した結果、同 一のアクセス領域にアクセスする場合は(S232: Yes)、下記の処理(S233)を実行 する。一方、同一のアクセス領域にアクセスしない場合は(S232 : No)、次の組合せ に対して、処理 (S231)を実行する。
[0202] (S233)ライト'サブコマンド依存関係検出部 213は、属性情報保持部 208で保持 されている属性情報のうち、同一のアクセス領域にアクセスするライト'サブコマンド群 において出力順番が先のライト'サブコマンドについては、重複フラグを 1に設定する
[0203] 図 23は、本実施の形態におけるコマンド出力制御装置 200において実行されるリ ード 'サブコマンド依存関係検出処理を示す図である。図 23に示されるように、コマン ド出力制御装置 200は、下記のリード'サブコマンド依存関係検出処理 (S241)〜(S 243)を実行する。
[0204] (S241)リード'サブコマンド依存関係検出部 214は、全てのリード'サブコマンドの 組合せに対して、下記の処理(S242) , (S243)を実行する。そして、全ての組合せ に対して、下記の処理 (S242) , (S243)を実行すると、リード'サブコマンド依存関 係検出処理を終了する。
[0205] (S242)リード'サブコマンド依存関係検出部 214は、リード'サブコマンドの組合せ に対して、同一のアクセス領域にアクセスするか否かを判定する。判定した結果、同 一のアクセス領域にアクセスする場合は(S242: Yes)、下記の処理 (S243)を実行 する。一方、同一のアクセス領域にアクセスしない場合は(S242 : No)、次の組合せ に対して、処理 (S241)を実行する。
[0206] (S243)リード'サブコマンド依存関係検出部 214は、属性情報保持部 208で保持 されている属性情報のうち、同一のアクセス領域にアクセスするリード'サブコマンド 群において出力順番が後のリード'サブコマンドについては、重複フラグを 1に設定 する。
[0207] 図 24は、本実施の形態におけるコマンド出力制御装置 200において実行されるサ ブコマンド出力処理を示す図である。図 24に示されるように、コマンド出力制御装置 200は、下記のサブコマンド出力処理(S251)〜(S259) , (S145)を実行する。な お、処理 (S145)については、実施の形態 1におけるサブコマンド出力処理 (例えば 、図 10参照。)に含まれる処理 (S145)と同一の動作により、ここでは説明を省略する
[0208] (S251)コマンド出力制御部 203は、出力対象とするサブコマンド群の中から、サブ コマンドを選択する。そして、下記の処理 (S252)を実行する。
[0209] (S252)コマンド出力制御部 203は、リード Zライト属性判断部 212で判断された結 果に基づいて、選択したサブコマンドがリード'サブコマンドであるか否かを判定する 。判定した結果、リード'サブコマンドである場合は(S252 : Yes)、下記の処理(S25 3)を実行する。一方、リード'サブコマンドでない場合は(S252 :No)、下記の処理( S256)を実行する。このとき、リード Zライト属性判断部 212は、属性情報保持部 20 8で保持されて 、る属性情報を参照し、コマンド出力制御部 203で選択されたサブコ マンドの種類を特定し、特定した種類に関する情報をコマンド出力制御部 203へ出 力する。
[0210] (S253)コマンド出力制御部 203は、属性情報保持部 208で保持されている属性 情報を参照し、選択したサブコマンドの重複フラグが 0に設定されているか否かを判 定する。判定した結果、重複フラグが 0に設定されている場合は(S253 : Yes)、下記 の処理 (S254)をメモリ IZF部 204に実行させる。一方、重複フラグが 1に設定されて V、る場合は(S253: No)、下記の処理 (S255)をメモリ IZF部 204に実行させる。
[0211] (S254)メモリ IZF部 204は、コマンド出力制御部 203で選択されたサブコマンドを サブコマンド保持部 107から取り出す。取り出したサブコマンドをメモリ 105へ出力す る。出力したサブコマンドによって特定されるアクセス領域力もデータを読み出す。そ して、サブコマンド出力処理を終了する。
[0212] (S255)メモリ IZF部 204は、コマンド出力制御部 203で選択されたサブコマンドを サブコマンド保持部 107から取り出す。取り出したサブコマンドをメモリ 105へ出力せ ずに廃棄する。廃棄したサブコマンドによって特定されるアクセス領域から予め読み 出されてバッファ 215に格納されているデータをバッファ 215から読み出す。そして、 サブコマンド出力処理を終了する。
[0213] (S256)コマンド出力制御部 203は、リード Zライト属性判断部 212で判断された結 果に基づいて、選択したサブコマンドがライト'サブコマンドである力否かを判定する。 判定した結果、ライト'サブコマンドである場合は(S256 : Yes)、下記の処理(S257) を実行する。一方、ライト'サブコマンドでない場合は(S256 : No)、下記の処理 (S1 45)を実行する。このとき、リード/ライト属性判断部 212は、属性情報保持部 208で 保持されている属性情報を参照し、コマンド出力制御部 203で選択されたサブコマン ドの種類を特定し、特定した種類に関する情報をコマンド出力制御部 203へ出力す る。
[0214] (S257)コマンド出力制御部 203は、属性情報保持部 208で保持されている属性 情報を参照し、選択したサブコマンドの重複フラグが 0に設定されているか否かを判 定する。判定した結果、重複フラグが 0に設定されている場合は(S257: Yes)、下記 の処理 (S258)をメモリ IZF部 204に実行させる。一方、重複フラグが 1に設定されて V、る場合は(S257: No)、下記の処理 (S259)をメモリ IZF部 204に実行させる。
[0215] (S258)メモリ IZF部 204は、コマンド出力制御部 203で選択されたサブコマンドを サブコマンド保持部 107から取り出す。取り出したサブコマンドをメモリ 105へ出力す る。出力したサブコマンドによって特定されるアクセス領域にデータを書き込む。そし て、サブコマンド出力処理を終了する。
[0216] (S259)メモリ IZF部 204は、コマンド出力制御部 203で選択されたサブコマンドを サブコマンド保持部 107から取り出す。取り出したサブコマンドをメモリ 105へ出力せ ずに廃棄する。そして、サブコマンド出力処理を終了する。 [0217] 以上、本実施の形態におけるコマンド出力制御装置 200によれば、リード'コマンド とライト'コマンドとの間にオーバヘッドが入る機会を削減することができる。また、重複 するライト'コマンドを省略することができ、アクセス効率を向上させることができる。さ らに、重複するリード'コマンドを省略することができ、アクセス効率を向上させることが できる。
[0218] (その他)
なお、コマンド出力制御装置は、コマンド出力制御装置の各機能が組み込まれた L SIによって実現されるとしてもょ 、。
[0219] なお、 LSIは、フノレカスタム LSI (Large Scale Integration)、 ASIC (Application Spec ific Integrated Circuit)などのようなセミカスタム LSI、 FPGA (Field Programmable Ga te Array)や CPLD (Complex Programmable Logic Device)などのようなプログラマブ ル ·ロジック ·デバイス、動的に回路構成が書き換え可能なダイナミック ·リコンフィギュ ラブル'デバイスに形成されるとしてもよい。
[0220] さらに、コマンド出力制御装置の各機能を LSIに形成する設計データは、ハードウ エア記述言語によって記述されたプログラム(以下、 HDLプログラムと呼称する。)とし てもよい。さらに、 HDLプログラムを論理合成して得られるゲート'レベルのネットリスト としてもよい。また、ゲート'レベルのネットリストに、配置情報、プロセス条件等を付カロ したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータ としてもよい。ここで、ハードウェア記述言語として、 VHDL (Very high speed integrat ed circuit Hardware Description Language)、 Verilog— HDL、 systemCaめる。
[0221] さらに、設計データは、コンピュータシステム、組み込みシステムなどのようなハード ウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記 録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。そ して、これらの記録媒体を介して他のハードウェアシステムに読み取られた設計デー タが、ダウンロードケーブルを介して、プログラマブル 'ロジック'デバイスにダウンロー ドされるとしてもよい。ここで、コンピュータシステム読み取り可能な記録媒体として、 光学記録媒体 (例えば、 CD— ROMなど。)、磁気記録媒体 (例えば、ハードディスク など。 )、光磁気記録媒体 (例えば、 MOなど。 )、半導体メモリ(例えば、メモリカード など。)などがある。
[0222] または、設計データは、インターネット、ローカルエリアネットワークなどのようなネット ワークに接続されて 、るハードウェアシステムに保持されて!、るとしてもよ!/、。さらに、 ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとして もよい。そして、これらのネットワークを介して他のハードウェアシステムに取得された 設計データが、ダウンロードケーブルを介して、プログラマブル'ロジック 'デバイスに ダウンロードされるとしてよい。ここで、ネットワークとして、地上放送網、衛星放送網、 PLC (Power Line Communication)、移動電話網、有線通信網(例えば、 IEEE802. 3など。)、無線通信網(例えば、 IEEE802. 11など。)がある。
[0223] または、設計データは、通電時に FPGAに転送され得るように、シリアル ROMに記 録しておくとしてもよい。そして、シリアル ROMに記録された設計データは、通電時 に、直接、 FPGAにダウンロードされるとしてもよい。
[0224] または、設計データは、通電時に、マイクロプロセッサによって生成されて、 FPGA にダウンロードされるとしてもよい。 産業上の利用可能性
[0225] 本発明は、メモリを制御するコマンドの出力を制御するコマンド出力制御装置などと して、特に、リード、ライト時において使用されるコマンドの出力を制御するコマンド出 力制御装置などとして、禾 IJ用することができる。

Claims

請求の範囲
[1] 第 1の記憶領域にアクセスするコマンドに基づいて生成された第 1のサブコマンド群 と、前記第 1の記憶領域とは異なるバンクに属する第 2の記憶領域にアクセスするコ マンドに基づいて生成された第 2のサブコマンド群とを保持するサブコマンド保持手 段と、
サブコマンド群に属するサブコマンドの個数を、前記第 1のサブコマンド群と前記第 2のサブコマンド群との間で比較する個数比較手段と、
前記個数比較手段で比較された結果に基づ!、て、前記第 1の記憶領域と前記第 2 の記憶領域との 、ずれかから、個数の少な!/、方を分割対象の記憶領域として選択す る記憶領域選択手段と、
サブコマンドによってアクセスされる部分記憶領域のサイズを、サブコマンド群に属 するサブコマンド間で比較するサイズ比較手段と、
前記サイズ比較手段で比較された結果に基づ!ヽて、前記分割対象の記憶領域を 構成する部分記憶領域の中から、所定のサイズ以上の部分記憶領域を分割対象の 部分記憶領域として選択する部分記憶領域選択手段と、
前記分割対象の部分記憶領域を分割して得られた部分記憶領域ごとにサブコマン ドを生成するサブコマンド生成手段と、
前記サブコマンド保持手段で保持されて ヽるサブコマンドの中から、前記分割対象 の部分記憶領域にアクセスするサブコマンドを、前記サブコマンド生成手段で生成さ れたサブコマンド群で置き換えるサブコマンド置換手段と、
前記第 1のサブコマンド群と前記第 2のサブコマンド群とから交互にサブコマンドを メモリへ出力するサブコマンド出力手段と
を備えることを特徴とするコマンド出力制御装置。
[2] 前記コマンド出力制御装置は、さらに、サブコマンドによってアクセスされる部分記 憶領域のサイズを特定するサイズ特定手段を備え、
前記サブコマンド出力手段は、前記サイズ特定手段で特定された結果に基づ 、て 、前記サブコマンド保持手段で保持されているサブコマンドの中から、所定のサイズ 未満の部分記憶領域にアクセスするサブコマンドを後に出力する ことを特徴とする請求項 1に記載のコマンド出力制御装置。
[3] 前記コマンド出力制御装置は、さらに、前記サブコマンド保持手段で保持されてい るサブコマンドの中から、他種のサブコマンドと依存関係のない同種のサブコマンドを 種別するサブコマンド種別手段を備え、
前記サブコマンド出力手段は、前記サブコマンド種別手段で種別された前記同種 のサブコマンドを連続して出力する
ことを特徴とする請求項 1に記載のコマンド出力制御装置。
[4] 前記コマンド出力制御装置は、さらに、前記サブコマンド保持手段で保持されてい るサブコマンドの中から、同一の部分記憶領域にアクセスするライト'サブコマンド群 を検出するライト'サブコマンド依存関係検出手段を備え、
前記サブコマンド出力手段は、前記ライト'サブコマンド依存関係検出手段で検出 された結果に基づいて、前記ライト'サブコマンド群のうち、出力順番が先のライト'サ ブコマンドを廃棄し、出力順番が後のライト'サブコマンドを出力する
ことを特徴とする請求項 1に記載のコマンド出力制御装置。
[5] 前記コマンド出力制御装置は、さらに、前記サブコマンド保持手段で保持されてい るサブコマンドの中から、同一の部分記憶領域にアクセスするリード ·サブコマンド群 を検出するリード'サブコマンド依存関係検出手段を備え、
前記サブコマンド出力手段は、前記リード'サブコマンド依存関係検出手段で検出 され
た結果に基づいて、前記リード'サブコマンド群のうち、出力順番が先のリード'サブコ マンドを出力し、出力順番が後のリード'サブコマンドを廃棄する
ことを特徴とする請求項 1に記載のコマンド出力制御装置。
[6] 前記コマンド出力制御装置は、さらに、前記メモリから読み出されたデータを一時的 に保持するバッファを備え、
前記サブコマンド出力手段は、出力川頁番が先のリード'サブコマンドを出力したとき に、前記メモリから読み出したデータを前記バッファに一時的に保持しておき、出力 順番が後のリード'サブコマンドを出力するときに、前記バッファから前記データを読 み出す ことを特徴とする請求項 5に記載のコマンド出力制御装置。
[7] 前記コマンド出力制御装置は、さらに、
サブコマンドによってアクセスされる部分記憶領域のアドレスを、サブコマンド群に 属するサブコマンド間で比較するアドレス比較手段と、
前記アドレス比較手段で比較された結果に基づ!/ヽて、前記サブコマンド保持手段 で保持されているサブコマンドの中から、先に出力されたサブコマンドによってァクセ スされた部分記憶領域のアドレス力 の遷移が小さいサブコマンドを選択するサブコ マンド選択手段と
を備え、
前記サブコマンド出力手段は、前記サブコマンド選択手段で選択されたサブコマン ドを出力する
ことを特徴とする請求項 1に記載のコマンド出力制御装置。
[8] 第 1の記憶領域にアクセスするコマンドに基づいて生成された第 1のサブコマンド群 と、前記第 1の記憶領域とは異なるバンクに属する第 2の記憶領域にアクセスするコ マンドに基づいて生成された第 2のサブコマンド群とを保持するサブコマンド保持手 段を備えるコマンド出力制御装置を制御するコマンド出力制御方法であって、 サブコマンド群に属するサブコマンドの個数を、前記第 1のサブコマンド群と前記第 2のサブコマンド群との間で比較する個数比較ステップと、
前記個数比較ステップで比較された結果に基づ!、て、前記第 1の記憶領域と前記 第 2の記憶領域との 、ずれかから、個数の少な 、方を分割対象の記憶領域として選 択する記憶領域選択ステップと、
サブコマンドによってアクセスされる部分記憶領域のサイズを、サブコマンド群に属 するサブコマンド間で比較するサイズ比較ステップと、
前記サイズ比較ステップで比較された結果に基づ ヽて、前記分割対象の記憶領域 を構成する部分記憶領域の中から、所定のサイズ以上の部分記憶領域を分割対象 の部分記憶領域として選択する部分記憶領域選択ステップと、
前記分割対象の部分記憶領域を分割して得られた部分記憶領域ごとにサブコマン ドを生成するサブコマンド生成ステップと、 前記サブコマンド保持手段で保持されて ヽるサブコマンドの中から、前記分割対象 の部分記憶領域にアクセスするサブコマンドを、前記サブコマンド生成ステップで生 成されたサブコマンド群で置き換えるサブコマンド置換ステップと、
前記第 1のサブコマンド群と前記第 2のサブコマンド群とから交互にサブコマンドを メモリへ出力するサブコマンド出力ステップと
を含むことを特徴とするコマンド出力制御方法。
PCT/JP2007/053021 2006-03-31 2007-02-20 コマンド出力制御装置 WO2007116612A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/294,338 US7930439B2 (en) 2006-03-31 2007-02-20 Command output control apparatus
EP07714547A EP2003564A4 (en) 2006-03-31 2007-02-20 CONTROL OUTPUT CONTROLLER
JP2007536524A JP4733138B2 (ja) 2006-03-31 2007-02-20 コマンド出力制御装置、コマンド出力制御方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006096272 2006-03-31
JP2006-096272 2006-03-31

Publications (1)

Publication Number Publication Date
WO2007116612A1 true WO2007116612A1 (ja) 2007-10-18

Family

ID=38580914

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/053021 WO2007116612A1 (ja) 2006-03-31 2007-02-20 コマンド出力制御装置

Country Status (4)

Country Link
US (1) US7930439B2 (ja)
EP (1) EP2003564A4 (ja)
JP (1) JP4733138B2 (ja)
WO (1) WO2007116612A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124251A1 (ja) * 2011-03-16 2012-09-20 パナソニック株式会社 データ処理装置、データ処理方法及びデータ共有システム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
JP6516489B2 (ja) * 2015-01-29 2019-05-22 キヤノン株式会社 情報処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143426A (ja) * 1996-06-20 1998-05-29 Cirrus Logic Inc メモリ回路に格納されたピクセルデータを転送する方法および装置
WO2000033194A1 (en) * 1998-11-27 2000-06-08 Matsushita Electric Industrial Co., Ltd. Address generating device and moving vector detecting device
JP2001256106A (ja) 2000-03-13 2001-09-21 Fuji Xerox Co Ltd メモリアクセスシステム
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置
WO2005109205A1 (ja) * 2004-04-15 2005-11-17 Matsushita Electric Industrial Co., Ltd. 矩形領域に対するバーストメモリアクセス方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69943402D1 (de) * 1998-02-04 2011-06-16 Panasonic Corp Speichersteuerungseinheit und -verfahren und Medium mit Ausführungsprogramm
JP4234829B2 (ja) * 1998-12-03 2009-03-04 パナソニック株式会社 メモリ制御装置
US6246422B1 (en) 1998-09-01 2001-06-12 Sun Microsystems, Inc. Efficient method for storing texture maps in multi-bank memory
JP2003186740A (ja) * 2001-12-19 2003-07-04 Matsushita Electric Ind Co Ltd メモリ制御装置、及びメモリ制御方法
DE10332314B4 (de) * 2003-07-16 2006-10-26 Infineon Technologies Ag Halbleiterspeicher mit kurzer effektiver Wortleitungszykluszeit sowie Verfahren zum Lesen von Daten aus einem derartigen Halbleiterspeicher
JP4786209B2 (ja) * 2005-03-18 2011-10-05 パナソニック株式会社 メモリアクセス装置
JP2006318139A (ja) 2005-05-11 2006-11-24 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法およびプログラム
WO2008070191A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143426A (ja) * 1996-06-20 1998-05-29 Cirrus Logic Inc メモリ回路に格納されたピクセルデータを転送する方法および装置
WO2000033194A1 (en) * 1998-11-27 2000-06-08 Matsushita Electric Industrial Co., Ltd. Address generating device and moving vector detecting device
JP2001256106A (ja) 2000-03-13 2001-09-21 Fuji Xerox Co Ltd メモリアクセスシステム
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置
US6819326B2 (en) 2001-01-12 2004-11-16 Koninklijke Philips Electronics N.V. Memory address translation for image processing
WO2005109205A1 (ja) * 2004-04-15 2005-11-17 Matsushita Electric Industrial Co., Ltd. 矩形領域に対するバーストメモリアクセス方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2003564A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124251A1 (ja) * 2011-03-16 2012-09-20 パナソニック株式会社 データ処理装置、データ処理方法及びデータ共有システム
US9201781B2 (en) 2011-03-16 2015-12-01 Panasonic Intellectual Property Management Co., Ltd. Data processing apparatus, data processing method and data sharing system

Also Published As

Publication number Publication date
EP2003564A2 (en) 2008-12-17
EP2003564A4 (en) 2009-11-25
US7930439B2 (en) 2011-04-19
JP4733138B2 (ja) 2011-07-27
JPWO2007116612A1 (ja) 2009-08-20
EP2003564A9 (en) 2009-04-15
US20090287850A1 (en) 2009-11-19

Similar Documents

Publication Publication Date Title
JP6678207B2 (ja) メモリ圧縮を実行するシステム及び方法
US9195466B2 (en) Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US11593117B2 (en) Combining load or store instructions
TW201338464A (zh) 用於在狀態機中路由之方法及系統
US11327896B2 (en) System control using sparse data
KR20120049806A (ko) 프리페치 명령어
CN105009074A (zh) 消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体
WO2007116612A1 (ja) コマンド出力制御装置
US11455781B2 (en) Data reading/writing method and system in 3D image processing, storage medium and terminal
US8023301B1 (en) Content addressable memory device having state information processing circuitry
US9135984B2 (en) Apparatuses and methods for writing masked data to a buffer
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
US20080071514A1 (en) Apparatus for handling register-transfer-level description, method thereof, and program storage medium storing program thereof
US8990741B2 (en) Circuit design support device, circuit design support method and program
WO2016063667A1 (ja) 再構成可能デバイス
US20070014137A1 (en) Banked cache with multiplexer
JP2014225134A (ja) 不揮発性論理集積回路設計支援システム
JP2007228052A (ja) 再構成データ制御回路および再構成データ制御方法
WO2022021459A1 (zh) 数据预加载装置及其预加载方法、计算机可读存储介质
US7275143B1 (en) System, apparatus and method for avoiding page conflicts by characterizing addresses in parallel with translations of memory addresses
Pandeeswari et al. A partition based bloom filter for fastest data search
US20120163102A1 (en) Multi-port memory array
JP2004227445A (ja) 記憶装置サブシステムにおけるコピー方法および記憶装置サブシステム
JP2001243116A (ja) 書込みのみで最長時間未使用ビットを更新するためのシステム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2007536524

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 07714547

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2007714547

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12294338

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE