US7434023B2 - Memory device - Google Patents
Memory device Download PDFInfo
- Publication number
- US7434023B2 US7434023B2 US11/271,913 US27191305A US7434023B2 US 7434023 B2 US7434023 B2 US 7434023B2 US 27191305 A US27191305 A US 27191305A US 7434023 B2 US7434023 B2 US 7434023B2
- Authority
- US
- United States
- Prior art keywords
- data
- transmission
- buffer
- memory
- address
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Definitions
- the present invention relates to memory devices, and more particularly, to a memory device that performs transmission and reception of data.
- a known device for transferring data inside a single central processing unit is a stack memory, which is used as an area for temporarily saving data such as register data and the like due to interrupts and function calls.
- the stack memory is implemented using a stack pointer on a standard one-dimensional memory.
- a known device for transferring data between different CPUs is a shared memory having a software-based interface.
- a known device for transferring data between a CPU and a memory is a cache memory.
- Cache memories are data buffers with a relatively high degree of versatility since hardware control is performed, and there is no need for software that takes the hardware configuration into account. Also, because data swapping is automatically performed by hardware in cache memories, there is an advantage in that, regarding software-based data access, data swapping is seamless.
- cache memories are restricted to data transfer in units equal to the cache line size, they are inefficient at handling discrete data.
- they were originally based on technology employing temporal and spatial locality of data access, they suffer from the problem that the cache capacity is wastefully used up when accessing data that is not reusable (that is, a part of the cache memories is meaninglessly occupied), and the performance is therefore reduced. They also suffer from the problem that the cache capacity significantly affects the computational performance of the CPU.
- stack memories and shared memories must be provided with dedicated hardware and software frameworks and therefore suffer from poor versatility.
- the storage device described in Japanese Unexamined Patent Publication No. 09-319657 can be used only for transmitting and receiving data between a CPU and a memory, but it is difficult to use it in other configurations.
- the present invention has been conceived in light of the problems described above, and it is an object thereof to provide a memory device that can handle various transmission-source devices and transmission-destination devices without modifying the hardware configuration.
- a memory device for use in transmitting and receiving data.
- This memory device includes a data buffer for storing data output from a data-transmission source and outputting the data to a data-transmission destination serving as an output destination for the data; a transmission-source address converter for performing arrangement processing on the data output from the data-transmission source when the data-transmission source is a device that passively outputs data; and a transmission-destination address converter for performing arrangement processing on the data to be input to the data-transmission destination when the data-transmission destination is a device to which data is passively input.
- FIG. 1 is a diagram showing the basic outline of the present invention.
- FIG. 2 is a block diagram showing a data transmitting-and-receiving system.
- FIG. 3 is a block diagram showing the internal configuration of an input-address converter.
- FIG. 4 is a block diagram showing the internal configuration of an output-address converter.
- FIG. 5 is a block diagram showing the internal configuration of a shift register.
- FIG. 6 is a block diagram showing the configuration of a RAM and an address controller.
- FIG. 7 is a table showing six configurations of the data transmitting-and-receiving system.
- FIG. 8 is an outlined diagram showing an example of the write and read operations of the RAM in option B.
- FIG. 9 is an outlined diagram showing an example of the write and read operations of the RAM in option E.
- FIG. 10 is a block diagram showing a data transmitting-and-receiving system of configuration 1.
- FIG. 11 is an outlined diagram of a first transfer mode.
- FIG. 12 is an outlined diagram of an example using a consecutive access mode.
- FIG. 14 is an outlined diagram showing an example using a distance access mode.
- FIG. 15 is an outlined diagram of a third transfer mode.
- FIG. 16 is an outlined diagram showing an example using a multi-distance access mode.
- FIG. 17 is a block diagram showing a data transmitting-and-receiving system of configuration 2.
- FIG. 18 is a block diagram showing a data transmitting-and-receiving system of configuration 3.
- FIG. 19 is a block diagram showing a data transmitting-and-receiving system of configuration 4.
- FIG. 20 is a block diagram showing a data transmitting-and-receiving system of configuration 5.
- FIG. 21 is a block diagram showing a data transmitting-and-receiving system of configuration 6.
- FIG. 1 shows the basic outline of the present invention.
- a data transmitting-and-receiving system 10 includes a memory device 1 , a data-transmission source 2 , and a data-transmission destination 3 .
- the memory device 1 includes a data buffer 4 , a transmission-source address converter 5 , and a transmission-destination address converter 6 .
- the data buffer 4 stores data output from the data-transmission source 2 and outputs data to the data-transmission destination 3 , which is the output destination of the data.
- the transmission-source address converter 5 performs arrangement processing on the data output from the data-transmission source 2 to the data buffer 4 .
- the transmission-destination-address converter 6 When the data-transmission destination 3 is a device to which data is passively input, that is, when the data is input to the data-transmission destination 3 from the data buffer 4 only if the data-transmission destination 3 receives an external data-input command, the transmission-destination-address converter 6 performs arrangement processing on the data output from the data buffer 4 to the data-transmission destination 3 .
- FIG. 2 is a block diagram showing a data transmitting-and-receiving system 100 .
- a CPU 101 or a memory 103 is selected as a data-transmission source which inputs data to a stream buffer (memory device) 110 , and one of the CPU 101 , a CPU 102 , the memory 103 , and a memory 104 is selected for use as the data-transmission destination to which data is output from the stream buffer 110 .
- the CPU 101 is selected as the data-transmission source, and the memory 104 is selected as the data-transmission destination.
- the stream buffer 110 includes an input port 111 that is connected to the CPU 101 ; a data buffer 112 having a shift register 112 a and a random access memory (RAM) 112 b for buffering the data input at the input port 111 and an address controller 112 c that specifies read and write locations of the data buffered in the RAM 112 b as required; an input-address converter 113 that can output the data input from the input port 111 to the data buffer 112 (the data transferred to the data buffer 112 ) at a desired timing, as required; an output port 114 that is connected to the memory 104 ; and an output-address converter 115 that can output the data output from the data buffer 112 to the memory 104 (the data transferred to the memory 104 ) at a desired timing, as required.
- RAM random access memory
- the data output from the input port 111 is input to the shift register 112 a or the RAM 112 b according to data-buffer access mode options A to F, described later (that is, the shift register 112 a or the RAM 112 b is selected).
- FIG. 3 is a block diagram showing the internal configuration of the input-address converter 113 .
- the input-address converter 113 includes a start-address register 121 , a counter 122 , an ALU 123 , an access-address register 124 , an end-address register 125 , and a comparator 126 .
- the input-address converter 113 begins to operate when a register setting command (described later) is input.
- the start-address register 121 indicates a start address for data transfer to the data buffer 112 and outputs the start address to the ALU 123 when the register setting command is input thereto.
- the counter 122 increments a count value for each access to the access-address register 124 and outputs the count value to the ALU 123 .
- the ALU 123 adds the count value in the counter 122 to the start address output from the start-address register 121 and outputs the result to the access-address register 124 .
- the access-address register 124 When there is an output from the ALU 123 , the access-address register 124 outputs the value of the access-address register 124 to the input port 111 and outputs the count value to the comparator 126 .
- the end-address register 125 stores the final address for the data transfer to the data buffer 112 .
- the comparator 126 compares the value in the access-address register 124 and the value in the end-address register 125 and, when they are equal, outputs a transfer-complete interrupt signal indicating completion of the data transfer.
- FIG. 4 is a block diagram showing the internal configuration of the output-address converter 115 .
- the output-address converter 115 includes a start-address register 131 , a counter 132 , an ALU 133 , an access-address register 134 , an end-address register 135 , and a comparator 136 .
- the output-address converter 115 begins operating when a register setting command is input.
- the start-address register 131 indicates a start address for data transfer to the data-transmission destination (the memory 104 in this embodiment) connected to the output side of the data buffer 112 , and when the register setting command is input, it outputs the start address to the ALU 133 .
- the counter 132 increments a count value for each access to the access-address register 134 and outputs the count value to the ALU 133 .
- the ALU 133 adds the count value in the counter 132 to the start address output from the start-address register 131 and outputs the result to the access-address register 134 .
- the access-address register 134 When there is an output from the ALU 133 , the access-address register 134 outputs the value in the access-address register 134 to the output port 114 and outputs the count value to the comparator 136 .
- the end-address register 135 stores the final address for the data transfer to the memory 104 .
- the comparator 136 compares the value in the access-address register 134 and the value in the end-address register 135 , and when they are the same, it outputs a transfer-complete interrupt signal.
- FIG. 5 is a block diagram showing the internal configuration of the shift register 112 a.
- the shift register 112 a includes n+1 buffers (where n is an integer equal to 1 or more), that is, buffer 0 , buffer 1 , . . . , buffer n- 1 , and buffer n.
- Write addresses in the shift register 112 a start at buffer n and sequentially proceed through buffer n- 1 , buffer n- 2 , buffer n- 3 . . . . Read addresses start at buffer 0 and sequentially proceed through buffer 1 , buffer 2 , buffer 3 , . . . .
- FIG. 6 is a block diagram showing the configuration of the RAM 112 b and the address controller 112 c.
- the shift register 112 a is not shown in FIG. 6 .
- the RAM 112 b is formed of n+1 rows of buffers (where n is an integer equal to 1 or more) provided with a plurality of memory cells, that is, buffer 0 , buffer 1 , . . . , buffer n- 1 , and buffer n.
- the address controller 112 c includes a write pointer (hereinafter referred to as “WP”) generator 141 for generating a write pointer that indicates the address (for write access) when writing data into the RAM 112 b , a read pointer (hereinafter referred to as “RP”) generator for generating a read pointer that indicates the address (for read access) when reading data from the RAM 112 b , a write port 143 , and a read port 144 .
- WP write pointer
- RP read pointer
- the WP generated by the WP generator 141 is output to the RAM 112 b via the write port 143 .
- the RP generated by the RP generator 142 is output to the RAM 112 b via the read port 144 .
- FIG. 7 is a table showing six example configurations of the data transmitting-and-receiving system 100 .
- the data-transmission source connected to the input side of the stream buffer 110 is shown in the “input side” column.
- the CPU 101 is selected as the data-transmission source
- the memory 103 is selected as the data-transmission source.
- the data-transmission destination connected to the output side of the stream buffer 110 is shown in the “output side” column.
- the memory 104 is selected as the data-transmission destination
- the CPU 102 is selected as the data-transmission destination
- the CPU 101 is selected as the data-transmission destination
- the memory 103 is selected as the data-transmission destination.
- the CPU 101 serves as both the data-transmission source and the data-transmission destination.
- the memory 103 serves as both the data-transmission source and the data-transmission destination.
- the selected CPU and memory are used in combination with the stream buffer 110 .
- the “input-address converter” column shows whether or not it is necessary to use the input-address converter 113 . (The circle indicates YES and the cross indicates NO.)
- the input-address converter 113 when a passive unit such as the memory 103 is connected to the input side of the stream buffer 110 , in other words, in configurations 2, 5, and 6, the input-address converter 113 must be used for inputting data to the stream buffer 110 at a desired timing.
- the “output-address converter” column indicates whether or not the output-address converter 115 needs to be used.
- the output-address converter 115 when a passive unit, such as the memory 103 or the memory 104 , is connected to the output side of the stream buffer 110 , in other words, in configurations 1, 5, and 6, the output-address converter 115 must be used for outputting data from the stream buffer 110 at a desired timing.
- the “transfer mode” column indicates whether or not a transfer mode can be used.
- the transfer mode indicates that arrangement processing is performed on the data transferred from the data-transmission source to the data buffer 112 or that arrangement processing is performed on the data transferred from the data buffer 112 to the data-transmission destination. In this mode, the data is transferred a desired distance (spacing).
- the transfer mode can be used in configurations 1, 2, 5, and 6. The transfer mode will be described in detail later.
- the “data-buffer access mode” column specifies how the data is written to the data buffer 112 or how the data is read out from the data buffer 112 . There are five options, options A to E, for the access mode.
- the shift register 112 a is selected as the storage location of the data.
- the shift register 112 a When writing data to the shift register 112 a , the data is first written from the input port 111 into buffer n, and sequentially written to buffer n- 1 , buffer n- 2 , . . . . When reading out the data, the data is read-out to the output port 114 beginning with buffer 0 , and then sequentially read out from buffer 1 , buffer 2 , buffer 3 , . . . . In other words, in option A, the shift register 112 a (data buffer 112 ) is used as a first-in first-out (FIFO) buffer.
- FIFO first-in first-out
- option A using the FIFO configuration allows seamless operation, regardless of the buffer capacity. Also, since it is possible to perform control of the data buffer 112 without using software, the versatility is improved and the load on the CPU, which would normally increase when executing software, is reduced.
- option A the CPUs 101 and 102 and the memories 103 and 104 connected to the stream buffer 110 can be selected independently. Therefore, option A can be selected in configurations 1 to 6.
- the RAM 112 b is selected as the storage location of the data.
- option B the RAM 112 b is used as a FIFO buffer, like option A.
- specifying the WP and RP indicates the write address and the read address in the RAM 112 b , respectively. Because it is necessary to specify the WP and RP, at least one of the CPU 101 and the CPU 102 must be connected to the stream buffer 110 . Therefore, option B can be selected in configurations 1 to 4.
- FIG. 8 is an outlined diagram showing an example of the writing and reading operations of the RAM 112 b in option B.
- the WP and RP both point to buffer 0 . This is the initial state.
- the WP points to buffer 1 (step S 1 ). Thus, data is written into buffer 1 .
- the WP points to buffer 2 (step S 2 ).
- the RP points to buffer 1 (step S 3 ).
- the RP points to buffer 0 (step S 4 ).
- the RP points to buffer 1 (step S 5 ).
- the data in buffer 1 is read out again.
- the RAM 112 b is used as a FIFO buffer, similarly to option A. Also, by “rewinding” the RP (the operations in steps S 3 and S 4 ), the same data can be repeatedly extracted.
- the RAM 112 b is selected as the storage location of the data.
- option C the data-transmission source connected to the input port 111 directly specifies an address in the RAM 112 b .
- the readout of data is performed by specifying the RP. Because the address in the RAM 112 b must be directly specified when writing, the CPU 101 must be connected to the input port 111 . Therefore, option B can be selected in configurations 1, 3, and 4.
- data can be re-used and so the stream buffer 110 can be used like a memory.
- the RAM 112 b is selected as the storage location of the data.
- option D the data-transmission destination connected to the output port 114 directly specifies an address in the RAM 112 b . Data writing is performed by specifying the WP. Because the address in the RAM 112 b must be directly specified when reading, the CPU 101 or the CPU 102 must be connected to the output port 114 . Therefore, option D can be selected in configurations 2, 3, and 4.
- data can be re-used and so the stream buffer 110 can be used like a memory.
- the RAM 112 b is selected as the storage location of the data.
- option E the RAM 112 b is used as a first-in last-out (FILO) buffer.
- the RP indicates the address written to by using the WP immediately before. Because the WP and RP must be specified, at least one of the CPU 101 and the CPU 102 must be connected to the stream buffer 110 . Therefore, option E can be selected in configurations 1 to 4.
- FIG. 9 is an outlined diagram showing an example of the writing and reading operations of the RAM 112 b in option E.
- the WP and RP point to buffer 0 . This is the initial state.
- the WP points to buffer 1 (step S 11 ).
- data is written into buffer 1 .
- the WP points to buffer 2 and the RP points to buffer 1 (step S 12 ).
- the WP points to buffer 1 and the RP points to buffer 0 (step S 13 ).
- the WP points to buffer 0 (step S 13 ).
- data is written into buffer 0 .
- the RAM 112 b since the RAM 112 b is used as a FILO buffer, it can be used as a stack memory, within the capacity of the RAM 112 b.
- FIG. 10 is a block diagram showing a data transmitting-and-receiving system of Configuration 1.
- a data transmitting-and-receiving system 100 a includes the stream buffer 110 , the CPU 101 provided at the input side of the stream buffer 110 , and the memory 104 provided at the output side of the stream buffer 110 .
- An ALU 130 is provided between the output port 114 and the memory 104 .
- the CPU 101 outputs store commands, register setting commands, and so on and includes a command controller 117 to which various signals are input, such as a busy signal and a transfer-complete interrupt signal, and a data cache 118 for caching data having a high level of reusability.
- a command controller 117 to which various signals are input, such as a busy signal and a transfer-complete interrupt signal, and a data cache 118 for caching data having a high level of reusability.
- the CPU 101 caches data having a high level of reusability in the data cache 118 and stores it in the memory 104 via the ALU 130 . Also, the CPU 101 outputs data having a low level of reusability to the shift register 112 a via the input port 111 based on a store command and others.
- the data buffered in the shift register 112 a is sequentially output to the output port 114 .
- the shift register 112 a When data read-out from the shift register 112 a does not keep up with the data input based on the store command and all buffers in the shift register 112 a become filled up with data, the shift register 112 a outputs a busy signal to the command controller 117 in the CPU 101 .
- the output port 114 receives from the output-address converter 115 an address to be accessed in the memory 104 for transferring the data.
- the output-address converter 115 has three transfer modes, which are described below, when transferring data to the memory 104 .
- FIG. 11 is an outlined diagram showing a first transfer mode.
- the first transfer mode In the first transfer mode, m (where 1 ⁇ m ⁇ n+1) data items are consecutively transferred from a desired buffer in the shift register 112 a (a desired start address in the RAM 112 b ) to the memory 104 .
- FIG. 11 shows the memory 104 to which n+1 data items of data length X are transferred according to the first transfer mode.
- the first transfer mode is called a “consecutive access mode.”
- the consecutive access mode is used in standard array access, for example, when carrying out image processing in the horizontal direction in a two-dimensional arrangement of image data.
- FIG. 12 is an outlined diagram showing an example in which the consecutive access mode is used.
- the output-address converter 115 consecutively outputs data 0 , data 1 , data 2 , . . . , and data n from the output port 114 so that data 0 , data 1 , data 2 , . . . , and data n are stored at addresses in the memory 104 corresponding to the region A 1 .
- the data transferred from the memory 104 to the image display device is consecutively displayed in the horizontal direction, as shown in FIG. 12 .
- FIG. 13 is an outlined diagram showing a second transfer mode.
- the computational function of the ALU 133 in the output-address converter 115 is modified to adjust the timing at which values are output from the access-address register 134 , so that, from a desired start address in the memory 104 , a fixed distance from data item to data item is maintained.
- FIG. 13 shows the memory 104 into which n+1 data items of data length Y are to be transferred according to the second transfer mode.
- the second transfer mode is referred to as the “distance access mode.”
- the distance access mode is used when, for example, two dimensional image data is consecutively displayed in the vertical direction on an image display device.
- FIG. 14 is an outlined diagram showing an example in which the distance access mode is used.
- the output-address converter 115 When the address length of the memory 104 (address 0 to address MAX) and the address length of the largest image data displayed in an image display region A on the image display device are set to be the same, if predetermined data is to be displayed in a region A 2 (a shaded region in FIG. 14 ) in the image display region A, the output-address converter 115 outputs data 0 , data 1 , data 2 , . . . , and data n from the output port 114 so that the data is stored in the memory 104 in such a manner that the region between data 0 and data 1 in the region A 2 corresponds to the distance shown in FIG. 13 . By doing so, the data transferred from the memory 104 to the image display device (not shown) is displayed so as to be separated by a predetermined distance, and as a result, the data is consecutively displayed in the vertical direction.
- FIG. 15 is an outlined diagram showing a third transfer mode.
- the calculation function of the ALU 133 in the output address converter 115 is modified to adjust the timing at which values are output from the access address register 134 so that, from a desired start address in the memory, a plurality of blocks formed of m (where m is an integer less than or equal to n+1) data items of data length W, each maintaining a fixed distance (distance 0 ) from data item to data item, maintain a fixed distance (distance 1 ) from block to block.
- FIG. 15 shows the memory 104 into which n++1 data items of data length Z are transferred according to the third transfer mode.
- the third transfer mode is referred to as a “multi-distance access mode.”
- the multi-distance access mode is used when, for example, two-dimensional image data is to be displayed in a predetermined rectangular region on an image display device.
- FIG. 16 is an outlined diagram showing an example in which the multi-distance access mode is used.
- the output-address converter 115 outputs data 0 , data 1 , data 2 , . . . , and data n from the output port 114 so that the data is stored in the memory 104 in such a manner that the distance between data 0 and data 1 in region A 3 corresponds to distance 0 shown in FIG.
- the data transferred from the memory 104 to the image display device is displayed so as to be separated by a predetermined distance, and as a result, the data is consecutively displayed in the vertical direction.
- the stream buffer 110 is initialized. More concretely, the start-address register 131 and the end-address register 135 in the output-address converter 115 are configured based on a register setting command from the CPU 101 (which may be a dedicated command, or it may be implemented as a special address store command).
- the software outputs generated data from the CPU 101 as store data.
- This embodiment shows an example which is implemented by store commands having a fixed address indicating the stream buffer, without using a special command in a store operation in the stream buffer.
- the output-address converter 115 copies the contents of the start-address register 131 , for outputting the initial data, to the access-address register 134 via the ALU 133 . Then, the access-address register 134 outputs the value in the access-address register 134 to the output port 114 and increments the value in the counter 132 .
- the output port 114 accesses the memory 104 when the access-address register 134 outputs the value (that is, at the timing of the output value from the access address register 134 ).
- FIG. 17 is a block diagram showing the transmitting-and-receiving system in Configuration 2.
- the data transmitting-and-receiving system 100 b of Configuration 2 includes the stream buffer 110 , the memory 103 provided at the input side of the stream buffer 110 , and the CPU 102 provided at the output side of the stream buffer 110 .
- the stream buffer 110 in Configuration 2 reads out data from the memory 103 asynchronously with respect to the CPU 102 via the input port 111 , and the CPU 102 extracts data from the stream buffer 110 based on a load command (or an operation corresponding thereto).
- the input-address converter 113 determines whether or not the data buffer 112 is full and controls the issuing of requests to the memory.
- the parts of the stream buffer 110 used in Configuration 2 are the input port 111 , the data buffer 112 , the input-address converter 113 , and the output port 114 .
- the transfer modes are used in Configuration 2 when data is transferred from the memory 103 to the data buffer 112 .
- m data items are consecutively transferred to the shift register 112 a starting at a predetermined start address in the memory 103 .
- the computational function of the ALU 123 in the input-address converter 113 is modified to adjust the timing at which values are output from the access-address register 124 , so that a fixed distance is maintained from data item to data item from a desired buffer in the shift register 112 a.
- the computational function of the ALU 123 in the input-address converter 113 is modified to regulate the timing at which values are output from the access-address register 124 so that, from a predetermined start address in the memory 104 , a plurality of blocks formed of m data items (where m is an integer less than or equal to n+1), each maintaining a fixed distance (distance 0 ) from data item to data item, maintain a fixed distance (data length 0 ) from block to block.
- the stream buffer 110 is initialized.
- the start-address register 121 and the end-address register 125 in the input-address converter 113 are configured based on register setting commands from the CPU 102 (these may be dedicated commands or they may be implemented as special address store commands).
- an activation instruction is sent to the access-address register 124 based on a register setting command from the command controller 107 .
- the access-address register 124 When the access-address register 124 receives the instruction to start data transfer, the contents of the start-address register 121 are first copied to the access-address register 124 for the initial data input in the input-address converter 113 . Next, the access-address register 124 outputs the value in the access address register 124 to the input port 111 .
- the input port 111 accesses the shift register 112 a when the value is output from the access-address register 124 (that is, at the timing of the output value from the access-address register 124 ).
- the access address register 124 increments the value in the access address register 124 every time when each data item is output to the input port 111 .
- the comparator 126 compares the value in the end-address register 125 and the value in the access-address register 124 , and when these values are equal, it outputs a transfer-complete interrupt signal to the command controller 107 .
- the CPU 102 executes the software for actually using the stream buffer 110 at a desired timing.
- the software reads out data from the stream buffer 110 as required.
- This embodiment shows an example implemented by a load command having a fixed address indicating the stream buffer 110 , without using a special command in the load operation from the stream buffer 110 .
- FIG. 18 is a block diagram showing the transmitting-and-receiving system of Configuration 3.
- the data transmitting-and-receiving system 100 c in Configuration 3 can achieve the same advantages as the data transmitting-and-receiving systems 100 a and 100 b described above.
- FIG. 19 is a block diagram showing the transmitting-and-receiving system of Configuration 4.
- the data transmitting-and-receiving system 100 d in Configuration 4 includes the stream buffer 110 and the CPU 101 , which is connected to the input and output sides of the stream buffer 110 .
- Configuration 4 like Configuration 3, because a desired address and data to be stored at the address can be set in the CPU 101 , a transfer mode option does not need to be set.
- the data transmitting-and-receiving system 100 d in Configuration 4 can achieve the same advantages as the data transmitting-and-receiving system 100 c described above.
- the data transmitting-and-receiving system 100 d in Configuration 4 can function as a stack memory which the CPU 101 uses, by adopting the functions of option D and option E for the stream buffer 110 . Furthermore, it can also function as a communication buffer between different processes in the same CPU 101 .
- FIG. 20 is a block diagram showing the data transmitting-and-receiving system of Configuration 5.
- a data transmitting-and-receiving system 100 e of configuration 5 will be described by focusing on the differences from the data transmitting-and-receiving systems 100 a and 100 b described above, and a description of similarities will be omitted.
- the data transmitting-and-receiving system 100 e of Configuration 5 includes the stream buffer 110 , the memory 103 provided at the input side of the stream buffer 110 , and the memory 104 provided at the output side of the stream buffer 110 .
- the input-address converter 113 in the stream buffer 110 performs timing control (address control of the data buffer 112 ) of the data to be stored in the data buffer 112 and requests the memory 103 to transfer data to input the data into the stream buffer 110 .
- the output-address converter 115 in the stream buffer 110 performs address control of the data buffer 112 and performs data transfer with the memory 104 to output the data from the stream buffer 110 .
- Initialization of the stream buffer 110 in this Configuration is performed by providing a separate storage unit in the stream buffer 110 and loading initial-setting commands from the storage unit. Also, register setting commands may be externally input and initialization carried out based on those commands.
- the data transmitting-and-receiving system 100 e of Configuration 5 can achieve the same advantages as the data transmitting-and-receiving systems 100 a and 100 b described above.
- the stream buffer 110 can provide a direct memory access (DMA) function for performing block transfer from a predetermined region in the memory to another region, without passing through a CPU.
- DMA direct memory access
- the data transfer mode employed by the output-address converter 115 may be the same as the data transfer mode employed by the input-address converter 113 , or it may be different.
- FIG. 21 is a block diagram showing the data transmitting-and-receiving system of Configuration 6.
- the data transmitting-and-receiving system 100 f of Configuration 6 includes the stream buffer 110 and the memory 103 provided at the input and output sides of the stream buffer 110 .
- the components constituting the stream buffer 110 used in Configuration 6 are the input-address converter 113 , the output-address converter 115 , the input port 111 , the output port 114 , and the data buffer 112 .
- This data transmitting-and-receiving system 100 f of Configuration 6 can achieve the same advantages as the data transmitting-and-receiving system 100 e described above.
- the stream buffer 110 can function as a transfer buffer between a plurality of memory hierarchies, for example, between a level-1 cache and the main memory, between a level-1 cache and a level-2 cache, and so on. Also, the stream buffer 110 can be used in data transfer from the local memory of a certain CPU to the local memory of another CPU.
- the stream buffer (memory device) 110 the stream buffer (memory device) 110 of the present embodiment, data transmission and reception can be reliably performed without changing the hardware configuration of the stream buffer 110 , regardless of whether the CPUs 101 and 102 and the memories 103 and 104 are connected to the stream buffer 110 . Accordingly, it is possible to facilitate system development.
- data can be stored at desired addresses in the memories 103 and 104 .
- desired data can be stored at desired addresses in the memories 103 and 104 .
- the address controller 112 c is provided in the data buffer 112 in the embodiment described above. However, the invention is not limited to this arrangement; the address controller 112 c needs to be provided in the stream buffer 110 .
- the present invention regardless of the data-transmission source and the data-transmission destination connected to the memory device, it is possible to reliably carry out data transmission and reception without changing the hardware configuration of the memory device. Accordingly, it is possible to facilitate system development.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
Description
Claims (12)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005216621A JP2007034643A (en) | 2005-07-27 | 2005-07-27 | Memory device |
JP2005-216621 | 2005-07-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070028071A1 US20070028071A1 (en) | 2007-02-01 |
US7434023B2 true US7434023B2 (en) | 2008-10-07 |
Family
ID=37695721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/271,913 Expired - Fee Related US7434023B2 (en) | 2005-07-27 | 2005-11-14 | Memory device |
Country Status (2)
Country | Link |
---|---|
US (1) | US7434023B2 (en) |
JP (1) | JP2007034643A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089515A1 (en) * | 2007-10-02 | 2009-04-02 | Qualcomm Incorporated | Memory Controller for Performing Memory Block Initialization and Copy |
US20090144527A1 (en) * | 2007-11-29 | 2009-06-04 | Hiroaki Nakata | Stream processing apparatus, method for stream processing and data processing system |
US20100054270A1 (en) * | 2007-05-21 | 2010-03-04 | Fujitsu Limited | Relay Apparatus and Output Control Method |
US8380922B1 (en) * | 2010-06-25 | 2013-02-19 | Western Digital Technologies, Inc. | Data storage device comprising host interface state machine blocking on target logical block address |
US8527802B1 (en) * | 2012-08-24 | 2013-09-03 | Cypress Semiconductor Corporation | Memory device data latency circuits and methods |
US8873264B1 (en) | 2012-08-24 | 2014-10-28 | Cypress Semiconductor Corporation | Data forwarding circuits and methods for memory devices with write latency |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8932216B2 (en) * | 2006-08-07 | 2015-01-13 | Abbott Diabetes Care Inc. | Method and system for providing data management in integrated analyte monitoring and infusion system |
JP5445385B2 (en) * | 2010-08-02 | 2014-03-19 | 富士通株式会社 | Data processing device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5678035A (en) * | 1995-01-20 | 1997-10-14 | Komatsu Ltd. | Image data memory control unit |
JPH09319657A (en) | 1996-05-31 | 1997-12-12 | Hitachi Ltd | Processor with instruction read buffer |
US6622182B1 (en) * | 1996-09-08 | 2003-09-16 | Silicon Graphics, Inc. | Upstream situated apparatus and method for providing high bandwidth data flow control to an input/output unit |
US6760792B1 (en) * | 2001-10-15 | 2004-07-06 | Advanced Micro Devices, Inc. | Buffer circuit for rotating outstanding transactions |
US7079533B1 (en) * | 2001-05-02 | 2006-07-18 | Advanced Micro Devices, Inc. | Systems and methods for bypassing packet lookups |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0468453A (en) * | 1990-07-09 | 1992-03-04 | Nec Corp | Data transfer device |
JP2001195347A (en) * | 2000-01-12 | 2001-07-19 | Mitsubishi Electric Corp | DMA transfer device |
-
2005
- 2005-07-27 JP JP2005216621A patent/JP2007034643A/en active Pending
- 2005-11-14 US US11/271,913 patent/US7434023B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5678035A (en) * | 1995-01-20 | 1997-10-14 | Komatsu Ltd. | Image data memory control unit |
JPH09319657A (en) | 1996-05-31 | 1997-12-12 | Hitachi Ltd | Processor with instruction read buffer |
US6622182B1 (en) * | 1996-09-08 | 2003-09-16 | Silicon Graphics, Inc. | Upstream situated apparatus and method for providing high bandwidth data flow control to an input/output unit |
US7079533B1 (en) * | 2001-05-02 | 2006-07-18 | Advanced Micro Devices, Inc. | Systems and methods for bypassing packet lookups |
US6760792B1 (en) * | 2001-10-15 | 2004-07-06 | Advanced Micro Devices, Inc. | Buffer circuit for rotating outstanding transactions |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100054270A1 (en) * | 2007-05-21 | 2010-03-04 | Fujitsu Limited | Relay Apparatus and Output Control Method |
US8837504B2 (en) | 2007-05-21 | 2014-09-16 | Fujitsu Limited | Relay apparatus and output control method |
US20090089515A1 (en) * | 2007-10-02 | 2009-04-02 | Qualcomm Incorporated | Memory Controller for Performing Memory Block Initialization and Copy |
US20090144527A1 (en) * | 2007-11-29 | 2009-06-04 | Hiroaki Nakata | Stream processing apparatus, method for stream processing and data processing system |
US8380922B1 (en) * | 2010-06-25 | 2013-02-19 | Western Digital Technologies, Inc. | Data storage device comprising host interface state machine blocking on target logical block address |
US8527802B1 (en) * | 2012-08-24 | 2013-09-03 | Cypress Semiconductor Corporation | Memory device data latency circuits and methods |
US8873264B1 (en) | 2012-08-24 | 2014-10-28 | Cypress Semiconductor Corporation | Data forwarding circuits and methods for memory devices with write latency |
Also Published As
Publication number | Publication date |
---|---|
US20070028071A1 (en) | 2007-02-01 |
JP2007034643A (en) | 2007-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100450980B1 (en) | Data processor and graphics processor | |
US5058051A (en) | Address register processor system | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
US20010047456A1 (en) | Processor | |
US20140344512A1 (en) | Data Processing Apparatus and Memory Apparatus | |
US8166275B2 (en) | Method and apparatus for accessing a multi ordered memory array | |
CN113900974B (en) | Storage device, data storage method and related equipment | |
JP4798849B2 (en) | Improved graphics engine master mode operation | |
US7434023B2 (en) | Memory device | |
KR20150095139A (en) | Direct Memory Access controller and system for accessing to channel buffer directly | |
JP3444154B2 (en) | Memory access control circuit | |
US7774513B2 (en) | DMA circuit and computer system | |
US6008823A (en) | Method and apparatus for enhancing access to a shared memory | |
EP1604286B1 (en) | Data processing system with cache optimised for processing dataflow applications | |
US20240345774A1 (en) | Information processing system | |
JP3708436B2 (en) | Cache memory for 2D data fields | |
US8244929B2 (en) | Data processing apparatus | |
US20100030978A1 (en) | Memory controller, memory control method, and image processing device | |
US12086638B2 (en) | Topology of accelerators | |
JP5338937B2 (en) | Memory device | |
US20130290654A1 (en) | Data writing control device, data writing control method, and information processing device | |
US20140092123A1 (en) | Drawing control device | |
KR102353036B1 (en) | Device and method that processes 2D graphics commands based on graphics memory | |
JP3204297B2 (en) | DMA transfer control device | |
JPWO2006132006A1 (en) | Memory control device and memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NODOMI, AKIRA;TAKEBE, YOSHIMASA;REEL/FRAME:017235/0574 Effective date: 20051006 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: FUJITSU MICROELECTRONICS LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:021998/0645 Effective date: 20081104 Owner name: FUJITSU MICROELECTRONICS LIMITED,JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:021998/0645 Effective date: 20081104 |
|
AS | Assignment |
Owner name: FUJITSU SEMICONDUCTOR LIMITED, JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:FUJITSU MICROELECTRONICS LIMITED;REEL/FRAME:024982/0245 Effective date: 20100401 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: SOCIONEXT INC., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU SEMICONDUCTOR LIMITED;REEL/FRAME:035508/0469 Effective date: 20150302 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20201007 |